http://bugs.winehq.org/show_bug.cgi?id=27230
--- Comment #3 from Andrew Nguyen arethusa26@gmail.com 2011-05-26 13:59:07 CDT --- Created an attachment (id=34907) --> (http://bugs.winehq.org/attachment.cgi?id=34907) +msi trace of Corel Ventura 10 trial installer (xz compressed)
There's a deadlock when the installer performs a concurrent install for the msxml4 redist:
Wine-dbg>bt 0x37 Backtrace: ... 4 0x7b86f26f WaitForSingleObject+0x3b(handle=0xc28, timeout=0xffffffff) [/home/arethusa/wine32/dlls/kernel32/../../../wine.git/dlls/kernel32/sync.c:128] in kernel32 (0x0033dd7c) 5 0x32ef9815 msi_dialog_check_messages+0x45(handle=0xc28) [/home/arethusa/wine32/dlls/msi/../../../wine.git/dlls/msi/dialog.c:3901] in msi (0x0033ddbc) 6 0x32ee722e wait_thread_handle+0x94(info=0x191c8e8) [/home/arethusa/wine32/dlls/msi/../../../wine.git/dlls/msi/custom.c:618] in msi (0x0033de0c) 7 0x32ee811b HANDLE_CustomType23+0x110(package=0x172598, source="Corel\Ventura 10\Config\Redist\msxml4.msi", target="ADDLOCAL=MSXML ALLUSERS=1 UILevel=2", type=0x17, action="RUN_0_msxml4") [/home/arethusa/wine32/dlls/msi/../../../wine.git/dlls/msi/custom.c:951] in msi (0x0033e05c) ...
Wine-dbg>bt 0x24 Backtrace: ... 3 0x7b86f43a WaitForMultipleObjectsEx+0x137(count=0x1, handles=0x1c8e02c, wait_all=0, timeout=0xffffffff, alertable=0) [/home/arethusa/wine32/dlls/kernel32/../../../wine.git/dlls/kernel32/sync.c:188] in kernel32 (0x01c8df14) ... 9 0x683a573d SendMessageW+0x53(hwnd=0x50084, msg=0xd, wparam=0x13, lparam=0x1951c50) [/home/arethusa/wine32/dlls/user32/../../../wine.git/dlls/user32/message.c:3264] in user32 (0x01c8e164) ... 13 0x683d4c07 FindWindowA+0x33(className=0x0(nil), title="Windows Installer") [/home/arethusa/wine32/dlls/user32/../../../wine.git/dlls/user32/win.c:1800] in user32 (0x01c8e444) 14 0x10018408 in setupmgr (+0x18407) (0x01c8e798) 15 0x32ec16cd ui_actionstart+0x53(package=0x1934538, action="LaunchConditions") [/home/arethusa/wine32/dlls/msi/../../../wine.git/dlls/msi/action.c:169] in msi (0x01c8e7c8) 16 0x32ed3bb5 ACTION_HandleStandardAction+0x63(package=0x1934538, action="LaunchConditions", rc=0x1c8e848) [/home/arethusa/wine32/dlls/msi/../../../wine.git/dlls/msi/action.c:7242] in msi (0x01c8e818)
Thread 0x24, running the concurrent installation, hangs while trying to retrieve the window text of a dialog window owned by thread 0x37, while thread 0x37 is blocked on the completion of thread 0x24 in msi_dialog_check_messages.
Since no UI thread is running because the installation is occurring silently, hacking msi_dialog_check_messages to immediate return if no UI thread exists seems to be enough to get the installer to finish.