WineHQ
Bug Tracking Database – Bug 35236

 Bugzilla

 

Last modified: 2014-01-03 19:29:28 UTC  

Multiple applications refuse to load or crash on startup (Nitro PDF Reader 3, Mozilla Firefox) (exception in builtin 'msvcp100' entry point if 'msvcrt' is not mapped)

Bug 35236 - Multiple applications refuse to load or crash on startup (Nitro PDF Reader 3, Mozilla Firefox) (exception in builtin 'msvcp100' entry point if 'msvcrt' is not mapped)
Multiple applications refuse to load or crash on startup (Nitro PDF Reader 3,...
Status: CLOSED FIXED
AppDB: Show Apps affected by this bug
Product: Wine
Classification: Unclassified
Component: msvcp
1.7.9
x86 Linux
: P2 normal
: ---
Assigned To: Mr. Bugs
http://install.nitropdf.com/reader/en...
: download
: 35287 35305 (view as bug list)
Depends on:
Blocks:
  Show dependency tree
 
Reported: 2013-12-26 15:14 UTC by Anastasius Focht
Modified: 2014-01-03 19:29 UTC (History)
2 users (show)

See Also:
Regression SHA1:
Fixed by SHA1: 263a1448f96816120011b5a5855929e24b7a4818
Distribution: ---
Staged patchset:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Anastasius Focht 2013-12-26 15:14:33 UTC
Hello folks,

as the summary says.

A side-effect of recent msvcpXXX refactoring: http://source.winehq.org/git/wine.git/commitdiff/6d30d6be78a49e1add6d8c7886484a2ceb950c71

Relevant part of trace log:

--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/Nitro/Reader 3

$ WINEDEBUG=+tid,+seh,+relay,+loaddll,+process,+module,+imports wine ./NitroPDFReader.exe >>trace.txt 2>&1
...
002d:trace:module:load_dll looking for L"MSVCR100.dll" in L"C:\\Program Files\\Nitro\\Reader 3;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
002d:trace:module:get_load_order looking for L"C:\\windows\\system32\\MSVCR100.dll"
002d:trace:module:get_load_order got hardcoded default for L"MSVCR100.dll"
002d:trace:module:load_builtin_dll Trying built-in L"C:\\windows\\system32\\MSVCR100.dll"
...
002d:trace:module:load_builtin_dll Trying built-in L"msvcrt.dll" 
...
002d:trace:module:load_builtin_callback loaded msvcrt.dll 0x123280 0x7e240000
002d:trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x7e240000: builtin
002d:trace:module:load_dll Loaded module L"C:\\windows\\system32\\msvcrt.dll" (builtin) at 0x7e240000 
...
002d:trace:module:load_builtin_callback loaded msvcr100.dll 0x1231d0 0x7e2f0000
002d:trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msvcr100.dll" at 0x7e2f0000: builtin
002d:Call PE DLL (proc=0x7e2f98dc,module=0x7e2f0000 L"msvcr100.dll",reason=WINE_PREATTACH,res=(nil))
002d:Ret  PE DLL (proc=0x7e2f98dc,module=0x7e2f0000 L"msvcr100.dll",reason=WINE_PREATTACH,res=(nil)) retval=0
002d:trace:module:load_dll L"C:\\windows\\system32\\MSVCR100.dll" pre-attach returned FALSE, preferring native
002d:trace:module:LdrUnloadDll (0x7e2f0000)
002d:trace:module:LdrUnloadDll (L"msvcr100.dll") - START
002d:trace:module:MODULE_DecRefCount (L"msvcr100.dll") ldr.LoadCount: 0
002d:trace:module:MODULE_DecRefCount (L"msvcrt.dll") ldr.LoadCount: 0
002d:trace:module:MODULE_DecRefCount (L"KERNEL32.dll") ldr.LoadCount: 16
002d:trace:module:MODULE_DecRefCount (L"ntdll.dll") ldr.LoadCount: 12
002d:trace:module:MODULE_DecRefCount (L"KERNEL32.dll") ldr.LoadCount: 15
002d:trace:module:free_modref  unloading L"C:\\windows\\system32\\msvcrt.dll"
002d:trace:module:free_modref  unloading L"C:\\windows\\system32\\msvcr100.dll"
002d:trace:module:LdrUnloadDll END
002d:trace:module:load_native_dll Trying native dll L"C:\\windows\\system32\\MSVCR100.dll" 
...
002d:trace:loaddll:load_native_dll Loaded L"C:\\windows\\system32\\MSVCR100.dll" at 0x78aa0000: native
002d:trace:module:load_dll Loaded module L"C:\\windows\\system32\\MSVCR100.dll" (native) at 0x78aa0000 
...
002d:trace:module:load_dll looking for L"MSVCP100.dll" in L"C:\\Program Files\\Nitro\\Reader 3;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem"
002d:trace:module:get_load_order looking for L"C:\\windows\\system32\\MSVCP100.dll"
002d:trace:module:get_load_order got hardcoded default for L"MSVCP100.dll"
002d:trace:module:load_builtin_dll Trying built-in L"C:\\windows\\system32\\MSVCP100.dll"
...
002d:trace:module:load_dll Found L"C:\\windows\\system32\\MSVCR100.dll" for L"msvcr100.dll" at 0x78aa0000, count=4 
...
002d:trace:module:load_builtin_callback loaded msvcp100.dll 0x12cfb0 0x7de30000
002d:trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msvcp100.dll" at 0x7de30000: builtin
002d:Call PE DLL (proc=0x7de8df94,module=0x7de30000 L"msvcp100.dll",reason=WINE_PREATTACH,res=(nil))
002d:Ret  PE DLL (proc=0x7de8df94,module=0x7de30000 L"msvcp100.dll",reason=WINE_PREATTACH,res=(nil)) retval=1
002d:trace:module:load_dll Loaded module L"C:\\windows\\system32\\MSVCP100.dll" (builtin) at 0x7de30000
002d:trace:imports:import_dll --- ??1_Container_base12@std@@QAE@XZ MSVCP100.dll.154 = 0x7de35280
002d:trace:imports:import_dll --- ?_Xout_of_range@std@@YAXPBD@Z MSVCP100.dll.654 = 0x7de37650
002d:trace:imports:import_dll --- ?_Xlength_error@std@@YAXPBD@Z MSVCP100.dll.652 = 0x7de37620
002d:trace:imports:import_dll --- ?_Orphan_all@_Container_base0@std@@QAEXXZ MSVCP100.dll.593 = 0x7de372bc 
...
002d:trace:module:process_attach (L"msvcp100.dll",0x1) - START
002d:Call PE DLL (proc=0x7de8df94,module=0x7de30000 L"msvcp100.dll",reason=PROCESS_ATTACH,res=0x1)
002d:Call KERNEL32.GetModuleHandleA(7de9e0a8 "msvcrt.dll") ret=7de83224
002d:trace:module:LdrGetDllHandle L"msvcrt.dll" -> (nil) (load path L"C:\\Program Files\\Nitro\\Reader 3;.;C:\\windows\\system32;C:\\windows\\system;C:\\windows;C:\\windows\\system32;C:\\windows;C:\\windows\\system32\\wbem")
002d:Ret  KERNEL32.GetModuleHandleA() retval=00000000 ret=7de83224
002d:Call KERNEL32.GetProcAddress(00000000,7de9e0b3 "??2@YAPAXI@Z") ret=7de8323f
002d:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=7de8323f
002d:Call KERNEL32.GetProcAddress(00000000,7de9e0c0 "??3@YAXPAX@Z") ret=7de8325f
002d:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=7de8325f
002d:Call KERNEL32.GetProcAddress(00000000,7de9e0d0 "?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z") ret=7de8327f
002d:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=7de8327f
002d:Call KERNEL32.InitializeCriticalSection(7def4120) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:Call KERNEL32.InitializeCriticalSection(7def4138) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:Call KERNEL32.InitializeCriticalSection(7def4150) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:Call KERNEL32.InitializeCriticalSection(7def4168) ret=7de82d08
002d:Ret  KERNEL32.InitializeCriticalSection() retval=00000001 ret=7de82d08
002d:trace:seh:raise_exception code=c0000005 flags=0 addr=(nil) ip=00000000 tid=002d
002d:trace:seh:raise_exception  info[0]=00000000
002d:trace:seh:raise_exception  info[1]=00000000
002d:trace:seh:raise_exception  eax=00000000 ebx=7ded4000 ecx=00000003 edx=7def3060 esi=017bfd50 edi=00000000
002d:trace:seh:raise_exception  ebp=017bfc18 esp=017bfbec cs=0023 ds=002b es=002b fs=0063 gs=006b flags=00210206 
...
002d:exception in PE entry point (proc=0x7de8df94,module=0x7de30000,reason=PROCESS_ATTACH,res=0x1)
002d:Ret  PE DLL (proc=0x7de8df94,module=0x7de30000 L"msvcp100.dll",reason=PROCESS_ATTACH,res=0x1) retval=0
002d:Call PE DLL (proc=0x7de8df94,module=0x7de30000 L"msvcp100.dll",reason=PROCESS_DETACH,res=0x1)
002d:Ret  PE DLL (proc=0x7de8df94,module=0x7de30000 L"msvcp100.dll",reason=PROCESS_DETACH,res=0x1) retval=1
002d:warn:module:process_attach Initialization of L"msvcp100.dll" failed 
--- snip ---

The initialization of builtin 'msvcr100.dll' which precedes 'msvcp100.dll' pulls in builtin 'msvcrt.dll'.

Because native 'MSVCR100' is preferred, builtins are unloaded again, also causing unload of 'msvcrt.dll' (native 'MSVCR100' has no load time binding to 'msvcrt.dll').

This has the consequence that there is no mapping of 'msvcrt.dll' at the time when PROCESS_ATTACH is sent to builtin 'msvcp100.dll'.

Any use of MSVC runtime at this point (allocators) will cause failure (exceptions in entry point).

$ sha1sum nitro_pdf_reader.exe 
bc1da512862a0d08193b20ea5339a7d2ef4a79f3  nitro_pdf_reader.exe

$ du -sh nitro_pdf_reader.exe 
28M	nitro_pdf_reader.exe

$ wine --version
wine-1.7.9-183-g919e620

Regards
Comment 1 Anastasius Focht 2013-12-27 05:33:04 UTC
Hello folks,

it seems this affects many applications.
Any Windows version of Firefox also refuses to start now, stating "Couldn't load XPCOM".

Refining summary.

Regards
Comment 2 Austin English 2013-12-27 14:42:54 UTC
(In reply to comment #1)
> Hello folks,
> 
> it seems this affects many applications.
> Any Windows version of Firefox also refuses to start now, stating "Couldn't
> load XPCOM".
> 
> Refining summary.
> 
> Regards

Firefox 24 works in wine-1.7.9-68-gb8e9bbd now.
Comment 3 Anastasius Focht 2013-12-27 14:59:55 UTC
Hello folks,

this is fixed by commit http://source.winehq.org/git/wine.git/commitdiff/263a1448f96816120011b5a5855929e24b7a4818

Thanks Alexandre

Regards
Comment 4 Anastasius Focht 2014-01-01 16:00:23 UTC
*** Bug 35287 has been marked as a duplicate of this bug. ***
Comment 5 Alexandre Julliard 2014-01-03 13:09:59 UTC
Closing bugs fixed in 1.7.10.
Comment 6 Anastasius Focht 2014-01-03 19:29:28 UTC
*** Bug 35305 has been marked as a duplicate of this bug. ***


Privacy Policy
If you have a privacy inquiry regarding this site, please write to [email protected]

Hosted By CodeWeavers