New GitHub issue #96061 from FourthC:<br>

<hr>

<pre>
# Bug report

When I use multiprocessing.Pool and let processes=1 to execute the task, if I manually kill the child process in the background, the task will not be executed, and the new child process seems to be waiting indefinitely and cannot be terminated.
Here is the example I tested:
```python
import logging
import multiprocessing
import time
from multiprocessing import Pool

multiprocessing.log_to_stderr().setLevel(logging.DEBUG)

def print_some(i):
    print ("Current process name is %s" % multiprocessing.current_process())
    print "--------------"+str(i)+"--------------"
    return "return "+str(i)


def callback_func(n):
    print n


if __name__ == "__main__":

    p = Pool(1)
    i = 0
    print p._pool[0].pid
    while i < 6:
        p.apply_async(print_some, (i, ), callback=callback_func)
        time.sleep(3)
        i = i+1
    print "end"
    print p._pool[0].pid
    p.terminate()
    print "close"
```
and the output is:
```text
[DEBUG/MainProcess] created semlock with handle 6
[DEBUG/MainProcess] created semlock with handle 7
[DEBUG/MainProcess] created semlock with handle 10
[DEBUG/MainProcess] created semlock with handle 11
[DEBUG/MainProcess] added worker
[INFO/PoolWorker-1] child process calling self.run()
27136
Current process name is <Process(PoolWorker-1, started daemon)>
--------------0--------------
return 0
Current process name is <Process(PoolWorker-1, started daemon)>
--------------1--------------
return 1
Current process name is <Process(PoolWorker-1, started daemon)>
--------------2--------------
return 2
Current process name is <Process(PoolWorker-1, started daemon)>
--------------3--------------
return 3
Current process name is <Process(PoolWorker-1, started daemon)>
--------------4--------------
return 4
[DEBUG/MainProcess] cleaning up worker 0
[DEBUG/MainProcess] added worker
[INFO/PoolWorker-2] child process calling self.run()
[DEBUG/MainProcess] terminating pool
[DEBUG/MainProcess] finalizing pool
[DEBUG/MainProcess] helping task handler/workers to finish
[DEBUG/MainProcess] removing tasks from inqueue until task handler finished
end
27141
close
[DEBUG/MainProcess] worker handler exiting
[DEBUG/MainProcess] task handler got sentinel
[DEBUG/MainProcess] task handler sending sentinel to result handler
[DEBUG/MainProcess] task handler sending sentinel to workers
[DEBUG/MainProcess] task handler exiting
[DEBUG/MainProcess] result handler got sentinel
``` 
>From the output, when I kill the child process, multiprocessing.Pool does start a new process, but the task cannot continue, and terminate() seems to be stuck somewhere, because my main process is not over, been waiting.
During the running process of the service, the process of crashing is unpredictable, so I did such a test: when using multi-process, what effect will the child process crash have on the program. Finally found such a problem.
# Your environment

<!-- Include as many relevant details as possible about the environment you experienced the bug in -->

- Python version is :2.7.16
- Operating system and architecture: MacOS10.15.7 or ubuntu16.0.4


</pre>

<hr>

<a href="https://github.com/python/cpython/issues/96061">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>