https://bugs.kde.org/show_bug.cgi?id=417906
Bug ID: 417906
Summary: Please add support for Linux 5.2 CLONE_PIDFD flag to
clone()
Product: valgrind
Version: 3.15 SVN
Platform: Other
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: general
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
SUMMARY
Linux 5.2 added CLONE_PIDFD flag to the clone() system call, which returns a
file descriptor representing the child process. Qt 5.15 will use this flag to
have a better representation of child processes, without the need to use a
SIGCHLD handler. This is also, finally, thread-safe.
Running Valgrind on an application using Qt 5.15's QProcess class produces:
==180074== Unsupported clone() flags: 0x5000
==180074==
==180074== The only supported clone() uses are:
==180074== - via a threads library (LinuxThreads or NPTL)
==180074== - via the implementation of fork or vfork
==180074==
==180074== Valgrind detected that your program requires
==180074== the following unimplemented functionality:
==180074== Valgrind does not support general clone().
==180074== This may be because the functionality is hard to implement,
==180074== or because no reasonable program would behave this way,
==180074== or because nobody has yet needed it. In any case, let us know at
==180074== www.valgrind.org and/or try to work around the problem, if you can.
==180074==
==180074== Valgrind has to exit now. Sorry. Bye!
CLONE_PIDFD is 0x1000. CLONE_VFORK is 0x4000.
Without CLONE_VFORK, execution seems to continue but produce nonsensical
results.
OBSERVED RESULT
Valgrind either terminates or produce nonsensical reports when CLONE_PIDFD is
used.
EXPECTED RESULT
CLONE_PIDFD is understood properly
SOFTWARE/OS VERSIONS
Linux 5.5.2
ADDITIONAL INFORMATION
Please also implement the P_PIDFD argument to waitid(), available since Linux
5.4. Linux 5.3 added clone3 system call, but we're not using it yet.
--
You are receiving this mail because:
You are watching all bug changes.