celery / billiard

Multiprocessing Pool Extensions
Other
419 stars 252 forks source link

Problem: 'Process' object has no attribute 'daemonic' #216

Closed steve-gregory closed 7 years ago

steve-gregory commented 7 years ago

Solution: add _daemonic and _tempdir to billiard's Process, to avoid falling back into Python 2.7's multiprocessing.Process

Background:

Celery tasks that execute ansible were failing with: https://github.com/celery/celery/issues/3634

after testing the latest revision of billiard, the next failure that showed up in python 2.7 was:

  File "/usr/lib/python2.7/multiprocessing/process.py", line 99, in__init__
      self._daemonic = _current_process._daemonic
  AttributeError: 'Process' object has no attribute '_daemonic'

After including this commit, I was able to run Ansible + prefork using celery==4.0.2, ansible==2.1.0.0 (Possible solution to https://github.com/celery/billiard/issues/203 ?)

ikalnytskyi commented 7 years ago

Basically a duplicate of https://github.com/celery/billiard/pull/202.

steve-gregory commented 7 years ago

Can we get one of these two PRs merged for inclusion in the next version of celery? Pinging @ask

auvipy commented 7 years ago

4f9a9b56ade9c232f83f29ca03a22f9ccf275a1d