Hang in user32/tests/dde.c:test_msg_client()

Dan Kegel dank at kegel.com
Tue Jul 29 06:51:49 CDT 2008


I'm running the tests on a slowish uniprocessor (Athlon XP 2100+, not dual
as I mistakenly said in last post), and I'm running into a hang in
user32/tests/dde.c.  This is a two process test.  One process is hung in
  8  test_ddeml_server+0x1ad(hproc=0x4c) [dlls/user32/tests/dde.c:797]
in user32_test (0x7f21fc68)
in a reasonable looking "wait for requests", and the
other is hung in
  5  X11DRV_MsgWaitForMultipleObjectsEx+0x77(count=0x1,
handles=0x7f22fa0c, timeout=0xffffffff, mask=0x40, flags=0x0)
[dlls/winex11.drv/event.c:402] in winex11 (0x7f22f968)
  6  wait_message_reply+0x11f(flags=0x0) [dlls/user32/message.c:2274]
in user32 (0x7f22fa28)
  7  send_inter_thread_message+0xf9(info=0x7f22faec,
res_ptr=0x7f22fab0) dlls/user32/message.c:2418] in user32 (0x7f22fa78)
  8  send_message+0x252(info=0x7f22faec, res_ptr=0x0, unicode=0x0)
[dlls/user32/message.c:2480] in user32 (0x7f22fac8)
  9  SendMessageTimeoutA+0x52(hwnd=0x84002c, msg=0x3e0,
wparam=0xb005c, lparam=0xc09fc09c, flags=0x0, timeout=0x0,
res_ptr=0x0) [dlls/user32/message.c:2567] in user32 (0x7f22fb18)
  10  broadcast_message_callback+0xfa(hwnd=0x84002c,
lparam=0x7f22fc08) [dlls/user32/message.c:363] in user32 (0x7f22fb68)
  11  EnumWindows+0x7d(lpEnumFunc=0x4b3d5ba, lParam=0x7f22fc08)
[dlls/user32/win.c:2979] in user32 (0x7f22fb98)
  12  send_message+0x3b(info=0x7f22fc08, res_ptr=0x7f22fc34,
unicode=0x0) [dls/user32/message.c:2450] in user32 (0x7f22fbe8)
  13  SendMessageA+0x5b(hwnd=0xffff, msg=0x3e0, wparam=0xb005c,
lparam=0xc09fc09c) [dlls/user32/message.c:2609] in user32 (0x7f22fc38)
  14  test_msg_client+0x111() [dlls/user32/tests/dde.c:1026] in
user32_test (0x7f22fc68)
That last frame is on the line
    SendMessageA(HWND_BROADCAST, WM_DDE_INITIATE, (WPARAM)client_hwnd,
MAKELONG(server, topic));

Looking at the code, it seems the client is spawned before the server
is started.
What happens if the client gets all the way to that SendMessageA(...
WM_DDE_INITIATE...)
before the server is active?  Would that cause the observed hang?

The code in question seems to have been added back in October by:

commit 9cf7f8c3e21931b52e3da6c5feb701aa9ba4a1f8
Author: James Hawkins <truiken at gmail.com>
Date:   Mon Oct 8 04:06:45 2007 -0500

    user32: Test the ddeml server interface.

- Dan



More information about the wine-devel mailing list