On 5/3/2021 8:57 AM, Maximilian.Blenk--- via Cygwin wrote:
Hello everyone,

I noticed that latest Cygwin release (3.2.0-1) has an issue with python and 
unix domain sockets, although I’m not a 100% sure about the root cause. My best 
guess is that something is wrong with the unix domain dockets implementation. I 
would like to attach the cygcheck.out but it seems to exceed the 180kb limit 
mentioned on the website (even zipped)

Simple Reproducer:
I tried to get the example shown at https://pymotw.com/3/socket/uds.html 
working. It works if I execute it with python3.5 (both client and server), but 
it doesn’t if I use python3.6 or newer (actually tested 3.6 and 3.7 on Windows 
10):

Correct Behavior:
Server:
$ python3.5 server.py
starting up on ./uds_socket
waiting for a connection
connection from
received b'This is the mess'
sending data back to the client
received b'age.  It will be'
sending data back to the client
received b' repeated.'
sending data back to the client
received b''
no data from
waiting for a connection
…

Client:
$ python3.5 client.py
connecting to ./uds_socket
sending b'This is the message.  It will be repeated.'
received b'This is the mess'
received b'age.  It will be'
received b' repeated.'
closing socket

Incorrect Behavior:
Server:
$ python3.7 server.py
starting up on ./uds_socket
waiting for a connection
Traceback (most recent call last):
   File "server.py", line 27, in <module>
     connection, client_address = sock.accept()
   File "/usr/lib/python3.7/socket.py", line 214, in accept
     sock = socket(self.family, self.type, self.proto, fileno=fd)
   File "/usr/lib/python3.7/socket.py", line 151, in __init__
     _socket.socket.__init__(self, family, type, proto, fileno)
SystemError: <slot wrapper '__init__' of '_socket.socket' objects> returned 
NULL without setting an error

Client:
$ python3.7 client.py
connecting to ./uds_socket
sending b'This is the message.  It will be repeated.'
closing socket
Traceback (most recent call last):
   File "client.py", line 27, in <module>
     data = sock.recv(16)
ConnectionResetError: [Errno 104] Connection reset by peer

I wonder if this has the same cause as the problem reported here:

  https://cygwin.com/pipermail/cygwin/2021-February/247884.html

Mark, can you check that?

Ken

--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to