http://bugs.winehq.org/show_bug.cgi?id=28693
Andrew Nguyen arethusa26@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #1 from Andrew Nguyen arethusa26@gmail.com 2011-10-15 02:07:44 CDT --- I see the problem in wine-1.3.30-102-g8f8e86e with the supplied sample application mo3.exe. A deadlock occurs when bass.dll's DllMain in the DLL_PROCESS_ATTACH notification calls DirectSoundEnumerateA, causing it to indirectly wait on a thread which itself is waiting to take the loader critical section:
Backtrace: =>0 0x68001230 _dl_sysinfo_int80() in ld-linux.so.2 (0x0033eee0) ... 4 0x7b86fab4 WaitForMultipleObjects+0x39(count=0x2, handles=0x33f2fc, wait_all=0, timeout=0xffffffff) [/home/arethusa/wine32-unoptimized/dlls/kernel32/../../../wine.git/dlls/kernel32/sync.c:148] in kernel32 (0x0033f2d0) 5 0x68b7e54c get_mmdevenum+0x10f() [/home/arethusa/wine32-unoptimized/dlls/dsound/../../../wine.git/dlls/dsound/dsound_main.c:266] in dsound (0x0033f310) 6 0x68b7eda5 enumerate_mmdevices+0x19(flow=eRender, guids=0x68ba6d40, cb=0x68b7e9cc, user=0x33f408) [/home/arethusa/wine32-unoptimized/dlls/dsound/../../../wine.git/dlls/dsound/dsound_main.c:496] in dsound (0x0033f3a0) 7 0x68b7f2e6 DirectSoundEnumerateW+0xe7(lpDSEnumCallback=0x68b7e9cc, lpContext=0x33f408) [/home/arethusa/wine32-unoptimized/dlls/dsound/../../../wine.git/dlls/dsound/dsound_main.c:595] in dsound (0x0033f3f0) 8 0x68b7eb17 DirectSoundEnumerateA+0x88(lpDSEnumCallback=0x1001a6e0, lpContext=0x0(nil)) [/home/arethusa/wine32-unoptimized/dlls/dsound/../../../wine.git/dlls/dsound/dsound_main.c:429] in dsound (0x0033f420) 9 0x1001c65c in bass (+0x1c65b) (0x0033fd14) 10 0x1001c4f5 in bass (+0x1c4f4) (0x0033fd38) 11 0x7bc4c499 call_dll_entry_point+0x14() in ntdll (0x0033fd58) 12 0x7bc4e756 MODULE_InitDLL+0x200(wm=0x111298, reason=0x1, lpReserved=0x1) [/home/arethusa/wine32-unoptimized/dlls/ntdll/../../../wine.git/dlls/ntdll/loader.c:978] in ntdll (0x0033fec8) ...
The sample application does work on Windows 7. I don't have any good ideas on how to fix the issue, as there is no obvious place in dsound to defer the get_mmdevenum() initialization such that it does not occur when the loader critical section is held yet with DirectSoundEnumerateA reporting non-fake information when bass.dll loads.