celery / billiard

Multiprocessing Pool Extensions
Other
419 stars 252 forks source link

In PyPy 2 IOError is thrown in bootstrap #303

Closed arcivanov closed 4 years ago

arcivanov commented 4 years ago
Process unittest:
Traceback (most recent call last):
  File "/home/arcivanov/Documents/src/arcivanov/pybuilder/.pybuilder/plugins/pypy-2.7.13.final.42/site-packages/billiard/process.py", line 297, in _bootstrap
    sys.stdin.close()
IOError: [Errno 9] Bad file descriptor: '<fdopen>'

In Python 3 OSError is a super of EnvironmentError, IOError and all other environmental errors. In Python 2 in general EnvironmentError is a super of IOError, OSError and socket.error (since 2.6) However, in Python 2 OSError is a sibling of IOError and therefore IOError goes uncaught. This ensures that OS/IO errors are truly ignored across Python versions and flavors.

arcivanov commented 4 years ago

If/when merged, please cut a new hotfix release.

arcivanov commented 4 years ago

@auvipy Thanks!

auvipy commented 4 years ago

new release on pypi! thanks for your fix!