GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — multiprocessing child segfault when passing lock as an argument · Issue #119413 · python/cpython Closed as not planned Closed as not planned Copy link Labels pendingThe issue will be closed if no feedback is providedThe issue will be closed if no feedback is providedtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump DescriptionCrash reportWhat 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. 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() CPython versions tested on:3.10, 3.11 Operating systems tested on:Linux Output from running 'python -VV' on the command line:No response Activity
MetadataMetadataAssigneesLabelspendingThe issue will be closed if no feedback is providedThe issue will be closed if no feedback is providedtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump ProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |