You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
kernel 2.6.11 was deprecated a long time ago. For reference, there were the last OS using it:
Debian 3 - 2005-2008
RHEL 4 - 2005-2011
detectLinuxBrokenPipeBehavior() instantiates a pipe during import (twisted.internet.process) and calls select() to detect whether it is writeable.
This hack was meant to detect broken pipe behavior on linux < 2.6.11. select() is itself broken (including on recent kernels), crashing the python interpreter when there are more than 1024 opened file descriptors for the process.
This effectively causes applications attempting to (lazily) import twisted to crash -if 1024 file/socket are opened-.
Given the comments, it was known that this workaround was broken at the time it was made. Had to pick the lesser evil between the two kernel issues, broken pipe or broken select(). This should be removed since pipes were fixed, but select was not.
kernel 2.6.11 was deprecated a long time ago. For reference, there were the last OS using it:
detectLinuxBrokenPipeBehavior() instantiates a pipe during import (twisted.internet.process) and calls select() to detect whether it is writeable.
This hack was meant to detect broken pipe behavior on linux < 2.6.11. select() is itself broken (including on recent kernels), crashing the python interpreter when there are more than 1024 opened file descriptors for the process.
This effectively causes applications attempting to (lazily) import twisted to crash -if 1024 file/socket are opened-.
Given the comments, it was known that this workaround was broken at the time it was made. Had to pick the lesser evil between the two kernel issues, broken pipe or broken select(). This should be removed since pipes were fixed, but select was not.
Searchable metadata
The text was updated successfully, but these errors were encountered: