http://bugs.winehq.org/show_bug.cgi?id=24557
Summary: winmm/msacm: Improper shutdown sequence Product: Wine Version: 1.3.1 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msacm32 AssignedTo: wine-bugs@winehq.org ReportedBy: hoehle@users.sourceforge.net
Created an attachment (id=30999) --> (http://bugs.winehq.org/attachment.cgi?id=30999) winmm,msacm,tid trace of shutdown, including backtrace
How to reproduce with source code: Use my MCI shell (bug #20232, comment #10), play a .wav involving the MSACM (i.e. not a linear PCM file, but e.g. an ADPCM encoded one) then end the shell application while it's playing.
play 11kadpcm.wav # auto-open ctrl-Z/ctrl-D # end the program while music plays
Native does not crash and stops the music. The attached log shows how upon exit, Wine first detaches msacm -- while winmm is still playing -- then the MCI from within winmm. Closing the MCI device causes Wine to crash in acmStreamUnprepareHeader when indirectly invoking the MSACM codec that handles the file.
trace:msacm:DllMain 0x7e210000 0x0 0x1 trace:msacm:acmDriverClose (0x740598, 00000000) trace:winmm:DllMain 0x7e820000 0x0 0x1 trace:mci:MCI_Close (ffffffff, 00000002, (nil))
The console EOF bug #24306 currently shadows this bug when using the MCI shell, so use wine-1.3.1 or older (or write a one-liner mciSendStringA("play 11kadpcm.wav",...);). BTW, in even older versions of Wine (1.0 IIRC), this scenario would trigger a critical section lock timeout instead of a crash.
Perhaps ACM_GetStream should test the handle like MSACM_GetObj does?
Crashes with (and does not depend on) either OSS or ALSA.
http://bugs.winehq.org/show_bug.cgi?id=24557
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |source
http://bugs.winehq.org/show_bug.cgi?id=24557
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download
http://bugs.winehq.org/show_bug.cgi?id=24557
--- Comment #1 from Jörg Höhle hoehle@users.sourceforge.net 2012-01-01 09:35:30 CST --- As of wine-1.3.36, msacm is used even for an 8000x1x8 linear PCM file. After ^D in the console, a crash occurs in:
0 acmStreamUnprepareHeader+0x207(has=0x430530, pash=0x13a438, fdwUnprepare=0) [/.../dlls/msacm32/stream.c:476] in msacm32 1 WINMM_UnprepareHeader+0x7b(hwave=<is not available>, header=0x1397f0) [/.../dlls/winmm/waveform.c:1213] in winmm 2 waveOutUnprepareHeader+0xb9(hWaveOut=0xc000, lpWaveOutHdr=0x1397f0, uSize=0x20) [/.../dlls/winmm/waveform.c:2392] in winmm 3 WAVE_mciPlay+0x8d7(wDevID=0x1, dwFlags=0x2, pmt=0x13267c, hEvent=0x68) [/.../dlls/mciwave/mciwave.c:908] in mciwave 4 MCI_SCAStarter+0x49(arg=0x132668) [/.../dlls/mciwave/mciwave.c:90] in mciwave
Wine then hangs with: err:ntdll:RtlpWaitForCriticalSection section 0x7efec8e4 "loader.c: loader_section" wait timed out in thread 0029, blocked by 0009, retrying (60 sec) and does not manage to recover without killall -INT wineserver, on both Linux and MacOS.
http://bugs.winehq.org/show_bug.cgi?id=24557
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #30999|application/octet-stream |text/plain mime type| |
http://bugs.winehq.org/show_bug.cgi?id=24557
Jörg Höhle hoehle@users.sourceforge.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #2 from Jörg Höhle hoehle@users.sourceforge.net 2012-11-09 03:02:49 CST --- Not an issue in 1.5.16, even with warn+heap.
Presumably one of Andrew Eikum's May 2012 winmm process shutdown patches fixed it.
http://bugs.winehq.org/show_bug.cgi?id=24557
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alexandre Julliard julliard@winehq.org 2012-11-09 13:00:59 CST --- Closing bugs fixed in 1.5.17.