michael-n0813 / linux-idle-master

Linux version of idle-master, a simple script that emulates being in a steam game to unlock trading cards.
GNU General Public License v2.0
27 stars 8 forks source link

no "idling window" created since upgrade to Ubuntu 22.04 (Python 3.10.4) #11

Closed Saroumane closed 1 year ago

Saroumane commented 2 years ago

Ubuntu last upgrade (22.04) seems to partially broke this python script. => No "idling window" is created, but the idling seems to work on steam client. So I guess it is only a cosmetic issue.

Error message in the log : malloc(): invalid size (unsorted)

michael-n0813 commented 2 years ago

I have push a new fix, that may fix the issue.

Saroumane commented 2 years ago

This commit ? https://github.com/michael-n0813/linux-idle-master/commit/8962350f18149dbcc7872e4fb26f0cf792c32f02 It makes no change for me.

michael-n0813 commented 2 years ago

Yep that commit :+1:

If you could post a log of the error message that would be helpful.

If I can find a bit of time I'll look into this issue, Thanks.

Saroumane commented 2 years ago

I restarted the script today and the fix works now, thanks ! I must have missed something yesterday.

Saroumane commented 1 year ago

I am now running Ubuntu 23.04 (Python 3.11.2 ) and the problem is back. It seems linked to steam-idle.py, I ran a few tests :

[13:54:37]user@host:~/linux-idle-master$ ./steam-idle.py 1
Loading Linux 64bit library
[13:55:19]user@host:~/linux-idle-master$ ./steam-idle.py 2
Loading Linux 64bit library
[13:55:22]user@host:~/linux-idle-master$ ./steam-idle.py 3
Loading Linux 64bit library
[13:55:25]user@host:~/linux-idle-master$ ./steam-idle.py 4
Loading Linux 64bit library
[13:55:28]user@host:~/linux-idle-master$ ./steam-idle.py 5
Loading Linux 64bit library
[13:55:32]user@host:~/linux-idle-master$ ./steam-idle.py 6
Loading Linux 64bit library
[13:55:36]user@host:~/linux-idle-master$ ./steam-idle.py 9
Loading Linux 64bit library
[13:55:39]user@host:~/linux-idle-master$ ./steam-idle.py 10
Loading Linux 64bit library
Setting breakpad minidump AppID = 10
malloc(): invalid size (unsorted)
Aborted
[13:55:40]user@host:~/linux-idle-master$ ./steam-idle.py 8
Loading Linux 64bit library
[13:55:46]user@host:~/linux-idle-master$ ./steam-idle.py 11
Loading Linux 64bit library
[13:55:53]user@host:~/linux-idle-master$ ./steam-idle.py 10
Loading Linux 64bit library
Setting breakpad minidump AppID = 10
malloc(): invalid size (unsorted)
Aborted
[13:55:56]user@host:~/linux-idle-master$ ./steam-idle.py 12
Loading Linux 64bit library
[13:56:01]user@host:~/linux-idle-master$ ./steam-idle.py 500
Loading Linux 64bit library
Setting breakpad minidump AppID = 500
malloc(): invalid size (unsorted)
Aborted
[13:56:06]user@host:~/linux-idle-master$ ./steam-idle.py 501
Loading Linux 64bit library
[13:56:14]user@host:~/linux-idle-master$ ./steam-idle.py 502
Loading Linux 64bit library
[13:56:20]user@host:~/linux-idle-master$ ./steam-idle.py 5000
Loading Linux 64bit library
[13:56:27]user@host:~/linux-idle-master$ ./steam-idle.py 50000
Loading Linux 64bit library
Setting breakpad minidump AppID = 50000
malloc(): invalid size (unsorted)
Aborted
[13:56:30]user@host:~/linux-idle-master$ ./steam-idle.py 500000
Loading Linux 64bit library
[13:56:35]user@host:~/linux-idle-master$ 
michael-n0813 commented 1 year ago

Hey mate,

This is an issue with steamAPI all the crashes happen only when the steamAPI tries to launch a real game, App 10 (Counter Strike), App 500 (Left 4 Dead), App 50000 (Nimbus). All the other numbers are not game IDs and steam will not launch them because they don't exist.

This is what should show up

Loading Linux 64bit library
Setting breakpad minidump AppID = 500
Steam_SetMinidumpSteamID:  Caching Steam ID:  ####Your-ID#### [API loaded no]

What happens when you try steam steam://rungameid/### ### is a gameID of a game you have installed.

I have NO idea on how to trouble shoot this for you. Are you on steam beta? Do you have any other problems launching games??

Sorry I can't be of more help.

Saroumane commented 1 year ago

Sorry, I chose wrong values for my test.

This a lot more interesting : 1/ I tested with a real game I own, and it fails like this :

$ python steam-idle.py 1090630
Loading Linux 64bit library
Setting breakpad minidump AppID = 1090630
malloc(): invalid size (unsorted)
Aborted

2/ I modified steam-idle.py by adding 6 times print("ok")near the end of file. (Their place does not seem to matter, initially they were scattered in the python file. But 5 print("ok") was not enough.)

 except:
        print("Couldn't initialize Steam API")
        sys.exit()
    print("ok")    
    print("ok")    
    print("ok")    
    print("ok")    
    print("ok")    
    gui = init_gui(str_app_id)
    gui.mainloop()

3/ now it works :

$ python steam-idle.py 1090630
Loading Linux 64bit library
Setting breakpad minidump AppID = 1090630
Steam_SetMinidumpSteamID:  Caching Steam ID:  ###### [API loaded no]

So I suspect there is something about "memory/variables initialization" that is "fixed" by the print instructions I added. Can't tell more, I don't know memory management for python.

Edit : I moved linux-idle-master to a different place (a subfolder of my $HOME), and it fails again. But if I remove all print("ok") except one, it works again.

michael-n0813 commented 1 year ago

Sorry but as I said, this is an issue with steamapi or some other library steam uses, I don't know why it sometimes works and sometimes fails but no amount of prints will change how this script works. Maybe try restarting steam and trying again?

Saroumane commented 1 year ago

Ok I understand. Now, without modifying anything, I see another different behavior : the "idling" window does not appear (so I guess Steam API does not answer) and I get a "free(): invalid pointer" in the log. So maybe it's a mix of problems on my setup and Steam API acting erratically.