[Bug 24557] New: winmm/msacm: Improper shutdown sequence

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Sep 28 08:33:43 CDT 2010


           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 at winehq.org
        ReportedBy: hoehle at 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.

Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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