This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients vstinner
Date 2020-11-13.17:51:35
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1605289896.09.0.326897860295.issue42350@roundup.psfhosted.org>
In-reply-to
Content
The following code logs an error:
---
Exception ignored in: <function _after_fork at 0x7f2bf3b057e0>
Traceback (most recent call last):
  File "/home/vstinner/python/master/Lib/threading.py", line 1508, in _after_fork
    thread._reset_internal_locks(True)
  File "/home/vstinner/python/master/Lib/threading.py", line 847, in _reset_internal_locks
    self._tstate_lock._at_fork_reinit()
AttributeError: 'NoneType' object has no attribute '_at_fork_reinit'
---

Code:
---
#!/usr/bin/python3
import atexit
import subprocess


def preexec():
    pass


def exit_handler():
    proc = subprocess.Popen(
        ["pwd"],
        preexec_fn=preexec,
    )
    proc.communicate()


if __name__ == "__main__":
    atexit.register(exit_handler)
---


It is a regression caused by the following bpo-40089 fix:

commit 87255be6964979b5abdc4b9dcf81cdcfdad6e753
Author: Victor Stinner <vstinner@python.org>
Date:   Tue Apr 7 23:11:49 2020 +0200

    bpo-40089: Add _at_fork_reinit() method to locks (GH-19195)
History
Date User Action Args
2020-11-13 17:51:36vstinnersetrecipients: + vstinner
2020-11-13 17:51:36vstinnersetmessageid: <1605289896.09.0.326897860295.issue42350@roundup.psfhosted.org>
2020-11-13 17:51:36vstinnerlinkissue42350 messages
2020-11-13 17:51:35vstinnercreate