http://bugs.winehq.org/show_bug.cgi?id=29145
Bug #: 29145 Summary: Perfect Dark doesn't bind port after 1.3.33 release Product: Wine Version: 1.3.33 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: major Priority: P2 Component: winsock AssignedTo: wine-bugs@winehq.org ReportedBy: z0rc3r@gmail.com Classification: Unclassified Regression SHA1: 75be2284e13d327d93a9665eb32cd901cbed7234
Created attachment 37584 --> http://bugs.winehq.org/attachment.cgi?id=37584 Log before revert
After 1.3.33 release Perfect Dark doesn't open port after start. With 1.3.32 it is in netstat output listening configured port, but with .33 it doesn't.
Reverting 75be2284e13d327d93a9665eb32cd901cbed7234 commit fixes the issue. Also I'm attaching trace log with WINEDEBUG=+winsock before and after revert. Seems it's problem with WS_getaddrinfo when passing NULL as nodename parameter.
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #1 from Igor Urazov z0rc3r@gmail.com 2011-11-22 15:58:00 CST --- Created attachment 37585 --> http://bugs.winehq.org/attachment.cgi?id=37585 Log after revert
http://bugs.winehq.org/show_bug.cgi?id=29145
Igor Urazov z0rc3r@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |z0rc3r@gmail.com
http://bugs.winehq.org/show_bug.cgi?id=29145
Igor Urazov z0rc3r@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- See Also| |http://bugs.winehq.org/show | |_bug.cgi?id=29039
http://bugs.winehq.org/show_bug.cgi?id=29145
Igor Urazov z0rc3r@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Platform|x86 |x86-64
http://bugs.winehq.org/show_bug.cgi?id=29145
Igor Urazov z0rc3r@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|major |normal
http://bugs.winehq.org/show_bug.cgi?id=29145
Igor Urazov z0rc3r@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC|z0rc3r@gmail.com |
http://bugs.winehq.org/show_bug.cgi?id=29145
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com, | |hans@meelstraat.net
--- Comment #2 from Bruno Jesus 00cpxxx@gmail.com 2011-11-22 16:42:40 CST --- getaddrinfo differences:
bad: trace:winsock:WS_getaddrinfo (null), "51415" 0x32fa28 -> 0x32fa20 0 ---
good: trace:winsock:WS_getaddrinfo (null), "51415" 0x32fa28 -> 0x32fa20 -2 trace:winsock:WS_getaddrinfo (null), "18050" 0x32fab0 -> 0x32fad4 -2 trace:winsock:WS_bind socket 00c8, ptr 0x144ee0 { family AF_INET, address 0.0.0.0, port 51415 }, length 16 trace:winsock:WS_listen socket 00
The curious fact is that in the good log (1.3.32) the function getaddrinfo returns error and now that the function is fixed (1.3.33) the bug appeared.
Adding Hans as he is the patch author.
http://bugs.winehq.org/show_bug.cgi?id=29145
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
http://bugs.winehq.org/show_bug.cgi?id=29145
Vitaliy Margolen vitaliy-bugzilla@kievinfo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Perfect Dark doesn't bind |Perfect Dark doesn't bind |port after 1.3.33 release |port
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #3 from Igor Urazov z0rc3r@gmail.com 2011-11-22 23:29:57 CST --- Erm, the things are actually contrariwise.
Bad: trace:winsock:WS_getaddrinfo (null), "51415" 0x32fa28 -> 0x32fa20 -2 trace:winsock:WS_getaddrinfo (null), "18050" 0x32fab0 -> 0x32fad4 -2 trace:winsock:DllMain 0x7e670000 0x2 (nil)
Good: trace:winsock:WS_getaddrinfo (null), "51415" 0x32fa28 -> 0x32fa20 0 trace:winsock:WS_socket af=2 type=1 protocol=6 trace:winsock:WSASocketA af=2 type=1 protocol=6 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW af=2 type=1 protocol=6 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW created 00c8 trace:winsock:WS_setsockopt socket: 00c8, level 0xffff, name 0x4, ptr 0x32fa18, len 4 trace:winsock:WS_setsockopt socket: 00c8, level 0xffff, name 0x1002, ptr 0x32fa18, len 4 trace:winsock:WS_setsockopt socket: 00c8, level 0xffff, name 0x1001, ptr 0x32fa18, len 4 trace:winsock:WS_bind socket 00c8, ptr 0x144ee0 { family AF_INET, address 0.0.0.0, port 51415 }, length 16 trace:winsock:WS_listen socket 00c8, backlog 5 ... trace:winsock:WS_getaddrinfo (null), "18050" 0x32fab0 -> 0x32fad4 0 trace:winsock:WS_socket af=2 type=1 protocol=6 trace:winsock:WSASocketA af=2 type=1 protocol=6 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW af=2 type=1 protocol=6 protocol_info=(nil) group=0 flags=0x1 trace:winsock:WSASocketW created 00dc trace:winsock:WS_setsockopt socket: 00dc, level 0xffff, name 0x4, ptr 0x32fadc, len 4 trace:winsock:WS_setsockopt socket: 00dc, level 0xffff, name 0x1002, ptr 0x32fadc, len 4 trace:winsock:WS_setsockopt socket: 00dc, level 0xffff, name 0x1001, ptr 0x32fadc, len 4 trace:winsock:WS_bind socket 00dc, ptr 0x142468 { family AF_INET, address 0.0.0.0, port 18050 }, length 16 trace:winsock:WS_listen socket 00dc, backlog 5 ... trace:winsock:DllMain 0x7e670000 0x2 (nil)
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #4 from Hans Leidekker hans@meelstraat.net 2011-11-23 03:43:06 CST --- Bruno is right, getaddrinfo succeeds now if NULL is passed as the first parameter. How exactly is Perfect Dark affected by this commit?
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #5 from Igor Urazov z0rc3r@gmail.com 2011-11-23 04:51:14 CST --- The Perfect Dark doesn't even try to bind port after getaddrinfo check. This makes application unusable as it's P2P client.
As I see right now, with this commit WS_getaddrinfo pass "localhost" to getaddrinfo and it returns EAI_NONAME (-2). I don't see success here, and the Perfect Dark seems so.
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #6 from Bruno Jesus 00cpxxx@gmail.com 2011-11-23 05:02:51 CST --- Igor, can you run "make -k test" inside dlls/ws2_32/tests just to check if it passes in your machine? There are some tests there related to null getaddrinfo.
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #7 from Hans Leidekker hans@meelstraat.net 2011-11-23 05:07:36 CST --- (In reply to comment #5)
The Perfect Dark doesn't even try to bind port after getaddrinfo check. This makes application unusable as it's P2P client.
As I see right now, with this commit WS_getaddrinfo pass "localhost" to getaddrinfo and it returns EAI_NONAME (-2). I don't see success here, and the Perfect Dark seems so.
getaddrinfo(NULL) also returned EAI_NONAME, so that doesn't explain the difference you see. Does "localhost" really not resolve on your system?
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #8 from Igor Urazov z0rc3r@gmail.com 2011-11-23 05:20:42 CST --- According to log I attached, with reverted commit WS_getaddrinfo passes NULL to getaddrinfo and it returns 0.
I'll run test today later, as I get home. Though the "host localhost" from shell returns: localhost has address 127.0.0.1 localhost has IPv6 address ::1
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #9 from Bruno Jesus 00cpxxx@gmail.com 2011-11-23 07:08:02 CST --- Is it this program? http://www21.atwiki.jp/botubotubotubotu/pages/28.html
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #10 from Igor Urazov z0rc3r@gmail.com 2011-11-23 08:08:58 CST --- (In reply to comment #9)
Is it this program? http://www21.atwiki.jp/botubotubotubotu/pages/28.html
It is. Though it's version 1.08 now. It will autoupdate after a bit time running.
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #11 from Hans Leidekker hans@meelstraat.net 2011-11-23 08:50:17 CST --- Created attachment 37593 --> http://bugs.winehq.org/attachment.cgi?id=37593 ws2_32: Pass NULL hostname on to native getaddrinfo.
Can you try this patch?
http://bugs.winehq.org/show_bug.cgi?id=29145
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www21.atwiki.jp/botu | |botubotubotu/pages/28.html
http://bugs.winehq.org/show_bug.cgi?id=29145
tyle7@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |tyle7@hotmail.com
--- Comment #12 from tyle7@hotmail.com 2011-11-23 09:47:30 CST --- (In reply to comment #11)
Created attachment 37593 [details] ws2_32: Pass NULL hostname on to native getaddrinfo.
Can you try this patch?
Can confirm that this patch fixes the problem.
With latest Wine from git, Perfect Dark shows a red "perfect dark is online. open port NOT confirmed." text, and connections do not work. With the patch applied, a blue "perfect dark is online" is shown instead, and connections work as expected.
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #13 from Igor Urazov z0rc3r@gmail.com 2011-11-23 13:37:50 CST --- (In reply to comment #6)
Igor, can you run "make -k test" inside dlls/ws2_32/tests just to check if it passes in your machine? There are some tests there related to null getaddrinfo.
Passed with vanilla 1.3.33.
(In reply to comment #11)
Created attachment 37593 [details] ws2_32: Pass NULL hostname on to native getaddrinfo.
Can you try this patch?
Tried and confirming that patch fixes issue. Thanks.
http://bugs.winehq.org/show_bug.cgi?id=29145
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |8e5d5bf58aa4ad9ac638f0b6e64 | |73b4b8e2dbe83 Status|UNCONFIRMED |RESOLVED Resolution| |FIXED
--- Comment #14 from Bruno Jesus 00cpxxx@gmail.com 2011-11-24 15:06:52 CST --- Patch commited.
http://source.winehq.org/git/wine.git/commit/8e5d5bf58aa4ad9ac638f0b6e6473b4...
http://bugs.winehq.org/show_bug.cgi?id=29145
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #15 from Alexandre Julliard julliard@winehq.org 2011-12-02 13:34:22 CST --- Closing bugs fixed in 1.3.34.
http://bugs.winehq.org/show_bug.cgi?id=29145
sl1pkn07 sl1pkn07@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |sl1pkn07@gmail.com
--- Comment #16 from sl1pkn07 sl1pkn07@gmail.com 2011-12-03 12:42:57 CST --- still present in 1.3.34
"open port not confirmed"
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #17 from sl1pkn07 sl1pkn07@gmail.com 2011-12-03 12:50:24 CST --- http://paste.kde.org/154442/
log
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #18 from Igor Urazov z0rc3r@gmail.com 2011-12-03 14:41:44 CST --- (In reply to comment #16)
still present in 1.3.34
"open port not confirmed"
1.3.34 works here just fine. Most likely this is your local problem with port forwarding. If PD worked for you with .32 or earlier then run wine with WINEDEBUG=+winsock and provide produced log.
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #19 from sl1pkn07 sl1pkn07@gmail.com 2011-12-03 15:26:45 CST --- http://dl.dropbox.com/u/6596386/log.7z
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #20 from sl1pkn07 sl1pkn07@gmail.com 2011-12-03 15:29:20 CST --- yes. PD working without problem. in .32
the fail appears in .33 and still in .34
greetings
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #21 from Bruno Jesus 00cpxxx@gmail.com 2011-12-03 16:04:34 CST --- Is that log from 1.3.32 or 1.3.34? Attach the first 10.000 lines from 1.3.32 and 1.3.34 with +winsock. Just to check if the issue is really getaddrinfo.
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #22 from sl1pkn07 sl1pkn07@gmail.com 2011-12-03 17:14:53 CST --- the log is by .34
is weird..
back to .32 now fails with same error.
but change port, (by default my port is 10001) to 10002 (my router have DMZ link to my pc. no need open ports) works. but back to port 10001 still works :S
update to .34 fails like .32.... need change in PD settings the port to works (and back to default port)
when update to .33, (fom .32) this not occur. always (change port or not) fails with "open port not confirmed". but back to .32 don't need change any ports or config
EDIT: now works in .32 and .34 without change any settings in the first run. don't need change any ports. :S
fuck. this is very weird.
sorry for all
gretings
PS: fuck fuck fuck
http://bugs.winehq.org/show_bug.cgi?id=29145
--- Comment #23 from Bruno Jesus 00cpxxx@gmail.com 2011-12-03 17:27:09 CST --- If you kill the application and restart it in less than 60 seconds the port will not be available for binding. You're probably hitting this behavior.