-
-
Notifications
You must be signed in to change notification settings - Fork 32.4k
Closed
Labels
buildThe build process and cross-buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Older versions of ASAN don't properly support vfork()
. Python uses vfork()
when available in _posixsubprocess.c
. This can lead to false positive reports from ASAN. I believe this issue exists with GCC 9 (and older), but not GCC 10 (and newer). The CPython GitHub actions ASAN runner currently uses GCC 9.4.0, so it does not properly handle vfork().
I've seen these false positives in my nogil-3.12 fork. I'm unsure if you've run into them upstream.
cpython/Modules/_posixsubprocess.c
Lines 43 to 49 in 5041c2b
#if defined(__linux__) && defined(HAVE_VFORK) && defined(HAVE_SIGNAL_H) && \ | |
defined(HAVE_PTHREAD_SIGMASK) && !defined(HAVE_BROKEN_PTHREAD_SIGMASK) | |
/* If this is ever expanded to non-Linux platforms, verify what calls are | |
* allowed after vfork(). Ex: setsid() may be disallowed on macOS? */ | |
# include <signal.h> | |
# define VFORK_USABLE 1 | |
#endif |
Linked PRs
gpshead
Metadata
Metadata
Assignees
Labels
buildThe build process and cross-buildThe build process and cross-buildtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error