https://bugs.winehq.org/show_bug.cgi?id=54317
Bug ID: 54317 Summary: Change to exec_wineloader made wine not start at all Product: Wine Version: 8.0-rc4 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: hibbsncc1701@gmail.com Distribution: ---
Attempting to start wine with a pre-existing prefix results in a failure to load ntdll / kernel32. With messages like
"wine: could not load kernel32.dll, status c0000135"
and
002c:err:module:load_wow64_ntdll failed to load L"\??\C:\windows\system32\ntdll.dll" error 4000000e wine: Unhandled page fault on execute access to 00000000 at address 00000000 (thread 002c), starting debugger...
being printed in the console.
Wine then attempts to start winedbg only to get stuck in a forkbomb. Where winedbg won't start, triggering an exception, which will cause another attempt to start winedbg. At a rate of about 4-5 attempts a second. Attempting to ctrl-c it doesn't work, and requires manually terminating all of wine's processes. (Of which are numerous as wine will also attempt to start conhost.exe for each winedbg it attempts to load. None of which will terminate on their own.)
Attempting to start wine with a fresh prefix results in an incomplete prefix directory. (Only the dosdevices / windows directories, and registry hives are present in the prefix. Of those windows is empty save for the syswow64 and system32 directories of which both are completely empty.) Attempting to start that prefix again causes the same winedbg behavior as above.
Performing a bisect revealed:
$ git bisect bad d45de318748639cfd1e80a976b39f5e19213990f is the first bad commit commit d45de318748639cfd1e80a976b39f5e19213990f Author: Alexandre Julliard julliard@winehq.org Date: Tue Nov 22 12:08:19 2022 +0100
ntdll: Always set WINELOADER variable to the current loader name.
dlls/ntdll/unix/env.c | 3 +++ dlls/ntdll/unix/loader.c | 48 +++++++++++++++++++++--------------------------- 2 files changed, 24 insertions(+), 27 deletions(-)
Reverting d45de318748639cfd1e80a976b39f5e19213990f fixed the issue on my system.