We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
It seems that the below code will serialize the pointer to the lock handle over to the child process, and then rebuild the raw pointer in https://github.com/python/cpython/blob/main/Modules/_multiprocessing/clinic/semaphore.c.h#L331
this then segfaults the child process - which seems to cause new children to spin up.
import multiprocessing import os def _init(l): print(os.getpid()) print(l) def main(): ctx = multiprocessing.get_context(method="spawn") lock = multiprocessing.Lock() with ctx.Pool(1, initializer=_init, initargs=(lock,)) as pool: ret = pool.map(print, [1]) if __name__ == "__main__": main()
3.10, 3.11
Linux
No response
Crash report
What happened?
It seems that the below code will serialize the pointer to the lock handle over to the child process, and then rebuild the raw pointer in https://github.com/python/cpython/blob/main/Modules/_multiprocessing/clinic/semaphore.c.h#L331
this then segfaults the child process - which seems to cause new children to spin up.
CPython versions tested on:
3.10, 3.11
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
No response