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.

Author yselivanov
Recipients asvetlov, christian.heimes, methane, njs, pitrou, vstinner, yselivanov
Date 2017-12-16.05:13:02
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1513401182.7.0.213398074469.issue32331@psf.upfronthosting.co.za>
In-reply-to
Content
Nathaniel, thanks a lot for the comprehensive analysis.

It's now obvious that this weird Linux-specific socket.type quirk is of our own making and specific only to Python.

I've updated the PR:

1. *type* argument of 'socket.socket()' is passed as is to OS functions.  It is now cleared of SOCK_NONBLOCK and SOCK_CLOEXEC on Linux.

2. socket.setblocking() no longer applies SOCK_NONBLOCK to socket.type.

That's it.  I'm now certain that this is the correct way of handling this situation.  socket.type must be fixed.

Please review the updated PR.
History
Date User Action Args
2017-12-16 05:13:02yselivanovsetrecipients: + yselivanov, pitrou, vstinner, christian.heimes, njs, asvetlov, methane
2017-12-16 05:13:02yselivanovsetmessageid: <1513401182.7.0.213398074469.issue32331@psf.upfronthosting.co.za>
2017-12-16 05:13:02yselivanovlinkissue32331 messages
2017-12-16 05:13:02yselivanovcreate