I ran "spyxx" from MSVC on my deadlocking program, and everything was ok. I then quite the program itself (Microsoft Digital Image Pro was run with +relay, spy was run without any debug values). I left spy running for a while (~2 days), as I had other things to do, and I wanted the window handles it collected.
At some point, the console that launched spy began showing the following: $ wine SPYXX err:font:ReadFontDir Can't open directory "/win/windows/fonts" fixme:mdi:MDIRefreshMenu partially function stub fixme:mdi:MDIRefreshMenu partially function stub err:toolbar:TOOLBAR_NotifyFormat wrong response to WM_NOTIFYFORMAT (0), assuming ANSI err:win:CreateWindowExA bad class name "msctls_updown" err:ntdll:RtlpWaitForCriticalSection section 0x40380d68 "?" wait timed out in thread 0011, blocked by 0000, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x40380d68 "?" wait timed out in thread 0011, blocked by 0000, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x40380d68 "?" wait timed out in thread 0011, blocked by 0000, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x40380d68 "?" wait timed out in thread 0011, blocked by 0000, retrying (60 sec) err:ntdll:RtlpWaitForCriticalSection section 0x40380d68 "?" wait timed out in thread 0011, blocked by 0000, retrying (60 sec)
Here are the backtraces: Wine-dbg>walk process pid threads parent executable
00000010 2 00000000 'Y:\sources\Transfer\RemoteDebug\SPYXX.EXE'
Wine-dbg>walk thread process tid prio 00000010 (D) Y:\sources\Transfer\RemoteDebug\SPYXX.EXE 00000012 0 <== 00000011 0 Wine-dbg>bt 0x11 Backtrace: =>0 0x4010e8ab (NTDLL.DLL._memccpy+0x5202b in libc.so.6) (ebp=40032c60) 1 0x401f4002 (NTDLL_wait_for_multiple_objects+0xbf(count=0x0, handles=0x0, flags=0x8, timeout=0x40032d10) [sync.c:578] in NTDLL.DLL) (ebp=40032cf8) 2 0x401f1edd (usr1_handler+0x4e(__signal=0xa, __context=0x8f) [signal_i386.c:1123] in NTDLL.DLL) (ebp=40032d1c) 3 0x4006e498 (NTDLL.DLL.toupper+0x6208 in libc.so.6) (ebp=4080f7e0) 4 0x401f4002 (NTDLL_wait_for_multiple_objects+0xbf(count=0x1, handles=0x4080f8cc, flags=0xc, timeout=0x4080f900) [sync.c:578] in NTDLL.DLL) (ebp=4080f878) 5 0x401f40ae (NTDLL.DLL.NtWaitForMultipleObjects+0x74 in NTDLL.DLL) (ebp=4080f8a0) 6 0x401f40fe (NtWaitForSingleObject+0x42(handle=0x88, alertable=0x0, timeout=0x4080f900) [sync.c:611] in NTDLL.DLL) (ebp=4080f8c4) 7 0x401cda35 (RtlpWaitForCriticalSection+0x127(crit=0x40380d68) [critsection.c:193] in NTDLL.DLL) (ebp=4080f964) 8 0x401cdc25 (RtlEnterCriticalSection+0x51(crit=0x40380d68) [critsection.c:255] in NTDLL.DLL) (ebp=4080f97c) 9 0x404f2555 (wine_pthread_mutex_lock+0x34(mutex=0x101593c8) [pthread.c:182] in KERNEL32.DLL) (ebp=4080f98c) 10 0x0011273a (__pthread_mutex_lock+0x25(mutex=0x101593c8) [kthread.c:588] in wine-kthread) (ebp=4080f99c) 11 0x40f409ea (_end+0x75bb6 in libX11.so.6) (ebp=4080f9bc) 12 0x40f0d799 (_end+0x42965 in libX11.so.6) (ebp=4080fa1c) 13 0x40e8b39e (X11DRV_InitKeyboard+0x84(key_state_table=0x40b66880) [keyboard.c:1332] in X11DRV.DLL) (ebp=4080fadc) 14 0x40e8c1c4 (X11DRV_MappingNotify+0x35(event=0x4080fb94) [keyboard.c:1635] in X11DRV.DLL) (ebp=4080fafc) 15 0x40e83647 (.L164+0xb [event.c] in X11DRV.DLL) (ebp=4080fb7c) 16 0x40e82e65 (process_events+0x71(data=0x40380d40) [event.c:143] in X11DRV.DLL) (ebp=4080fbf8) 17 0x40e82ffa (X11DRV_MsgWaitForMultipleObjectsEx+0x17b(count=0x1, handles=0x40380c6c, timeout=0xffffffff, mask=0x0, flags=0x0) [event.c:184] in X11DRV.DLL) (ebp=4080fd38) 18 0x40ad5f96 (GetMessageW+0x287(msg=0x46becc, hwnd=0x0, first=0x0, last=0x0) [message.c:2363] in USER32.DLL) (ebp=4080fdf4) 19 0x40ad6020 (GetMessageA+0x33(msg=0x46becc, hwnd=0x0, first=0x0, last=0x0) [message.c:2380] in USER32.DLL) (ebp=4080fe14) 20 0x6c3be6e9 (MFC42.DLL.5307+0x13 in MFC42.DLL) (ebp=0046becc) 21 0x0000000f (ebp=000100d6)
Wine-dbg>bt 0x12 Backtrace: =>0 0x4010e8ab (NTDLL.DLL._memccpy+0x5202b in libc.so.6) (ebp=4030fc60) 1 0x401f4002 (NTDLL_wait_for_multiple_objects+0xbf(count=0x0, handles=0x0, flags=0x8, timeout=0x4030fd10) [sync.c:578] in NTDLL.DLL) (ebp=4030fcf8) 2 0x401f1edd (usr1_handler+0x4e(__signal=0xa, __context=0x8f) [signal_i386.c:1123] in NTDLL.DLL) (ebp=4030fd1c) 3 0x4006e498 (NTDLL.DLL.toupper+0x6208 in libc.so.6) (ebp=419eb450) 4 0x401f4002 (NTDLL_wait_for_multiple_objects+0xbf(count=0x1, handles=0x419eb53c, flags=0xc, timeout=0x419eb530) [sync.c:578] in NTDLL.DLL) (ebp=419eb4e8) 5 0x401f40ae (NTDLL.DLL.NtWaitForMultipleObjects+0x74 in NTDLL.DLL) (ebp=419eb510) 6 0x404fcb20 (WaitForMultipleObjectsEx+0x1d5(count=0x1, handles=0x419eb670, wait_all=0x0, timeout=0x32, alertable=0x0) [sync.c:167] in KERNEL32.DLL) (ebp=419eb648) 7 0x404fc8b8 (WaitForSingleObject+0x3c(handle=0x64, timeout=0x32) [sync.c:95] in KERNEL32.DLL) (ebp=419eb668) 8 0x004232fa (SPYXX.EXE..text+0x222fa in SPYXX.EXE) (ebp=40aab4df) 9 0x0168ec81 (SPYXX.EXE..rsrc+0x1221c81 in wine-kthread) (ebp=53e58955) *** Invalid address 0x53e58955 (_end+0x121f453d)
I hope this helps someone.
There was recently (within the last few days) a commit to CVS by Alexandre that works around a threading bug in Xlib - how recent was the build you were using?
Mike Hearn wrote:
There was recently (within the last few days) a commit to CVS by Alexandre that works around a threading bug in Xlib - how recent was the build you were using?
Next time - read my mail ;-)
I said spyxx was running for about 48 hours. That is, before Alexandre commited that patch. I'm recompiling at the moment to see whether the problems stop recurring.
I submitted the backtrace, partly in the hope that someone will say "I know this - it's now fixed", and partly so that if it's not fixed (but I don't manage to backtrace it), I'll have it on record (following Linus' backup methodology).
Shachar
On Sat, 2003-12-13 at 15:26, Shachar Shemesh wrote:
Next time - read my mail ;-)
I said spyxx was running for about 48 hours. That is, before Alexandre commited that patch. I'm recompiling at the moment to see whether the problems stop recurring.
Hmm, sorry, I couldn't remember offhand how long ago I saw that commit. I thought it was more like 4 or 5 days ago, but I could well be losing track of time at the moment, it wouldn't surprise me :)