https://bugs.winehq.org/show_bug.cgi?id=37892
Bug ID: 37892 Summary: GOTHIC 2 GOLD: Vdfs32e.exe crashes at startup Product: Wine Version: 1.7.34 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: ntdll Assignee: wine-bugs@winehq.org Reporter: marc.bessieres@gmail.com Regression SHA1: ca51e113e4820f8b11016c13732b1a971d2b0054 Distribution: ---
Created attachment 50471 --> https://bugs.winehq.org/attachment.cgi?id=50471 Vdfs32e.exe crash backtrace
Follow up bug 7425 which is a mixture of several issues about Gothic2 Gold (Night of the Raver extension).
In bug 7425, it seems that most people were using the German version and Vdfs32g.exe was crashing. Here I'm using the French version in one DVD and Vdfs32e.exe crashes at startup (backtrace in attachment). So it might not be a true follow up.
In both case the crash doesn't prevent the game from starting if following workaround is done: set musicEnabled=0 in Gothic.ini
In bug 7425, many users used a no-CD fix, I didn't have to, the game protections work fine. I'll attach the ProtectionID.exe result for reference.
There is not much in the command line:
wine drive_c/Program\ Files\ (x86)/JoWooD\ Productions\ Software\ AG/Gothic\ II\ Gold/system/Gothic2.exe
fixme:service:scmdatabase_autostart_services Auto-start service L"SVKP" failed to start: 2 wine: Unhandled page fault on read access to 0x00340000 at address 0x4016bf (thread 0024), starting debugger...
If the prefix is a 32-bit one, then Vdfs32e.exe worked during a short while after commit:
commit f87767bc35b0da4df7c7104c04943ed67e06ea78 Author: Piotr Caban piotr@codeweavers.com Date: Fri Nov 28 08:01:26 2014 +0100
ntdll: Handle ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID flag when opening manifest in RtlCreateActivationContext.
:040000 040000 72593ce2fdd2dfd6686cf7fd00436040eea8688c 8c3259784fdda6821620cb1e6284feb8a4daf23d M dlls
And then it failed again after:
Auteur: Erich E. Hoover erich.e.hoover@gmail.com 2014-08-20 04:31:00 Auteur du commit: Alexandre Julliard julliard@winehq.org 2014-12-17 19:42:23 Parent: 1f7683777babab98197c39e5965ba6f70c01c8d0 (quartz: Implement IFilterGraph2::AddSourceFilterForMoniker.) Enfant: cbc8f3c81148079a17f4062fb9bad6569107fb34 (winemenubuilder: Eliminate an unused variable.) Branche: master, remotes/origin/master Suit: wine-1.7.33 Précède: wine-1.7.34
ntdll: Unify retrieving the attributes of a file.
Running several regression tests (each time reverting the previously found bad commit(s) before compilation, and resetting the state with git reset --hard HEAD^ for each reverted commit before running the git bisect bad/good) gave me the following ntdll commits. If I revert them, Vdfs32e.exe works again in wine-1.7.34:
commit c2d303c54bc07ba642c96b661b7ea1fe7546931e Author: Marc Bessières marc.bessieres@mykolab.com Date: Wed Jan 14 09:52:50 2015 +0100
Revert "ntdll: Fix 'description' element parsing to allow empty elements."
This reverts commit c134466224d0e709ab7ffc206013f79d70fe27d4.
commit 7e0388006d315bf6d04c2f4912f945e45cae4273 Author: Marc Bessières marc.bessieres@mykolab.com Date: Wed Jan 14 09:52:00 2015 +0100
Revert "ntdll: Accept asm.v2 as default namespace."
This reverts commit 37c179794e35bfe4283edfa425efc4e499cc652e.
commit 893d01c18263bd98e6952e95cd521d6808671695 Author: Marc Bessières marc.bessieres@mykolab.com Date: Wed Jan 14 09:51:48 2015 +0100
Revert "ntdll: Unify retrieving the attributes of a file."
This reverts commit ca51e113e4820f8b11016c13732b1a971d2b0054.
commit 13b3156035d9dc2f90c16497fb32255c16bca28f Author: Marc Bessières marc.bessieres@mykolab.com Date: Wed Jan 14 09:51:40 2015 +0100
Revert "ntdll: Add stub for RtlSetHeapInformation."
This reverts commit 7eed378f5dc907e9733124727bcd03aacebbd3b6.
So I believe I can tag this bug as a regression. This can be removed if more experience people think it is not.
wine --version
wine-1.7.34
du -h drive_c/Program\ Files/JoWooD\ Productions\ Software\ AG/Gothic\ II\ Gold/system/Vdfs32e.*
92K drive_c/Program Files/JoWooD Productions Software AG/Gothic II Gold/system/Vdfs32e.dll 8,0K drive_c/Program Files/JoWooD Productions Software AG/Gothic II Gold/system/Vdfs32e.exe
sha1sum drive_c/Program\ Files/JoWooD\ Productions\ Software\ AG/Gothic\ II\ Gold/system/Vdfs32e.*
222ff8219abb2e8a05604b7caaad8e8470a2e689 drive_c/Program Files/JoWooD Productions Software AG/Gothic II Gold/system/Vdfs32e.dll 6595c674fe3efb8ed1cfc082d88e3a124b6938a2 drive_c/Program Files/JoWooD Productions Software AG/Gothic II Gold/system/Vdfs32e.exe guest@linux-87nj:~/wine-git>
du -h drive_c/Program\ Files/JoWooD\ Productions\ Software\ AG/Gothic\ II\ Gold/system/Gothic2.exe
8,7M drive_c/Program Files/JoWooD Productions Software AG/Gothic II Gold/system/Gothic2.exe
sha1sum drive_c/Program\ Files/JoWooD\ Productions\ Software\ AG/Gothic\ II\ Gold/system/Gothic2.exe
118e4d156ad9b9124c4f376365c2b16e1f65920c drive_c/Program Files/JoWooD Productions Software AG/Gothic II Gold/system/Gothic2.exe
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #1 from marc.bessieres@gmail.com --- Created attachment 50472 --> https://bugs.winehq.org/attachment.cgi?id=50472 ProtectionID log of Gothic2 Gold french version in single DVD
In attachment is the full output of ProtectionID for my installation of Gothic2 Gold french version in a single DVD. Contrary to bug 7425, where people were using the german version and a NoCD fix, I didn't need one. So either the German and the French versions have different protection schemes, or wine improved enough to make it work ( I put below an extract with the only 3 protections found)
Scanning -> C:\Program Files\JoWooD Productions Software AG\Gothic II Gold\system\protect.dll File Type : 32-Bit Dll (Subsystem : Win GUI / 2), Size : 75896 (012878h) Byte(s) -> File Appears to be Digitally Signed @ Offset 011000h, size : 01878h / 06264 byte(s) [File Heuristics] -> Flag : 00000000000000000100000100000100 (0x00004104) [!] SolidShield Core.dll v1. 8. 0. 2 [CompilerDetect] -> Visual C++ 8.0 (Visual Studio 2005) - Scan Took : 0.798 Second(s)
Scanning -> C:\Program Files\JoWooD Productions Software AG\Gothic II Gold\system\ar.exe File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 9150464 (08BA000h) Byte(s) [File Heuristics] -> Flag : 00000000000000000000000000000011 (0x00000003) [!] SecuROM Detected - Possibly v 7.02 [CompilerDetect] -> Visual C++ 6.0 - Scan Took : 0.444 Second(s)
Scanning -> C:\Program Files\JoWooD Productions Software AG\Gothic II Gold\system\Spacer2.exe File Type : 32-Bit Exe (Subsystem : Win GUI / 2), Size : 2356224 (023F400h) Byte(s) [x] Warning - FileAlignment seems wrong.. is 0x00000200, calculated 0x00000400 [File Heuristics] -> Flag : 00000000000001001000000000100001 (0x00048021) [!] SVKP - Slovak Protector v1.3x - v1.4x wrapped ! - Scan Took : 0.703 Second(s)
https://bugs.winehq.org/show_bug.cgi?id=37892
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
https://bugs.winehq.org/show_bug.cgi?id=37892
Béla Gyebrószki gyebro69@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gyebro69@gmail.com
--- Comment #2 from Béla Gyebrószki gyebro69@gmail.com --- Created attachment 50508 --> https://bugs.winehq.org/attachment.cgi?id=50508 backtrace (GOG.com version)
I can reproduce the problem with the GOG.com (DRM free) version: Vdfs32e.exe crashes in a non-fatal way when starting Gothic 2, but the game is loading to the menu after the crash (provided music is disabled).
I'm just not seeing a regression here, maybe I've read the regression procedure wrong in comment #0 but the game crashes after git checkout ca51e113e4820f8b11016c13732b1a971d2b0054
and crashes with the previous commit too. It also crashes in 1.7.33.
I'm attaching a backtrace produced by the GOG version: it is the same crash as the bug reporter has.
https://bugs.winehq.org/show_bug.cgi?id=37892
Sebastian Lackner sebastian@fds-team.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |erich.e.hoover@gmail.com, | |sebastian@fds-team.de
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #3 from Sebastian Lackner sebastian@fds-team.de --- The procedure used to find the regression commits sounds a bit unusual. Is ca51e113e4820f8b11016c13732b1a971d2b0054 really the first commit with which the application crashes?
Some of the commits you had to revert to get it working on 1.7.34 look totally unrelated, and suggest that it is kinda random, and probably a stack related issue (uninitialized values on the stack or stack corruption). Maybe even also a copy-protection check which depends on specific assembler output for some functions.
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #4 from Marc Bessières marc.bessieres@gmail.com --- Thank you both for looking into this bug. Sorry for the delay in answering.
I checked again and here is what I find: 1.7.33 works 1.7.34 fails 1f7683777babab98197c39e5965ba6f70c01c8d0 works ca51e113e4820f8b11016c13732b1a971d2b0054 fails
1f7683777babab98197c39e5965ba6f70c01c8d0 is the commit just before ca51e113e4820f8b11016c13732b1a971d2b0054
Sorry for the complicated regression procedure, but after finding ca51e113e4820f8b11016c13732b1a971d2b0054 and trying to revert it on top of 1.7.34 Vdfs32e.exe didn't work. So I tried bisecting again and again, each reverting the previously found "bad" commit(s).
As I see that Bela doesn't manage to make it work ever, I would agree with Sebastian on the fact that it might be related to some corruption, luckily or unluckily it is just repeatedly working here with the same commit, and failing after the same one.
This gave me the idea to give valgrind a try: export VALGRIND_OPTS="-q --trace-children=yes --track-origins=yes --gen-suppressions=all --leak-check=full --num-callers=20 --workaround-gcc296-bugs=yes --vex-iropt-register-updates=allregs-at-mem-access"
I started winefile without valgrind to start the wineserver then I ran: valgring ./wine $WINEPREFIX//drive_c/Program\ Files/JoWooD\ Productions\ Software\ AG/Gothic\ II\ Gold/system/Vdfs32e.exe
And within the list of reports there is one that may be related, as part of it (loader.c:2870) corresponds to part of the stack trace of the crash (I couldn't find it in Austin English suppression files mentionned in the wiki) ==2388== Conditional jump or move depends on uninitialised value(s) ==2388== at 0x4016C2: ??? ==2388== by 0x4B91B9B: ??? (in /home/guest/wine-git/dlls/kernel32/kernel32.dll.so) ==2388== by 0x4B92C42: start_process (process.c:1104) ==2388== by 0x4871ADF: ??? (in /home/guest/wine-git/dlls/ntdll/ntdll.dll.so) ==2388== by 0x4874C0C: call_thread_func (signal_i386.c:2723) ==2388== by 0x4871ABD: ??? (in /home/guest/wine-git/dlls/ntdll/ntdll.dll.so) ==2388== by 0x484675D: start_process (loader.c:2870) ==2388== by 0x403FB9C: ??? (in /home/guest/wine-git/libs/wine/libwine.so.1.0) ==2388== Uninitialised value was created by a stack allocation ==2388== at 0x401216: ??? ==2388== { <insert_a_suppression_name_here> Memcheck:Cond obj:* obj:/home/guest/wine-git/dlls/kernel32/kernel32.dll.so fun:start_process obj:/home/guest/wine-git/dlls/ntdll/ntdll.dll.so fun:call_thread_func obj:/home/guest/wine-git/dlls/ntdll/ntdll.dll.so fun:start_process obj:/home/guest/wine-git/libs/wine/libwine.so.1.0 }
I just don't know why valgrind doesn't manage to decode some addresses, especially the stack allocation one... I may ask some valgrind people at FOSDEM.
While I was trying to launch Vdfs32e.exe several times to write that entry, Vdfs32e.exe worked once. So this is definitely not a regression.
Could someone with the right rights in Bugzilla remove the keyword and the sha1 entry? Also at the same time may be put it also in NEW as Bela confirmed the failure of Vdfs32e.exe
https://bugs.winehq.org/show_bug.cgi?id=37892
Marc Bessières marc.bessieres@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|regression | Regression SHA1|ca51e113e4820f8b11016c13732 | |b1a971d2b0054 |
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #5 from Marc Bessières marc.bessieres@gmail.com --- I found out that I could remove the regression and sha1 field, so what is remaining would be to change it to NEW if possible. Cheers Marc
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #6 from Erich Hoover erich.e.hoover@gmail.com --- (In reply to Marc Bessières from comment #4)
... I checked again and here is what I find: 1.7.33 works 1.7.34 fails 1f7683777babab98197c39e5965ba6f70c01c8d0 works ca51e113e4820f8b11016c13732b1a971d2b0054 fails ...
Please try this hack on top of ca51e113e4820f8b11016c13732b1a971d2b0054: https://gist.github.com/compholio/cd24523f6af13f1aafd3
I don't expect it to work but, other than reorganizing, the only thing that changed is that all the times we call stat we now also call lstat (for symlinks). So, _hopefully_ this hack will not work for you :)
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #7 from Marc Bessières marc.bessieres@gmail.com --- Created attachment 50597 --> https://bugs.winehq.org/attachment.cgi?id=50597 Vdfs32e.exe crash backtrace with Erich hack
Hello Erich,
I applied your hack on top of ca51e113e4820f8b11016c13732b1a971d2b0054 and as you expected it didn't help Well forecasted :)
I attach the backtrace of this crash in case it helps.
Cheers, Marc
https://bugs.winehq.org/show_bug.cgi?id=37892
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #8 from super_man@post.com --- (In reply to Marc Bessières from comment #7)
Created attachment 50597 [details] Vdfs32e.exe crash backtrace with Erich hack
Hello Erich,
I applied your hack on top of ca51e113e4820f8b11016c13732b1a971d2b0054 and as you expected it didn't help Well forecasted :)
I attach the backtrace of this crash in case it helps.
Cheers, Marc
This sounds a bit stupid, but could you try if double clicking the exe lets the application start? The backtrace is similar to another bug that the exe starts fine by doing so but crashes from console.
https://bugs.winehq.org/show_bug.cgi?id=37892
Evgenii Burmentev [:virus_found] vir.found@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |vir.found@gmail.com
--- Comment #9 from Evgenii Burmentev [:virus_found] vir.found@gmail.com --- Won't crash if systempack is installed.
https://bugs.winehq.org/show_bug.cgi?id=37892
joaopa jeremielapuree@yahoo.fr changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree@yahoo.fr
--- Comment #10 from joaopa jeremielapuree@yahoo.fr --- Does the bug still occur with wine-5.10?
https://bugs.winehq.org/show_bug.cgi?id=37892
jonny högsten frakswe@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |frakswe@gmail.com
--- Comment #11 from jonny högsten frakswe@gmail.com --- gothic 2 gold gog, wine-staging 5.11:
no crashing, intro,music,gameplay,saving and loading works.
just a quick install&startup, seems good though.
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #12 from joaopa jeremielapuree@yahoo.fr --- Can you test with vanilla wine-5.11 and a fresh wineprefix?
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #13 from jonny högsten frakswe@gmail.com --- same results with fresh prefix and regular wine 5.11
https://bugs.winehq.org/show_bug.cgi?id=37892
--- Comment #14 from joaopa jeremielapuree@yahoo.fr --- Nice!! Thanks for testing. Can an administrator close this bug as FIXED?
https://bugs.winehq.org/show_bug.cgi?id=37892
Zebediah Figura z.figura12@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED CC| |z.figura12@gmail.com Status|UNCONFIRMED |RESOLVED
--- Comment #15 from Zebediah Figura z.figura12@gmail.com --- Marking fixed; thanks for testing.
https://bugs.winehq.org/show_bug.cgi?id=37892
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #16 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 5.12.