On Sat, Apr 3, 2021 at 7:49 PM Terry Reedy <tjreedy@udel.edu> wrote:
On 4/3/2021 7:15 PM, Miro Hrončok wrote:
> On 03. 04. 21 21:44, Łukasz Langa wrote:
>> The memory layout of PyThreadState was unintentionally changed in the
>> recent 3.9.3 bugfix release. This leads to crashes on 32-bit systems
>> when importing binary extensions compiled for Python 3.9.0 - 3.9.2.
>> This is a regression.
>>
>> We will be releasing a hotfix 3.9.4 around 24 hours from now to
>> address this issue and restore ABI compatibility with C extensions
>> built for Python 3.9.0 - 3.9.2.
>
> Thanks for the hotifx.
>
> However, I need to ask: Would this also happen if there was a rc version
> of 3.9.3?

Unless the mistake was just introduced, the mistake would have happened.
  One this severe would likely have been caught within the week or two
before a final.  But as Łukasz noted when announcing the change, .rcs
are generally ignored.  (I suspect that most everyone assumes that
someone else will test them.  And begging people to not do that does not
work well enough to justify the release.) 3.8.5 (2020 July 20 was hotfix
for 3.8.4 (2020 July 14, which did have a candidate, which did not get
tested the way that 3.8.4 itself was.

--
Terry Jan Reedy

For 3.9.4 I suggest a strict revert of the offending change. I created such a PR and attached it to the bpo-43710 issue. It is a holiday weekend for a large swath of the world. The recursion based crasher issue the original change was fixing can be saved for a future release and not made under time pressure.

I filed https://bugs.python.org/issue43725 to track one suggested way to help automate prevention of these from landing in a release branch and slipping through the cracks in a release. (discuss that on the issue, not here)

-Greg