http://bugs.winehq.org/show_bug.cgi?id=5774
------- Additional Comments From damjan.jov(a)gmail.com 2007-12-05 04:39 -------
Created an attachment (id=6242)
--> (http://bugs.winehq.org/attachment.cgi?id=6242&action=view)
patch select to ensure readability
So looking over an enormous emule log that someone sent me, I see that emule
only ever creates 3 UDP sockets, all of them early on.
In order of creation:
* fd 38, handle 0xa8, bound to 0.0.0.0:0, closed very close to the end, works
perfectly sending and receiving
* fd 43, handle 0x3fc, emule tries to bind it to 0.0.0.0:11291 and fails
because it's already in use, then closes it immediately
* fd 144, handle 0x404, bound to 0.0.0.0:47772, closed very close to the end,
works perfectly sending, but receiving, after some time it hits EWOULDBLOCK,
and never tries to receive again!
Elaborating on that very suspicious last socket just before it breaks:
0009: get_message( flags=00000001, get_win=(nil), get_first=00000000,
get_last=ffffffff, hw_id=00000000 )
0009: get_message() = 0 { win=0x1002e, type=6, msg=00000373, wparam=404,
lparam=1, info=0, x=0, y=0, time=00a8e216, hw_id=00000000,
active_hooks=80000041, total=0, data={} }
0009:trace:winsock:WS_select read 0x34d078, write (nil), excp (nil)
timeout 0x34d17c
0009:trace:winsock:WSARecvFrom socket 0404, wsabuf 0x34bc14, nbufs 1,
flags 0, from 0x34d030, fromlen 16, ovl (nil), func (nil)
0009:trace:winsock:WSARecvFrom fd=158, options=0
0009: get_socket_event( handle=0x404, service=0, c_event=(nil) )
0009: get_socket_event() = 0 { mask=00000003, pmask=00000000, state=20000003,
errors={} }
0009:trace:winsock:WS2_recv fd 158, iovec 0x171c348, count 1 addr {
family 0, address 0.0.0.0, port 0 }, len 0x34d020, flags 0
0009:trace:winsock:WS2_recv recvmsg error 11
0009:trace:winsock:WS2_recv -> -1
0009:warn:winsock:wsaErrno errno 11, (Resource temporarily unavailable).
0009:warn:winsock:WSARecvFrom -> ERROR 10035
For some reason, emule tries a WSARecvFrom() on socket 404, which immediately
fails with EWOULDBLOCK (10035), normally an innocent error that means
"try again". It's the first and only time that emule ever gets
EWOULDBLOCK on any socket, but emule never tries again to receive from
that socket.
If emule was a UNIX app this would be an application bug. But this
behaviour clearly never happens on Windows, so it's a wine bug.
Why does it try a WSARecvFrom() on a socket that has no data?
* The call to WSARecvFrom is preceded by a call to select(), which asks
for readability (but we don't know for which sockets). So select()
could be reporting readability for sockets that aren't readable (this
is a possibility, it's a known fact that for eg. TCP sockets you
cannot use a blocking listening socket and poll for readability and then
call accept(), because readability is signalled before a successful
connection is established, so your accept() could block until the next
connection comes in. Maybe in the case of UDP sockets, readability is
signalled before the UDP packet is verified/checksummed, and then when
you try read, the packet is discarded, and if the socket is non-blocking,
there is now no data and it fails with EWOULDBLOCK. This theory is
very difficult to prove, it would require crafting a corrupt UDP
packet and seeing what happens to a select() on the socket that
receives it (any volunteers?)).
* Socket 404 is also WSAAsyncSelect()-ed just after creation to deliver
event mask 3 (FD_READ | FD_WRITE) to a window. Just before the call to
select(), the FD_READ event is delivered for socket 404, which, combined
with select(), could be causing emule to try WSARecvFrom, which fails
for the same reasons as above.
Either way, it looks like non-blocking I/O availability must only be
signalled when we are absolutely certain it can be performed.
This patch modifies select() to ensure there is data to read before it
returns readability. It could well be this is not enough, reading over
the source code for emule 0.47a I see that it didn't even use select(),
but just try to do I/O straight away when the FD_READ notification
arrived, so event notifications might need to be patched as well.
So please try this patch, and report whether emule/uTorrent work any
better.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=8369
Summary: Heroes 4 - regression
Product: Wine
Version: 0.9.37.
Platform: PC
OS/Version: Linux
Status: UNCONFIRMED
Severity: critical
Priority: P2
Component: test
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: cygnus2(a)post.cz
Heroes of Might and Magic crashes immediatelly after start. In older Wine
versions on my PC works excellent (0.9.36) without any problems (except network
game, what is known bug 4374).
When i started Heroes 4 in Wine 0.9.37 and then Wine crash i had some problems
with sound in Wine 0.9.36. But when i started and played Heroes 4 in Wine 0.9.36
before experiments with 0.9.37 all works and sound was without dropouts or noise.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=8367
------- Additional Comments From lich(a)math.spbu.ru 2007-12-05 04:27 -------
For me this bug appears every time I try to run any console app with curses
backend:
$ wineconsole --backend=curses cmd
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=5077
------- Additional Comments From marsliu2000(a)hotmail.com 2007-12-05 01:18 -------
Sorry for my last post, it was wrong. All intro films played fine in 0.9.34 just
because I didn't get any sound in Heroes V under 0.9.34. Now 0.9.37 brings the
sound back(I use oss driver.) and the films lead to crash the game again. Also,
I notice that the game crashes only at switching films. So now, under wine
0.9.37, the game can play any one of those three films. But if I only disable
one film in the xml file, the game will crash after it finishes playing one
film. Also, If I disable the sound again in 0.9.37, the game won't crash with
playing all three films.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=8038
------- Additional Comments From rnorton(a)bittorrent.com 2007-12-05 00:51 -------
The problem in uTorrent was that it was passing an item greater than the last
for the third parameter of CheckMenuRadioItem. Windows allows this but Wine does
not; Wine returns FALSE from CheckMenuRadioItem but does not set GetLastError as
well.
I've fixed this for upcoming uTorrent betas but for bug-for-bug compat wine
might want to look into this.
Ryan Norton
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.winehq.org/show_bug.cgi?id=8367
pg8p(a)virginia.edu changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |blocker
Component|wine-console |website-bugs
Priority|P2 |P1
Product|Wine |WineHQ Apps Database
Version|0.9.36. |unspecified
------- Additional Comments From pg8p(a)virginia.edu 2007-11-05 22:00 -------
The application is Starsiege Tribes.
And I execute it using the command
"wineconsole Tribes.exe -dedicated"
In older versions of wine (0.9.16 was the one I tried) it actually starts the
console application and it opens a port for a telnet connection, but does not
start the actual server itself -- the game server, that is.
Does that help at all?
By the way, this is using 0.9.37 now... although the exact same problem is in
0.9.36. I tested a few other builds just before 0.9.36, but I'm not sure
exactly what versions they were, but this error was repeated.
Let me know if this helps -- I can offer any information you need. Heck, I'll
give you access to the box I'm running this on, if that's what you need.
Let me know what's up. =)
Thanks!
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
The application is Starsiege Tribes.
And I execute it using the command
"wineconsole Tribes.exe -dedicated"
In older versions of wine (0.9.16 was the one I tried) it actually starts
the console application and it opens a port for a telnet connection, but
does not start the actual server itself -- the game server, that is.
Does that help at all?
By the way, this is using 0.9.37 now... although the exact same problem is
in 0.9.36. I tested a few other builds just before 0.9.36, but I'm not sure
exactly what versions they were, but this error was repeated.
Let me know if this helps -- I can offer any information you need. Heck,
I'll give you access to the box I'm running this on, if that's what you
need.
Let me know what's up. =)
Best,
Pavan Gupta
-----Original Message-----
From: Wine Bugs [mailto:wine-bugs@winehq.org]
Sent: Friday, May 11, 2007 10:34 PM
To: pg8p(a)virginia.edu
Subject: [Bug 8367] fixme:curses:WCCURSES_GetEvents Ooch. somebody beat us
is repeatedly displayed for wineconsole execution of "Tribex.exe -dedicated"
http://bugs.winehq.org/show_bug.cgi?id=8367
vitaliy(a)kievinfo.com changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|blocker |normal
Component|website-bugs |wine-console
Priority|P1 |P2
Product|WineHQ Apps Database |Wine
Version|unspecified |0.9.36.
------- Additional Comments From vitaliy(a)kievinfo.com 2007-11-05 21:34
-------
Not AppDB's bug.
Not blocker.
What application is this? What happens of you use 'wineconsole yourapp.exe'?
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.
http://bugs.winehq.org/show_bug.cgi?id=8363
hverbeet(a)gmail.com changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|hverbeet(a)gmail.com |
------- Additional Comments From hverbeet(a)gmail.com 2007-11-05 21:47 -------
That's not particularly useful, I read wine-bugs. (And again, "EVE Online
crashes" is not something I can do a lot with.)
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.