This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Cygwin: asyncio and asyncore test suites hang indefinitely due to bug in Cygwin
Type: crash Stage: resolved
Components: Versions:
process
Status: closed Resolution: wont fix
Dependencies: Superseder: Cygwin is unsupported - close all open issues and list them here.
View: 45537
Assigned To: Nosy List: erik.bray, iritkatriel
Priority: normal Keywords: patch

Created on 2017-10-27 13:08 by erik.bray, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Pull Requests
URL Status Linked Edit
PR 4149 closed erik.bray, 2017-10-27 13:12
Messages (5)
msg305118 - (view) Author: Erik Bray (erik.bray) * (Python triager) Date: 2017-10-27 13:08
Some of the tests for asyncio and asyncore block forever on Cygwin, due to a known (and seemingly difficult to fix) bug [1] in Cygwin involving SO_PEERCRED on UNIX sockets.

SO_PEERCRED is a socket option that can be used to exchange file ownership info of the socket at the time the connection was established (specifically on UNIX sockets).  This feature is technically supported on Cygwin, but the effect of the bug is that if two sockets are opened on the same process (even without using socketpair()), the credential exchange protocol can cause connect() on the "client" socket to block unless the "server" socket is already listen()-ing.

This situation is not all that common in practice (it is not a problem if the "client" and "server" are separate processes).  But it does show up in the test suite in a number of places, since both sockets belong to the same process.

I have a patch to work around this and will post a PR shortly.

[1] https://cygwin.com/ml/cygwin/2017-01/msg00054.html
msg321947 - (view) Author: Erik Bray (erik.bray) * (Python triager) Date: 2018-07-19 10:33
I originally opened this in https://bugs.python.org/issue29253 but then made a dupe of my own bug!  Anyways, there's a (nearly year old) pull request for it now.
msg404298 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-10-19 13:36
See discussion on issue31885.
msg404303 - (view) Author: Erik Bray (erik.bray) * (Python triager) Date: 2021-10-19 13:49
To my knowledge this issue is *not* fixed upstream.  However, my PR no doubt needs rebasing.
msg404305 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-10-19 13:52
Sorry I thought this was the same issue. 

Note that asyncore is deprecated now.
History
Date User Action Args
2022-04-11 14:58:53adminsetgithub: 76063
2021-10-21 09:57:35iritkatrielsetresolution: duplicate -> wont fix
2021-10-20 12:06:19iritkatrielsetstatus: open -> closed
resolution: duplicate
superseder: Cygwin is unsupported - close all open issues and list them here.
2021-10-19 13:52:59iritkatrielsetstatus: closed -> open
resolution: out of date -> (no value)
messages: + msg404305
2021-10-19 13:49:49erik.braysetmessages: + msg404303
2021-10-19 13:36:24iritkatrielsetstatus: open -> closed

nosy: + iritkatriel
messages: + msg404298

resolution: out of date
stage: patch review -> resolved
2018-07-19 10:57:47martin.panterlinkissue29253 superseder
2018-07-19 10:33:29erik.braysetmessages: + msg321947
2017-10-27 13:12:33erik.braysetkeywords: + patch
stage: patch review
pull_requests: + pull_request4115
2017-10-27 13:08:09erik.braycreate