Hi,
On Windows 8, the dpnet are failing with a timeout.
After manually running the tests, I found a possible cause.
The dpnet.dll cause the dpnsvr.exe to be loaded which attempts to create a socket. In turn the firewall dialog appears prompting whether it's allowed to do so. So no communication between the dpnet test exe and dpnsvr.exe thus the timeout.
Could someone run the dpnet test manually and allow the dpnsvr.exe to create connections?
Best Regards Alistair Leslie-Hughes
On Tue, 18 Feb 2014, Alistair Leslie-Hughes wrote:
Hi,
On Windows 8, the dpnet are failing with a timeout.
I don't see a timeout for either the dpnet:peer or dpnet:server tests:
http://test.winehq.org/data/tests/dpnet:peer.html http://test.winehq.org/data/tests/dpnet:server.html
In fact it's green on all Windows platforms for the past 12 runs. Kudos!
After manually running the tests, I found a possible cause.
The dpnet.dll cause the dpnsvr.exe to be loaded which attempts to create a socket. In turn the firewall dialog appears prompting whether it's allowed to do so. So no communication between the dpnet test exe and dpnsvr.exe thus the timeout.
Could someone run the dpnet test manually and allow the dpnsvr.exe to create connections?
I have run both tests manually on my Windows 8.1 laptop. On the first run the dpnet:server test caused the firewall dialog to pop up but that did not stop the test and it completed almost immediately. A number of other tests cause the firewall dialog to pop up but I believe that as long as the connections are to and/or from the localhost, the firewall lets them through and so does not cause trouble.
Hi Francois,
The issue is when it run on the test bot.
This patch removed all tests and traces around CoCreateInstance. https://newtestbot.winehq.org/JobDetails.pl?Key=4949&log_201=1#k201
Its timing out. I've seen this on Linux when mixing native dpnsvr.exe and builtin dpnet.dll due to the missing callback in dpnet.dll (not a windows issue). If dpnsvr uses the local address instead of the loopback then this cause the timeout.
Would it be possible to test windows 8 without the firewall enabled?
It's going to be hard to get patches accepted if win8 keeps failing.
Best Regards Alistair Leslie-Hughes
On Wed, 19 Feb 2014, Alistair Leslie-Hughes wrote: [...]
Would it be possible to test windows 8 without the firewall enabled?
It's going to be hard to get patches accepted if win8 keeps failing.
I looked into this and the problem is not with the firewall. The issue is that DirectPlay is deprecated on Windows 8. As a result the libraries are not installed by default and when an application tries to load them one gets a dialog that says:
An app on your pc needs the following windows feature DirectPlay
This then offers to install it and the application remains stuck until the user says yes or no. That's why the test times out.
One option would be to trigger this dialog so DirectPlay is installed. This dialog will then no longer be triggered and the test will run fine. That's what I have done on the w864 VM some time back.
However it may be better for the test to detect that the dll is missing and to skip if that's the case. Otherwise even if I fix the issue on this VM we'll still get failures from any other Windows 8 system for which the user did not go through these steps.
I suspect a simple LoadLibrary() will trigger that dialog too so some other approach may be needed. Maybe something based on FindExecutable() would work.
On 25/02/2014 2:10 AM, Francois Gouget wrote:
On Wed, 19 Feb 2014, Alistair Leslie-Hughes wrote: [...]
Would it be possible to test windows 8 without the firewall enabled?
I suspect a simple LoadLibrary() will trigger that dialog too so some other approach may be needed. Maybe something based on FindExecutable() would work.
After some testing, LoadLibrary and LoadLibraryEx trigger DLLmain to be called. The dpnet.dll exists in the system32 directory but is a stub dll which causes that dialog to appear.
Still working on using LoadLibraryEx to load the DLL as a resources only (Assuming it wont call DLLMain). From there it would be possible to check the Filename or Origial name from the Version properties. Well that's my plan.
If anybody else has any ideas, happy to listen.
Alistair.