Matoking / protontricks

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
GNU General Public License v3.0
1.66k stars 36 forks source link

The GUI doesn't work for every game #20

Closed codeman101 closed 5 years ago

codeman101 commented 5 years ago

If I try to launch the GUI for Skyrim SE it gives the following output and quits.

free(): double free detected in tcache 2 Traceback (most recent call last): File "/usr/lib/python3.7/site-packages/protontricks/gui.py", line 23, in select_steam_app_with_gui '--combo-values', combo_values File "/usr/lib/python3.7/subprocess.py", line 395, in check_output **kwargs).stdout File "/usr/lib/python3.7/subprocess.py", line 487, in run output=stdout, stderr=stderr) subprocess.CalledProcessError: Command '['zenity', '--forms', '--text=Steam Game Library', '--title=Choose Game', '--add-combo', 'Pick a library game', '--combo-values', 'LEGO® Star Wars™ III: The Clone Wars™: 32510|LEGO® Star Wars™: The Complete Saga: 32440|MX vs. ATV Reflex: 55140|PC Building Simulator: 621060|RIDE 3: 759740|STAR WARS™ Battlefront (Classic, 2004): 1058020|STAR WARS™ Episode I Racer: 808910|STAR WARS™ Starfighter™: 32350|STAR WARS™: Knights of the Old Republic™: 32370|STAR WARS™: The Force Unleashed™ II: 32500|STAR WARS™: The Force Unleashed™ Ultimate Sith Edition: 32430|Star Wars: Battlefront 2 (Classic, 2005): 6060|Street Fighter 30th Anniversary Collection: 586200|The Elder Scrolls IV: Oblivion : 22330|The Elder Scrolls V: Skyrim Special Edition: 489830|The Witcher 3: Wild Hunt: 292030|The Witcher: Enhanced Edition: 20900|Ultra Street Fighter IV: 45760|Victoria II: 42960']' died with <Signals.SIGABRT: 6>.

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "/usr/bin/protontricks", line 11, in load_entry_point('protontricks==1.2.1+4.g1d982a7', 'console_scripts', 'protontricks')() File "/usr/lib/python3.7/site-packages/protontricks/cli.py", line 174, in main steam_app = select_steam_app_with_gui(steam_apps=steam_apps) File "/usr/lib/python3.7/site-packages/protontricks/gui.py", line 34, in select_steam_app_with_gui raise RuntimeError("Zenity returned an error or cancel was clicked") RuntimeError: Zenity returned an error or cancel was clicked

Noticed while pasting this that it says I double-clicked but I didn't. I did the same as I always do.

Matoking commented 5 years ago

I can reproduce this issue by running the following command and choosing any game in the list (not just Skyrim SE) on Arch Linux (zenity version 3.32.0):

zenity --forms --text="Steam Game Library" --title="Choose Game" --add-combo "Pick a library game" --combo-values "LEGO® Star Wars™ III: The Clone Wars™: 32510|LEGO® Star Wars™: The Complete Saga: 32440|MX vs. ATV Reflex: 55140|PC Building Simulator: 621060|RIDE 3: 759740|STAR WARS™ Battlefront (Classic, 2004): 1058020|STAR WARS™ Episode I Racer: 808910|STAR WARS™ Starfighter™: 32350|STAR WARS™: Knights of the Old Republic™: 32370|STAR WARS™: The Force Unleashed™ II: 32500|STAR WARS™: The Force Unleashed™ Ultimate Sith Edition: 32430|Star Wars: Battlefront 2 (Classic, 2005): 6060|Street Fighter 30th Anniversary Collection: 586200|The Elder Scrolls IV: Oblivion : 22330|The Elder Scrolls V: Skyrim Special Edition: 489830|The Witcher 3: Wild Hunt: 292030|The Witcher: Enhanced Edition: 20900|Ultra Street Fighter IV: 45760|Victoria II: 42960"

zenity will print the selected game, but also crash afterwards with the "double free detected in tcache 2" error.

However, if I run the same command under Kubuntu 18.04 running in a VM (zenity version 3.28.1), no crash occurs and the command works correctly.


What Linux distro are you running and what zenity version do you have installed (check it by running zenity --version)? It could be an issue with the version of zenity or how it's been compiled.


EDIT:

I've tested zenity 3.32.0 on both Arch Linux and Kubuntu 19.04; both of them crash.

Matoking commented 5 years ago

I've reported this bug upstream at the zenity GitLab repository here.

codeman101 commented 5 years ago

@Matoking

I'm gald you found the issue. When I first read your post from my phone I didn't see your edit and was going to say wow I can't believe the issue is distro dependent. I'm glad I don't run Linux From Scratch. LOL I run Manjaro which is Arch based.

Good job finding the zenity repo and making the issue. I'm surprised it's not here on github.

Matoking commented 5 years ago

I'll keep track of the issue and see if it gets fixed anytime soon. If not, I'll probably look into using a Tkinter based implementation or something else that's commonplace.

Matoking commented 5 years ago

I've added a workaround for the crash in the zenity_workaround branch. Could you check out whether it works?

If you've installed protontricks using pipx, the following should work:

pipx install --force --spec git+https://github.com/Matoking/protontricks.git@zenity_workaround protontricks

You may need to close and open your terminal first.

codeman101 commented 5 years ago

No offense but I don't really want to do that. Because of the issue I learned how to install stuff using the terminal with protontricks. If your workaround works for the install you have of an arch based distro then add it to the master branch. I will say however that I just tested the gui from my install just now because I installed the protontricks-git package from the AUR and today it worked. It took 10 seconds to show up but it worked. Maybe the zenity people fixed the issue you reported?

Matoking commented 5 years ago

The fix has been merged to master.