Adrien <delgan...@gmail.com> added the comment:

Thanks for your attention to this issue.

I am not surprised that you was not able to reproduce it as it seems deeply 
related to multiprocessing and threads. 

I tested it on 3 others completely different computers, and I was able to 
reproduce the error for 2 of them which were running Ubuntu 16.04 and  Windows 
10. I made a totally fresh install of Python 3.6.4, the Windows machine never 
had Python installed before. 
The only common point between computers where the error occurs compared to the 
third one, whether running Windows or Linux, is that they have a fairly old or 
weak hardware, and therefore are slower.

Fortunately, the error was systematic on my machine. So I was able to study the 
trace.py code to try to isolate the problem. Piece by piece, I simplified 
trace.py to get a small snippet that reproduces the bug (I joined the file to 
this message).
Sometimes, there is also a "BrokenPipeError" which pop-out. I do not know if 
this is related.

The error seems to come from the fact that "counts" start to be iterated while 
compiled code execution is not fully terminated, and so "localtrace_count" may 
add another item to the dict. Move the "time.sleep()" before the loop and the 
error should gone. This is most likely related to the internal thread used by 
Queue as using a SimpleQueue doesn't raise an exception.

As I do not have access for now to a computer where the error does not occur, I 
can not continue my investigations. However I hope that I give a little more 
information so that you maybe succeed to reproduce it.

----------
Added file: https://bugs.python.org/file47493/minitrace.py

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

Reply via email to