cpython/Python
Miss Islington (bot) 02cd3ce0f2
[3.13] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-124865) (gh-125709) (GH-125204)
* gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-124865)

Fix a crash caused by immortal interned strings being shared between
sub-interpreters that use basic single-phase init. In that case, the string
can be used by an interpreter that outlives the interpreter that created and
interned it. For interpreters that share obmalloc state, also share the
interned dict with the main interpreter.

This is an un-revert of gh-124646 that then addresses the Py_TRACE_REFS
failures identified by gh-124785.
(cherry picked from commit f2cb399470)

Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>

* [3.13] gh-125286: Share the Main Refchain With Legacy Interpreters (gh-125709)

They used to be shared, before 3.12.  Returning to sharing them resolves a failure on Py_TRACE_REFS builds.

---------

Co-authored-by: Eric Snow <ericsnowcurrently@gmail.com>
2024-11-12 13:45:12 +01:00
..
clinic [3.13] gh-113993: Allow interned strings to be mortal, and fix related issues (GH-120520) (GH-120945) 2024-06-24 20:24:19 +02:00
frozen_modules gh-97669: Create Tools/build/ directory (#97963) 2022-10-17 12:01:00 +02:00
_warnings.c [3.13] gh-119049: Fix incorrect display of warning which is constructed by C API (GH-119063) (GH-119106) 2024-05-17 18:16:58 +03:00
adaptive.md GH-98686: Get rid of "adaptive" and "quick" instructions (GH-99182) 2022-11-09 10:50:09 -08:00
asdl.c bpo-43244: Remove ast.h, asdl.h, Python-ast.h headers (GH-24933) 2021-03-23 20:47:40 +01:00
asm_trampoline.S [3.13] gh-120400 :Support Linux perf profile to see Python calls on RISC-V architecture (GH-120089) (#120413) 2024-06-14 17:03:24 +02:00
assemble.c gh-117494: extract the Instruction Sequence data structure into a separate file (#117496) 2024-04-04 15:47:26 +00:00
ast.c gh-116126: Implement PEP 696 (#116129) 2024-05-03 06:17:32 -07:00
ast_opt.c [3.13] gh-123344: Add missing ast optimizations for PEP 696 (GH-123377) (#123427) 2024-08-28 14:02:34 +00:00
ast_unparse.c [3.13] gh-125268: Use static string for "1e309" in AST (GH-125272) (GH-125280) 2024-10-24 13:59:23 -04:00
bltinmodule.c [3.13] gh-121153: Fix some errors with use of _PyLong_CompactValue() (GH-121154) (GH-121900) 2024-07-17 08:04:45 +00:00
bootstrap_hash.c gh-110014: Fix bootstrap_hash.c: remove debug code (#110161) 2023-09-30 22:21:20 +00:00
brc.c gh-110481: Fix biased reference counting queue initialization. (#117271) 2024-03-28 09:28:39 -04:00
bytecodes.c [3.13] GH-123545: Remove duplicate Py_DECREF when handling _PyOptimizer_Optimize errors (GH-123759) 2024-09-06 09:02:32 -07:00
ceval.c [3.13] gh-125703: Correctly honour tracemalloc hooks on more PyDECREF specialized paths (GH-125712) (#125791) 2024-10-28 11:50:36 +00:00
ceval_gil.c [3.13] gh-122201: Lock mutex when setting handling_thread to NULL (GH-122204) (#122319) 2024-07-26 17:30:08 +00:00
ceval_macros.h [3.13] gh-117657: Avoid race in PAUSE_ADAPTIVE_COUNTER in free-threaded build (GH-122190) (#122475) 2024-07-30 18:18:25 +00:00
codecs.c [3.13] gh-113993: Allow interned strings to be mortal, and fix related issues (GH-120520) (GH-120945) 2024-06-24 20:24:19 +02:00
compile.c [3.13] Fix possible null pointer dereference of freevars in _PyCompile_LookupArg (gh-126238) (#126475) 2024-11-06 08:10:04 +00:00
condvar.h gh-104530: Enable native Win32 condition variables by default (GH-104531) 2024-02-02 13:50:51 +00:00
config_common.h gh-76785: Add PyInterpreterConfig Helpers (gh-117170) 2024-04-02 20:35:52 +00:00
context.c [3.13] gh-121546: Disable contextvar caching on free-threading build (GH-121740) (#121808) 2024-07-15 16:53:52 -04:00
critical_section.c [3.13] gh-119344: Make critical section API public (GH-119353) (#120856) 2024-06-21 20:20:41 +00:00
crossinterp.c [3.13] Fix typos in docs, error messages and comments (#122502) (#122606) 2024-09-02 12:44:42 +02:00
crossinterp_data_lookup.h gh-76785: Improved Subinterpreters Compatibility with 3.12 (gh-115424) 2024-02-13 14:56:49 -07:00
crossinterp_exceptions.h [3.13] gh-117398: Use Per-Interpreter State for the _datetime Static Types (gh-120009) 2024-06-03 23:37:28 +00:00
dtoa.c gh-91565: Replace bugs.python.org links with Devguide/GitHub ones (GH-91568) 2024-04-01 13:02:07 +00:00
dup2.c gh-108765: Python.h no longer includes <unistd.h> (#108783) 2023-09-02 16:50:18 +02:00
dynamic_annotations.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
dynload_hpux.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_shlib.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_stub.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
dynload_win.c gh-88402: Add new sysconfig variables on Windows (GH-110049) 2023-10-04 22:50:29 +00:00
emscripten_signal.c GH-108614: Unbreak emscripten build (GH-109132) 2023-09-08 17:54:45 +01:00
emscripten_trampoline.c [3.13] gh-121698 Emscripten: Use updated WebAssembly type reflection proposal (GH-121699) (GH-121745) 2024-07-14 12:01:03 +02:00
errors.c [3.13] gh-124188: Fix PyErr_ProgramTextObject() (GH-124189) (GH-124423) 2024-10-08 00:23:49 +03:00
executor_cases.c.h [3.13] GH-123545: Remove duplicate Py_DECREF when handling _PyOptimizer_Optimize errors (GH-123759) 2024-09-06 09:02:32 -07:00
fileutils.c [3.13] gh-117657: Fix TSan reported data race on ioctl_works (GH-120175) (#120654) 2024-06-17 17:52:49 +00:00
flowgraph.c [3.13] gh-124871: fix 'visited' tracking in compiler's reachability analysis (GH-124952) (#124977) 2024-10-04 15:34:20 -07:00
formatter_unicode.c gh-92536: Remove PyUnicode_READY() calls (#105210) 2023-06-02 01:33:17 +02:00
frame.c gh-118272: set stacktop to 0 before freeing contents, to avoid access to invalid objects during GC (#118478) 2024-05-01 21:51:40 +01:00
frozen.c gh-108716: Cleanup remaining deepfreeze infrastructure (#116919) 2024-03-18 11:13:11 -07:00
frozenmain.c gh-105716: Fix _PyInterpreterState_IsRunningMain() For Embedders (gh-117140) 2024-03-21 18:20:20 -06:00
future.c [3.13] gh-126139: Improve error message location for future statement with unknown feature (GH-126140) (#126155) 2024-10-30 00:36:06 +00:00
gc.c [3.13] GH-124567: Revert the Incremental GC in 3.13 (#124770) 2024-09-30 21:27:29 +00:00
gc_free_threading.c [3.13] gh-125859: Fix crash when gc.get_objects is called during GC (GH-125882) (GH-125921) 2024-10-24 14:08:15 +00:00
gc_gil.c gh-111968: Rename freelist related struct names to Eric's suggestion (gh-115329) 2024-02-14 00:32:51 +00:00
generated_cases.c.h [3.13] gh-123091: Use _Py_IsImmortalLoose() (#123511) (#123600) 2024-09-02 15:23:29 +02:00
getargs.c [3.13] gh-118814: Fix the TypeVar constructor when name is passed by keyword (GH-122664) (GH-122806) 2024-08-08 09:49:21 +03:00
getcompiler.c closes bpo-43278: remove unnecessary leading '\n' from COMPILER when build with GCC/Clang (GH-24606) 2021-02-25 20:24:21 -08:00
getcopyright.c Update copyright years to 2024. (GH-113608) 2024-01-16 21:54:05 +01:00
getopt.c gh-110079: Remove extern "C" { ...} in C code (#110080) 2023-09-29 10:56:49 +02:00
getplatform.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
getversion.c [3.13] gh-119132: Update sys.version to identify free-threaded or not. (gh-119134) (#119153) 2024-05-18 16:49:11 -04:00
hamt.c gh-106320: Remove private PyLong C API functions (#108429) 2023-08-24 18:53:50 +02:00
hashtable.c gh-111545: Add Py_HashPointer() function (#112096) 2023-12-06 15:09:22 +01:00
import.c [3.13] gh-126171: fix possible null dereference in _imp_find_frozen_impl (GH-126566) (#126567) 2024-11-08 16:25:38 +05:30
importdl.c gh-117953: Imply Single-phase Init if the Init Function Fails (gh-118684) 2024-05-06 21:16:22 -06:00
initconfig.c [3.13] gh-123275: Support -Xgil=1 and PYTHON_GIL=1 on non-free-threaded builds (gh-123276) (gh-123753) 2024-09-06 10:09:35 +09:00
instruction_sequence.c gh-117680: Fix msvc warning in instruction_sequence.c (#118326) 2024-04-26 17:20:30 +01:00
instrumentation.c [3.13] gh-122247: Move instruction instrumentation sanity check after tracing check (GH-122251) (GH-122812) 2024-08-16 12:01:40 +02:00
interpconfig.c gh-76785: Fix a Refleak in _interpreters.new_config() (gh-117491) 2024-04-03 01:10:26 +00:00
intrinsics.c gh-74929: Implement PEP 667 (GH-115153) 2024-05-04 12:12:10 +01:00
jit.c [3.13] GH-118844: Fix build failures when combining --disable-gil with --enable-experimental-jit (GH-118959) 2024-05-13 04:53:30 +00:00
legacy_tracing.c [3.13] gh-122029: Log call events in sys.setprofile when it's a method with c function (GH-122072) (GH-122205) 2024-07-23 22:49:36 +00:00
lock.c [3.13] gh-121368: Fix seq lock memory ordering in _PyType_Lookup (GH-121388) (#121505) 2024-07-08 19:15:58 +00:00
marshal.c [3.13] gh-121905: Consistently use "floating-point" instead of "floating point" (GH-121907) (GH-122012) 2024-07-19 09:13:08 +00:00
modsupport.c gh-84489: Properly handle trailing spaces in Py_BuildValue() format strings (GH-21158) 2023-10-11 14:44:06 +03:00
mysnprintf.c Add a warning message about PyOS_snprintf (#95993) 2022-10-07 11:49:53 -07:00
mystrtoul.c gh-108765: Python.h no longer includes <ctype.h> (#108831) 2023-09-03 18:54:27 +02:00
object_stack.c gh-111968: Split _Py_dictkeys_freelist out of _Py_dict_freelist (gh-115505) 2024-02-16 01:01:36 +00:00
opcode_targets.h GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322) 2024-05-04 12:11:11 +01:00
optimizer.c [3.13] gh-120642: Move private PyCode APIs to the internal C API (#120643) (#121043) 2024-06-26 15:35:19 +02:00
optimizer_analysis.c [3.13] gh-120642: Move private PyCode APIs to the internal C API (#120643) (#121043) 2024-06-26 15:35:19 +02:00
optimizer_bytecodes.c [3.13] gh-119258: Backport optimizer frame fixes in GH-119365 (GH-120699) 2024-06-20 23:55:20 +08:00
optimizer_cases.c.h [3.13] gh-119258: Backport optimizer frame fixes in GH-119365 (GH-120699) 2024-06-20 23:55:20 +08:00
optimizer_symbols.c [3.13] gh-120642: Move private PyCode APIs to the internal C API (#120643) (#121043) 2024-06-26 15:35:19 +02:00
parking_lot.c [3.13] gh-112804: Clamping timeout value for _PySemaphore_PlatformWait (gh-124914) (gh-124991) 2024-10-07 16:53:32 +00:00
pathconfig.c gh-117987: Restore several functions removed in Python 3.13 alpha 1 (GH-117993) 2024-04-18 15:20:38 +02:00
perf_jit_trampoline.c [3.13] GH-118844: Fix build failures when combining --disable-gil with --enable-experimental-jit (GH-118959) 2024-05-13 04:53:30 +00:00
perf_trampoline.c gh-118518: Allow perf to work without frame pointers (#112254) 2024-05-05 03:07:29 +02:00
preconfig.c gh-106320: Remove private pylifecycle.h functions (#106400) 2023-07-04 09:41:43 +00:00
pyarena.c bpo-43244: Remove the pyarena.h header (GH-25007) 2021-03-24 02:23:01 +01:00
pyctype.c Include files missed in r72044. 2009-04-27 20:54:42 +00:00
pyfpe.c bpo-46315: Add ifdef HAVE_ feature checks for WASI compatibility (GH-30507) 2022-01-13 09:46:04 +01:00
pyhash.c [3.13] gh-111389: Add PyHASH_MULTIPLIER constant (GH-119214) (#119334) 2024-06-04 09:26:25 +02:00
pylifecycle.c [3.13] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-124865) (gh-125709) (GH-125204) 2024-11-12 13:45:12 +01:00
pymath.c bpo-45440: Remove pymath.c fallbacks (GH-28977) 2021-10-15 19:45:34 +02:00
pystate.c [3.13] gh-116510: Fix a Crash Due to Shared Immortal Interned Strings (gh-124865) (gh-125709) (GH-125204) 2024-11-12 13:45:12 +01:00
pystrcmp.c gh-108767: Replace ctype.h functions with pyctype.h functions (#108772) 2023-09-01 18:36:53 +02:00
pystrhex.c gh-108765: pystrhex: Replace stdlib.h abs() with Py_ABS() (#108830) 2023-09-02 23:15:54 +02:00
pystrtod.c gh-108765: Cleanup #include in Python/*.c files (#108977) 2023-09-06 15:56:08 +02:00
Python-ast.c [3.13] gh-126105: Fix crash in ast module, when ._fields is deleted (GH-126115) (#126130) 2024-10-29 16:07:32 +00:00
Python-tokenize.c [3.13] gh-120317: Lock around global state in the tokenize module (GH-120318) (#121841) 2024-07-16 10:03:47 +00:00
pythonrun.c [3.13] gh-125842: Fix sys.exit(0xffff_ffff) on Windows (GH-125896) (GH-125925) 2024-10-24 16:27:30 +00:00
pytime.c gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
qsbr.c [3.13] Fix typos in comments (GH-120481) (#120774) 2024-06-20 03:40:54 +00:00
README Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
specialize.c [3.13] GH-121583: Remove dependency from pystats.h to internal header file (GH-121880) 2024-07-16 23:03:07 +00:00
stdlib_module_names.h [3.13] gh-123892: Add "_wmi" to sys.stdlib_module_names (GH-123893) (#123896) 2024-09-29 18:24:55 -07:00
structmember.c [3.13] gh-117657: Fix __slots__ thread safety in free-threaded build (GH-119368) (#120655) 2024-06-17 19:12:25 +00:00
suggestions.c gh-113845: Fix a compiler warning in Python/suggestions.c (GH-113949) 2024-01-11 20:31:24 +02:00
symtable.c [3.13] gh-119933: Improve `SyntaxError` message for invalid type parameters expressions (GH-119976) (#120641) 2024-06-17 08:01:49 -07:00
sysmodule.c [3.13] gh-126018: Avoid aborting due to unnecessary assert in sys.audit (GH-126020) (#126042) 2024-10-27 15:07:33 +00:00
thread.c gh-110850: Cleanup PyTime API: PyTime_t are nanoseconds (#115753) 2024-02-21 11:46:00 +01:00
thread_nt.h gh-110850: Use _PyDeadline_Get() in EnterNonRecursiveMutex() (#118556) 2024-05-04 09:39:58 +02:00
thread_pthread.h gh-110850: Remove _PyTime_TimeUnchecked() function (#118552) 2024-05-05 12:15:19 +02:00
thread_pthread_stubs.h GH-110829: Ensure Thread.join() joins the OS thread (#110848) 2023-11-04 13:59:24 +00:00
tier2_engine.md Docs: fix spelling of the word 'transferring' (#116641) 2024-03-13 23:53:32 +01:00
traceback.c gh-117764: Fix and add signatures for many builtins (GH-117769) 2024-04-12 13:56:41 +03:00
tracemalloc.c [3.13] gh-121390: tracemalloc: Fix tracebacks memory leak (GH-121391) (#121392) 2024-07-21 13:12:13 +00:00
vm-state.md High level docs for the VM state (#111621) 2023-11-01 22:55:10 +00:00

Miscellaneous source files for the main Python shared library