[Bug 39270] New: Microsoft .NET 2.x/3.x Framework: "mscorsvw" compile worker hangs occasionally while generating native images from assemblies in GAC (heap lock timeout reported)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Sep 13 17:17:00 CDT 2015


https://bugs.winehq.org/show_bug.cgi?id=39270

            Bug ID: 39270
           Summary: Microsoft .NET 2.x/3.x Framework: "mscorsvw" compile
                    worker hangs occasionally while generating native
                    images from assemblies in GAC (heap lock timeout
                    reported)
           Product: Wine
           Version: 1.7.51
          Hardware: x86-64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: -unknown
          Assignee: wine-bugs at winehq.org
          Reporter: focht at gmx.net
      Distribution: ---

Hello folks,

while revisiting bug 36628 I forgot to install .NET 3.x via 'winetricks' which
is a required prerequisite for GFWL.

The GFWL installer executed .NET Framework 2.0 and 3.0 installers in order.
At one point I finally caught one of these mysterious 'mscorsvw' compile worker
process shutdown races that are still happening once in a while when NGENing
assemblies into GAC.

See bug 30162 ("Microsoft .NET 2.0 Framework: "mscorsvw" compile worker hangs
sometimes while generating native images from assemblies in GAC (loader section
block reported)") - except it's not the loader lock but heap here.

Normal process tree:

--- snip ---
Wine-dbg>info process
 pid      threads  executable (all id:s are in hex)
 00000023 4        'explorer.exe'
 0000000e 6        'services.exe'
 000000d7 4        \_ 'mscorsvw.exe'
 0000001a 3        \_ 'plugplay.exe'
 00000012 4        \_ 'winedevice.exe'
 00000008 1        'setup.exe'
 0000002c 6        \_ 'msiexec.exe'
 00000028 2           \_ 'gfwlivesetup.exe'
 0000000c 1              \_ 'GFWLIVESetupStub.exe'
 0000003b 2                 \_ 'dotnetfx3.exe'
 0000003e 3                    \_ 'setup.exe'
 000000de 5                       \_ 'ngen.exe'
 000000e0 13                         \_ 'mscorsvw.exe'
--- snip ---

Symptoms:

* critical section timeouts printed in terminal
* orphaned 'mscorsvw' compile worker process

--- snip ---
err:ntdll:RtlpWaitForCriticalSection section 0x110060
"/home/focht/projects/wine/wine.repo/src/dlls/ntdll/heap.c: main process heap
section" wait timed out in thread 007d, blocked by 005c, retrying (60 sec)
--- snip ---

Orphaned 'mscorsvw.exe' (wpid 0x9d):

--- snip ---
Wine-dbg>info process
 pid      threads  executable (all id:s are in hex)
 0000009d 1        'mscorsvw.exe'
 00000023 4        'explorer.exe'
 0000000e 6        'services.exe'
 000000d7 4        \_ 'mscorsvw.exe'
 0000001a 3        \_ 'plugplay.exe'
 00000012 4        \_ 'winedevice.exe'
 00000008 1        'setup.exe'
 0000002c 6        \_ 'msiexec.exe'
 00000028 2           \_ 'gfwlivesetup.exe'
 0000000c 1              \_ 'GFWLIVESetupStub.exe'
 0000003b 2                 \_ 'dotnetfx3.exe'
 0000003e 2                    \_ 'setup.exe'
--- snip ---

--- snip ---
11600  ./setup.exe
11603  /home/focht/projects/wine/wine.repo/install/bin/wineserver
11609  C:\windows\system32\services.exe
11613  C:\windows\system32\winedevice.exe MountMgr
11621  C:\windows\system32\plugplay.exe
11630  C:\windows\system32\explorer.exe /desktop
11680  MSIEXEC.EXE /i d:\RESIDENT EVIL 5.msi TRANSFORMS=1033.MST SETUPEXEDIR...
11718  d:\redist\gfwlivesetup.exe /q
11722  c:\d8befac01b420b330b\GFWLIVESetupStub.exe /q
11739  pkg\dotnetfx3.exe /norestart /qb
11742  c:\584a7a7d10077d6603\setup.exe /norestart /qb
11966  C:\windows\Microsoft.NET\Framework\v2.0.50727\mscorsvw.exe
--- snip ---

--- snip ---
Wine-dbg>info thread
process  tid      prio (all id:s are in hex)
...
00000028 gfwlivesetup.exe
    0000000d    0
    00000027    0
0000000c GFWLIVESetupStub.exe
    00000016    0
000000d7 mscorsvw.exe
    000000dd    0
    000000dc    0
    000000db    0
    000000d8    0
0000009d (D) C:\windows\Microsoft.NET\Framework\v2.0.50727\mscorsvw.exe
    0000007d    0 <==
000000b7 setup.exe
    000000c1    0
    000000bc    0
...

Backtracing for thread 007d in process 009d
(C:\windows\Microsoft.NET\Framework\v2.0.50727\mscorsvw.exe):

Backtrace:
=>0 0xf77a6c10 __kernel_vsyscall+0x10() in [vdso].so (0x00000000)
  1 0xf74a1dc7 syscall+0x26() in libc.so.6 (0x00000000)
  2 0x7bc4b2a4 futex_wait+0x3f(addr=0x110070, val=0, timeout=0x33f3c4)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/critsection.c:69] in ntdll
