PaulCombal / SamRewritten

Steam Achievement Manager For Linux. Rewritten in C++.
GNU General Public License v3.0
340 stars 32 forks source link

28898 Segment error #43

Closed pehsa closed 4 years ago

pehsa commented 4 years ago

So... This is very interesting.

When I used SamRewritten I accidentally opened one game (#Have A Sticker ; AppID 841860)

The game is a mess with 5000 achievement. If you launch the game (normally too) 4479 achievements unlocked automatically. So I accidentally opened the game page in SamRewritten. I got those achievements, but if I try to leave the page, SamRewritten crashing with 28898 Segment error.

PaulCombal commented 4 years ago

I don't own that game so I don't think I'm going to be able to reproduce the issue, however I'm working on improving stability of SamRewritten. Hopefully it will be fixed for the next release. This can also be due to the icons taking too much memory, in this case maybe you will like the upcoming feature to disable drawing icons!

pehsa commented 4 years ago

Free game. So if you want you can add to your library

PaulCombal commented 4 years ago

Oh cool! I'll check that when I'll have more time to work on SAM, thanks for the input :+1:

wgpierce commented 4 years ago

@pehsa a workaround was added in commit f3089c6f to bail trying to get icons if there are more than 1000 icons. Does the issue still occur for you? AppID 841860 doesn't seem to exist in the Steam store now -- it's another https://store.steampowered.com/api/appdetails/?appids=841860 --> success: false

pehsa commented 4 years ago

Okay... So I was unable to build the master on my system (Ubuntu 18.04.3), but I downloaded the last release.

I locked the retrieved achievements and opened the game page. Now the program don't crash and I was able to lock/unlock the achievements.

But... There is a huge memory consumption. When I start SamRewritten only 100Mb RAM in used. If I load the game the memory usage jumped up to 500-600Mb and the program is not responding very well. 1-2 sec delay when scrolling or clicking any button. If I going back to the game list, the response time is good, but the memory usage still remain.

PaulCombal commented 4 years ago

I know about the performance issue when there are a lot of achievements. Unfortunately the graphics library we are using (gtk) doesn't offer a fix for this yet, but a solution will be provided in the next version (gtk 4), so I can only wait for now.

Just a question: would a CLI version help you doing what you want?

pehsa commented 4 years ago

The CLI version will be fine, or some cli options to the binary to do every or just the important things. Less memory, less cpu, scripting options.

PaulCombal commented 4 years ago

Do you have any idea of cool commands you would like? Like list achievement ids for an app..

pehsa commented 4 years ago

Just some feature I want to see (not only in CLI :D ) The statistics are very rare in the similar softwares. I used one program which provided completion sorting (Steam Achievement Tracker for Windows 8), but they abandoned when Steam changed the API.

PaulCombal commented 4 years ago

App completion sorting doesn't seem easy at all, it means Sam needs to launch the game to get the percentage, so it would need to launch every game in your library, it doesn't seem realistic, even if I would have loved this myself.

Other than that, I'll keep your suggestions in mind, and I think that's the next thing I'll do when I'll get back to this project!

wgpierce commented 4 years ago

@pehsa memory consumption was fixed around commit be704dd with the move to gtkmm and using make_managed to automatically manage memory, can you confirm that the memory consumption issue is fixed?

Also @pehsa a CLI has been added to match the functionality of the GUI, please file issues for any additional features you'd like to see (or make PRs yourself! :) ).

Also commit 7358596 made the build compatible with Ubuntu 18.04, so you can build on there now (using the libraries from the README of course).

wgpierce commented 4 years ago

Correction: 082ad7f1182e9a8e3ae9d90d82267b6f33f9b658 is also required to build on Ubuntu 18.04.

@pehsa will you get a chance to test soon? Otherwise I'd like to close this issue since everything's addressed.

pehsa commented 4 years ago

@wgpierce Sorry for the late answer. I was able to compile. (Manually edited the make_managed code in gtkmm.) The memory consumption is fixed, or not so heavy. Thank you. I will test the CLI options when I have free time.

So, the issue is closable.

wgpierce commented 4 years ago

Great, thanks for testing!

I was able to compile. (Manually edited the make_managed code in gtkmm.)

master has all the workarounds needed to define that for Ubuntu 18.04, did that not work for you? If something's slightly off, we can tweak workaround.

pehsa commented 4 years ago

@wgpierce I compiled before the commit :D I needed earlier this workaround so I know it.