Problem with copy.deepcopy and multiprocessing.Queue

James DeVincentis admin at hexhost.net
Thu Oct 15 19:39:45 EDT 2015


I take that back. It’s not entirely fixed. 

Something else strange is going on here. More debugging needed. 



> On Oct 15, 2015, at 6:36 PM, James DeVincentis <admin at hexhost.net> wrote:
> 
> I think I tracked this down and resolved it.
> 
> It appears taking an object from a multiprocess.Queue and placing it into a queue.Queue is a no-no even if the queue.Queue isn’t shared across processes. 
> 
> I have a series of workers (multiprocessing) that share a multiprocess.Queue across all processes. Each worker has it’s own local queue (Queue.queue) that is shared within only it’s own threads. It appears that when taking an object from a multiprocessing queue and moving it into a Queue.queue it breaks things. I don’t know what or how, but it does. As soon as I switched the local queue to a multiprocess.Queue it fixed the issue. 
> 
> Kind of odd to me. Not sure if anyone wants to look into it.
> 
>> On Oct 15, 2015, at 5:42 PM, Ian Kelly <ian.g.kelly at gmail.com> wrote:
>> 
>> On Thu, Oct 15, 2015 at 4:02 PM, James DeVincentis <admin at hexhost.net> wrote:
>>> 
>>> Anyone have any ideas? I feel like this could be a bug with the garbage collector across multiprocessing.
>> 
>> I'll second MRAB's response from yesterday: could it just be reusing space that it has recently freed?
>> 
>> As a debugging measure, what happens if you try to keep the objects in memory, e.g. by adding them to some long-lived list? Do you start seeing different addresses?
> 
> -- 
> https://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list