• Victor Stinner's avatar
    Rewrite eintr_tester.py to avoid os.fork() · be923ac9
    Victor Stinner yazdı
    eintr_tester.py calls signal.setitimer() to send signals to the current process
    every 100 ms. The test sometimes hangs on FreeBSD. Maybe there is a race
    condition in the child process after fork(). It's unsafe to run arbitrary code
    after fork().
    
    This change replace os.fork() with a regular call to subprocess.Popen(). This
    change avoids the risk of having a child process which continue to execute
    eintr_tester.py instead of exiting. It also ensures that the child process
    doesn't inherit unexpected file descriptors by mistake.
    
    Since I'm unable to reproduce the issue on FreeBSD, I will have to watch
    FreeBSD buildbots to check if the issue is fixed or not.
    
    Remove previous attempt to debug: remove call to
    faulthandler.dump_traceback_later().
    be923ac9
eintr_tester.py 13.9 KB