(0x0033f3a8)
  3 0x7bc4b3ae fast_wait+0x40(crit=0x110060, timeout=0x3c)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/critsection.c:108] in ntdll
(0x0033f3d8)
  4 0x7bc4b509 wait_semaphore+0x24(crit=0x110060, timeout=0x3c)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/critsection.c:229] in ntdll
(0x0033f518)
  5 0x7bc4b9ad RtlpWaitForCriticalSection+0x128(crit=<couldn't compute
location>)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/critsection.c:452] in ntdll
(0x0033f5d8)
  6 0x7bc4bc88 RtlEnterCriticalSection+0xd0(crit=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/critsection.c:566] in ntdll
(0x0033f618)
  7 0x7bc61f10 RtlAllocateHeap+0xfd(heap=<couldn't compute location>,
flags=<couldn't compute location>, size=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/heap.c:1675] in ntdll
(0x0033f6a8)
  8 0x7bc866aa RtlAnsiStringToUnicodeString+0x83(uni=<couldn't compute
location>, ansi=<couldn't compute location>, doalloc=1)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/rtlstr.c:689] in ntdll
(0x0033f708)
  9 0x7ec6878c RegSetValueExA+0x158(hkey=<couldn't compute location>,
name=<couldn't compute location>, reserved=<couldn't compute location>,
type=<couldn't compute location>, data=<couldn't compute location>,
count=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/advapi32/registry.c:1294] in
advapi32 (0x0033f768)
  10 0x7d6efa68 MSACM_WriteCache+0x7e(padid=0x5060138)
[/home/focht/projects/wine/wine.repo/src/dlls/msacm32/internal.c:262] in
msacm32 (0x0033f7b8)
  11 0x7d6f0ff6 MSACM_UnregisterAllDrivers+0x22()
[/home/focht/projects/wine/wine.repo/src/dlls/msacm32/internal.c:804] in
msacm32 (0x0033f7e8)
  12 0x7d6f1b2c DllMain+0xbb(hInstDLL=<couldn't compute location>,
fdwReason=<couldn't compute location>, lpvReserved=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/msacm32/msacm32_main.c:57] in
msacm32 (0x0033f828)
  13 0x7d6f6afd __wine_spec_dll_entry+0x64(inst=<couldn't compute location>,
reason=<couldn't compute location>, reserved=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/winecrt0/dll_entry.c:40] in
msacm32 (0x0033f868)
  14 0x7bc640aa call_dll_entry_point+0x15() in ntdll (0x0033f898)
  15 0x7bc665c1 MODULE_InitDLL+0x1ea(wm=0x3ea5c60, reason=0, lpReserved=0x1)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/loader.c:1091] in ntdll
(0x0033f9f8)
  16 0x7bc66c08 process_detach+0x88()
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/loader.c:1260] in ntdll
(0x0033fa28)
  17 0x7bc6a77c LdrShutdownProcess+0x5d()
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/loader.c:2702] in ntdll
(0x0033fa58)
  18 0x7bc6a7c0 RtlExitUserProcess+0x41(status=<couldn't compute location>)
[/home/focht/projects/wine/wine.repo/src/dlls/ntdll/loader.c:2714] in ntdll
(0x0033fa78)
  19 0x7b872fda ExitProcess+0x11() in kernel32 (0x0033fa94)
  20 0x00000000 (0x0033fa94)
  21 0x79f96d9c in mscorwks (+0x126d9b) (0x0033fb2c)
--- snip ---

Thread 0x5c is already gone with heap lock held.
Unfortunately not reliably reproducible for me - kind of trying to hit the
jackpot.

$  wine --version
wine-1.7.51-102-ga7e294c

Regards

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list