[Bug 52332] New: Incoming data on socket only satisfies the first async I/O request in the queue

WineHQ Bugzilla wine-bugs at winehq.org
Mon Jan 3 13:46:21 CST 2022


https://bugs.winehq.org/show_bug.cgi?id=52332

            Bug ID: 52332
           Summary: Incoming data on socket only satisfies the first async
                    I/O request in the queue
           Product: Wine
           Version: 7.0-rc3
          Hardware: x86-64
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wineserver
          Assignee: wine-bugs at winehq.org
          Reporter: jinoh.kang.kr at gmail.com
                CC: z.figura12 at gmail.com
      Distribution: ---

async_set_result() calls async_reselect() *before* de-queueing the async
request, which means that async_waiting() will return 0 since it *still* sees a
pending I/O request in the queue.

The problem manifests when the target file object is a socket. Sockets use
async_waiting() to determine whether the next poll event mask shall include the
POLLIN flag.  Since async_waiting() returns zero, sock_reselect() skips the
flag. This hangs any subsequent I/O read requests.

Known impacted applications include KakaoTalk (an instant messaging
application): this bug causes the log-in to timeout, preventing normal use of
the app.

I have the fix, but I am yet to bisect the regression commit.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list