New submission from Erik Bray <erik.m.b...@gmail.com>:

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

----------
messages: 305118
nosy: erik.bray
priority: normal
severity: normal
status: open
title: Cygwin: asyncio and asyncore test suites hang indefinitely due to bug in 
Cygwin
type: crash

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue31882>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to