http://bugs.winehq.org/show_bug.cgi?id=28388
--- Comment #14 from Jörg Höhle hoehle@users.sourceforge.net 2011-10-27 03:25:20 CDT --- We don't know what causes the bug. From Dan's logs: - it always occurs after midiStreamOpen (past test line 414); - there's never a backtrace for the main winmm thread (running the test), which may indicate some stack corruption; - mark_block_free within AllocateHeap is a strange place to hang, as it's just a loop, except perhaps if size overflowed to MAX_INT and it's overwriting all memory.
wild pointer reference buried in an ioctl in snd_ctl_pcm_info
I think we can ignore that here.
Somebody should examine closely and understand how winmm starts the MMSYSTEM_MidiStream_Player thread and esp. how it creates its message port: 1140 /* force thread's queue creation */ 1141 PeekMessageA(&msg, 0, 0, 0, PM_NOREMOVE); but actually Dan found the hang later in: 1154 /* for first message, block until one arrives, then process all that are available */ 1155 GetMessageA(&msg, 0, 0, 0);
May the custom WINE_MSM_HEADER/STOP messages cause serialization/pointer issues?
Or we "simply" have a case of buffer overflow that destroys the heap arena information, leading to a deadlock. Oddly, warn+heap makes no difference.