[issue13569] multiprocessing module: Process.start() fails with EOFError: pickle.PicklingError: Can't pickle <type 'thread.lock'>: it's not found as thread.lock

Nikita Pchelin report at bugs.python.org
Sat Dec 10 00:20:20 CET 2011


Nikita Pchelin <nikita.pchelin at gmail.com> added the comment:

Hi Antoine,

* If I don't pass a logger and do print statements instead, works like a 
charm.

* If I getLogger() in the child instead, example fails with the same trace.

However, according to this ( http://docs.python.org/library/logging.html 
): "The logging module is intended to be thread-safe without any special 
work needing to be done by its clients. It achieves this though using 
threading locks; there is one lock to serialize access to the module’s 
shared data, and each handler also creates a lock to serialize access to 
its underlying I/O."

Which is why I assumed I could use logging safely.

Thanks,
Nikita

On 11-12-09 04:30 PM, Antoine Pitrou wrote:
> Antoine Pitrou<pitrou at free.fr>  added the comment:
>
> I don't think it's the queue. Try removing the logger instead (or creating it in the child).
>
> ----------
>
> _______________________________________
> Python tracker<report at bugs.python.org>
> <http://bugs.python.org/issue13569>
> _______________________________________

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue13569>
_______________________________________


More information about the Python-bugs-list mailing list