New submission from STINNER Victor <vstin...@python.org>:

My commit ea251806b8dffff11b30d2182af1e589caf88acf made Unicode interned 
strings per interpreter to avoid accessing the same Python object from two 
different interpreters, to avoid race conditions on its reference count.

Problem: the change introduced the bpo-46006 regression in 
_PyUnicode_EqualToASCIIId() and type update_slot() functions which make the 
assumption that if two strings are interned and their pointers are not equal: 
these strings are not equal.

I proposed PR 30123 to fix these two functions, but then questions have been 
asked about the overall goal, running multiple Python interpreters in parallel 
in the same process (bpo-40512):
https://bugs.python.org/issue46006#msg408002

bpo-46006 was blocking the Python 3.11.0a4 release, Python 3.10 was affected 
and there were more and more affected projects:

* jep: https://github.com/ninia/jep/issues/358
* mod_wsgi: https://github.com/GrahamDumpleton/mod_wsgi/issues/729
* weechat-matrix: https://github.com/poljar/weechat-matrix/issues/293
* Fedora issue about mod_wsgi and weechat-matrix: 
https://bugzilla.redhat.com/show_bug.cgi?id=2030621

So I decided to just revert the change on interned strings:

* main branch: commit 35d6540c904ef07b8602ff014e520603f84b5886
* 3.10 branch: commit 72c260cf0c71eb01eb13100b751e9d5007d00b70 (with changes to 
keep the ABI backward compatibility)

These interned strings are preventing again to run multiple interpreters in 
parallel, two subinterpreters must not access the same Python object: see 
bpo-40533.

I suggest to write a PEP to explain the rationale, and reapply my commit 
ea251806b8dffff11b30d2182af1e589caf88acf with PR 30123.

----------
components: Subinterpreters
messages: 409860
nosy: vstinner
priority: normal
severity: normal
status: open
title: [subinterpreters] Unicode interned strings must not be shared between 
interpreters
versions: Python 3.11

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue46283>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to