Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Apr 2021 16:18:59 +0000
From:      bugzilla-noreply@freebsd.org
To:        python@FreeBSD.org
Subject:   [Bug 255445] lang/python 3.8/3.9 SIGSEV core dumps in libthr TrueNAS
Message-ID:  <bug-255445-21822-GAVeRBLna4@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-255445-21822@https.bugs.freebsd.org/bugzilla/>
References:  <bug-255445-21822@https.bugs.freebsd.org/bugzilla/>

index | next in thread | previous in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255445

--- Comment #16 from Victor Stinner <victor.stinner@gmail.com> ---
I can reproduce the issue with Python 3.8 on Linux.

Well, first, don't rely on implicit resource management: don't rely on
__del__() destructor.

You should use "with pool:" and then call pool.join().

--

I'm not sure if it's related, but daemon threads are evil and should be avoided
if possible. It's another variant of "implicit resource management" (don't join
the thread, expect it to disappear magically at exit). I fixed many race
conditions in daemon threads:

* https://vstinner.github.io/daemon-threads-python-finalization-python32.html
* https://vstinner.github.io/threading-shutdown-race-condition.html
* https://vstinner.github.io/gil-bugfixes-daemon-threads-python39.html

Python 3.9 avoids daemon threads in concurrent.futures:
https://bugs.python.org/issue39812

But multiprocessing still uses daemon threads.

--

I also fixed multiple bugs in the Python finalization to make it more reliable.
My notes on that topic:
https://pythondev.readthedocs.io/finalization.html

-- 
You are receiving this mail because:
You are the assignee for the bug.

help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-255445-21822-GAVeRBLna4>