ole32:fix CoWaitForMultipleHandles cause RPC hang

Changhui Liu liuchanghui at linuxdeepin.com
Thu Dec 11 21:36:01 CST 2014


Hi, I modified my patch, it has passed test on 
https://testbot.winehq.org/JobDetails.pl?Key=10745&log_202=1#k202


My test aims to reproduce the bug.
 
 
------------------ Original ------------------
From:  "Sebastian Lackner"<sebastian at fds-team.de>;
Date:  Thu, Dec 11, 2014 11:06 PM
To:  "liuchanghui"<liuchanghui at linuxdeepin.com>; 
Cc:  "wine-devel"<wine-devel at winehq.org>; 
Subject:  Re: ole32:fix CoWaitForMultipleHandles cause RPC hang

 
On 11.12.2014 15:07, Changhui Liu wrote:
> Because there's a RPC request need to be handled by OLE apartment window proc apartment_wndproc.
> So, after received a WM_QUIT, 
> if the GUI thread in calling CoWaitForMultipleHandles don't handle message loop any more ,
> the RPC will never be handled, the RPC dispatch thread will be hang.
> 
> 
> 
> 

There are several issues with this patch. You wrote in your last mail:

> so this patch can't pass test on testbot.winehq.org, it only pass test on wine.
> The test result is here, https://testbot.winehq.org/JobDetails.pl?Key=10727.

It is not clear what you mean. The test should of course also pass on testbot.winehq.org, if it doesn't, this means that Wine doesn't properly reproduce the expected behaviour. You need to create a test so that it passes on both wine and the testbot, otherwise nothing is tested at all.

Other issues in your patch:

* It seems very unlikely that this is how quit messages are processed. Immediately calling PostQuitMessage(...) but continuing to process messages means that effectively WM_QUIT is lost.

* Always add a "\n" at the end of ok(...) messages.

* Try to avoid huge sleeps like Sleep(5000). This will probably cause the tests time out.

Unfortunately I didn't have much time to look into this issue myself so far, but I guess I'll have more time at the weekend.

Regards,
Sebastian






------------------
Regards,
Changhui
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20141212/c859aaec/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ole32-fix-CoWaitForMultipleHandles-cause-RPC-hang.txt
Type: application/octet-stream
Size: 5844 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20141212/c859aaec/attachment.obj>


More information about the wine-devel mailing list