This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Delgan
Recipients Delgan
Date 2020-04-26.16:58:21
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <>

I have a very basic program:
- one multiprocessing SimpleQueue
- one consumer thread
- one loop:
  - add one item to the queue
  - create a new process with itself add one item to the queue
  - wait for the process to end

For some unknown reason, it will hangs after some time. 

I know the docs said:

> This means that if you try joining that process you may get a deadlock unless you are sure that all items which have been put on the queue have been consumed. Similarly, if the child process is non-daemonic then the parent process may hang on exit when it tries to join all its non-daemonic children.

That's why I added "time.sleep(1)" inside the process, to make sure all items added by the child process are consumed. You can remove it and the hang will happen faster.

I'm using Python 3.8.2 on Linux. Forcing program to terminate with Ctrl+C (twice):

^CTraceback (most recent call last):
  File "", line 23, in <module>
  File "/usr/lib/python3.8/multiprocessing/", line 149, in join
    res = self._popen.wait(timeout)
  File "/usr/lib/python3.8/multiprocessing/", line 47, in wait
    return self.poll(os.WNOHANG if timeout == 0.0 else 0)
  File "/usr/lib/python3.8/multiprocessing/", line 27, in poll
    pid, sts = os.waitpid(, flag)
^CError in atexit._run_exitfuncs:
Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/", line 27, in poll
    pid, sts = os.waitpid(, flag)
Date User Action Args
2020-04-26 16:58:22Delgansetrecipients: + Delgan
2020-04-26 16:58:22Delgansetmessageid: <>
2020-04-26 16:58:22Delganlinkissue40399 messages
2020-04-26 16:58:21Delgancreate