Message 126502 - Python tracker (original) (raw)
With the example script attached I see the exception every time. On Ubuntu 10.10 with Python 2.6
Since the offending line in multiprocesing/queues.py (233) is a debug statement, just commenting it out seems to stop this exception.
Looking at the util file shows the logging functions to be all of the form:
if _logger:
_logger.log(...
Could it be possible that after the check the _logger global (or the debug function) is destroyed by the exit handler? Can we convince them to stick around until such a time that they cannot be called?
Adding a small delay before joining also seems to work, but is ugly. Why should another Process have to have a minimum amount of work to not throw an exception?