Ask Solem <a...@opera.com> added the comment:

> - A worker removes a job from the queue and is killed before
> sending an ACK.

Yeah, this may be a problem. I was thinking we could make sure the task is 
acked before child process shutdown. Kill -9 is then not safe, but do we really 
want to guarantee that in multiprocessing? In celery we're safe by using AMQP's 
ack trasnaction anyway. The same could be said if there's a problem with the 
queue though. Maybe using ack timeouts? We know how many worker processes are 
free already.

> A worker removes a job from the queue, sends an ACK, and then is
> killed.  Due to bad luck with the scheduler, the parent cleans the
> worker before the parent has recorded the worker pid.
Guess we need to consume from the result queue until it's empty.

> You're now reading from self._cache in one thread but writing it in
> another.

Yeah, I'm not sure if SimpleQueue is managed by a lock already. Should maybe 
use a lock if it isn't.

> What happens if a worker sends a result and then is killed?
In the middle of sending? Or, if not I don't think this matters.

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue9205>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to