[issue41761] multiprocessing.Queue prevents program exit when containing a reasonable amount of data
Change by Dominik Schmid : -- nosy: +davin, pitrou ___ Python tracker <https://bugs.python.org/issue41761> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue41761] multiprocessing.Queue prevents program exit when containing a reasonable amount of data
New submission from Dominik Schmid : Reproduction steps: run the attached queue_busted.py expected result: "done." is printed and the program terminates. actual result: "done." is printed and the program does not terminate. Documentation link for your convenience: https://docs.python.org/3.7/library/multiprocessing.html#multiprocessing.Queue.close The lowest to trigger the bug seems to be 1639 42's in the queue. If I put numpy.array([42]) into the queue instead of 42, I need much fewer items to trigger the bug. When q.close() is called explicitly, it always terminates but sometimes prints a BrokenPipeError. Reproduced on windows (Python 3.7.2) and Debian (Python 2.7.16). -- components: Library (Lib) files: queue_busted.py messages: 376716 nosy: Dominik Schmid priority: normal severity: normal status: open title: multiprocessing.Queue prevents program exit when containing a reasonable amount of data type: behavior versions: Python 3.7 Added file: https://bugs.python.org/file49451/queue_busted.py ___ Python tracker <https://bugs.python.org/issue41761> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue25794] __setattr__ does not always overload operators
New submission from Dominik Schmid: While implementing my own Integer class that keeps track of when operations are applied I noticed that setattr had a strange behaviour when I tried to wrap operator functions. When the attribute string had a different id to its literal it failed to overload the operator. Are we doing a 'is' rather than a '==' somewhere in setattr? expected result: 139723705431168a.__add__(b)= (5)a+b= (5) 139723705431168a.__add__(b)= (5)a+b= (5) 139723704361584a.__add__(b)= (5)a+b= (5) actual result: 139723705431168a.__add__(b)= (5)a+b= (5) 139723705431168a.__add__(b)= (5)a+b= (5) 139723704361584a.__add__(b)= (5)a+b= Traceback (most recent call last): File "/home/dom/Documents/leastOps/bug.py", line 41, in testSetattr(funcName3) File "/home/dom/Documents/leastOps/bug.py", line 28, in testSetattr print ' a+b=', a+b TypeError: unsupported operand type(s) for +: 'Integer' and 'Integer' version: 2.7.10 (default, Oct 14 2015, 16:09:02) [GCC 5.2.1 20151010] ubuntu 14.10 -- components: Interpreter Core files: bug.py messages: 255853 nosy: Dominik Schmid priority: normal severity: normal status: open title: __setattr__ does not always overload operators type: behavior versions: Python 2.7 Added file: http://bugs.python.org/file41234/bug.py ___ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue25794> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com