Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wineboot hangs forever #147

Closed
2xsaiko opened this issue May 9, 2022 · 5 comments
Closed

Wineboot hangs forever #147

2xsaiko opened this issue May 9, 2022 · 5 comments

Comments

@2xsaiko
Copy link

2xsaiko commented May 9, 2022

As of recently, this Wine fork will fail to create new prefixes or update existing prefixes on my system, instead hanging forever even before the wineboot dialog comes up. This includes launching games using Proton inside of Steam, tested with Proton (as of 5/9/22) Experimental, older versions such as Proton 6.3-8 and 3.7-8 work. Initially I encountered this with another Wine fork based off of this one, wine-ge-custom but the same problem occurs here as well, which makes sense since the bad commit (see below) is in both forks.

Bisecting the repository showed the first bad commit to be 90bc8ed, and reverting it fixes the issue (though obviously I don't want to build my own Proton versions).

Here's a log of me running wine with WINEDEBUG=all, it's pretty long so I couldn't upload it here: https://dblsaiko.net/pub/tmp/wine-log.txt (this is using that other Wine fork, I can make one with this one if needed). The 0024: *killed* exit_code=1 and so on at the very end comes from me eventually running wineserver -k, it does not get killed if you keep it running.

Operating System: Gentoo Linux 2.8
KDE Plasma Version: 5.24.4
KDE Frameworks Version: 5.93.0
Qt Version: 5.15.3
Kernel Version: 5.17.5-gentoo-dist (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600X 6-Core Processor
Memory: 23.5 GiB of RAM
Graphics Processor: AMD Radeon RX Vega

@cyj0912
Copy link

cyj0912 commented Oct 12, 2023

From my debugging it seems like fshack has a deadlocking issue. This is causing rundll32 to hang when doing "Wow64Install" upon booting. Because wineboot waits on this install process, this caused the booting process to hang.

Stack trace is attached here: https://gist.github.com/cyj0912/af12f5d58ceca01fa08253f03e77f1d5

As you can see, fs_get_gpus is trying to lock the mutex. However, earlier on the stack, fs_hack_rect_user_to_real already holds the lock.

Turning this lock into a recursive mutex solves the issue.

@ivyl
Copy link
Collaborator

ivyl commented Oct 12, 2023

Hi @cyj0912 . What environment are you running this on? The deadlock seems to happen because winex11.drv's settings_handler is nores which should not be the case. Before we initialize fshack we try to also load xrandr and libXxf86vm which replaces that handler with something that does not deadlock.

My guess is that you are building your own version of Proton without having libxrandr-dev installed or you try to run it outside of stream runtime container without having libxrandr installed.

@2xsaiko that may be also the case for you - you are compiling Proton without some libs that we assume to be present.

I don't think we have the capacity to support usecases outside of steam runtime actively but we could at least make those libraries mandatory during ./configure.

@cyj0912
Copy link

cyj0912 commented Oct 13, 2023

Hi @ivyl, thanks a lot for the insight. Missing libxrandr on the host was indeed the issue (only x64 binary was installed).

@2xsaiko
Copy link
Author

2xsaiko commented Oct 13, 2023

I don't have that system anymore, but it lacking 32-bit libxrandr would make sense.

@cyj0912
Copy link

cyj0912 commented Oct 14, 2023 via email

@kisak-valve kisak-valve closed this as not planned Won't fix, can't repro, duplicate, stale Oct 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants