Марк Коренберг added the comment:
Solution:
https://github.com/bminor/glibc/blob/master/sysdeps/unix/sysv/linux/spawni.c#L309
In short - do not use vfork(). Use clone(CLONE_VM | CLONE_VFORK). and do
something with stack.
--
___
Python tracker
Марк Коренберг added the comment:
https://github.com/python/cpython/blob/4a08c4c469d36f99d3a5e0f17ad82ab35dcf2835/Modules/_posixsubprocess.c#L717
child_exec(exec_array, argv, envp, cwd,
p2cread, p2cwrite, c2pread, c2pwrite,
errread, errwrite, errpipe_read, errp
Марк Коренберг added the comment:
Rewriting in a way that guarantee no stack (and heap) usage. Because stack is
shared between child and parent. It seems there is no crossplatform way.
Happily we can use some code like I wrote by link in the first message. OR,
stick to posix_nspawn which is c
New submission from Марк Коренберг :
Using vfork in #35823 is VERY tricky. Please comment out vfork() usage for now.
Yes, we can (should) use vfork(), but we have to rewrite the child code.
https://bugzilla.kernel.org/show_bug.cgi?id=215813
I would say it's URGENT.
--
components: Exte