]>
git.ipfire.org Git - thirdparty/Python/cpython.git/log
Miss Islington (bot) [Tue, 24 Feb 2026 01:18:32 +0000 (02:18 +0100)]
[3.14] `_struct.c`: Fix UB from integer overflow in `prepare_s` (GH-145158) (#145162)
`_struct.c`: Fix UB from integer overflow in `prepare_s` (GH-145158)
Avoid possible undefined behaviour from signed overflow in `struct` module
As discovered via oss-fuzz.
(cherry picked from commit
fd0400585eb957c7d10812d87a8cb9e1f3c72519 )
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Savannah Ostrowski [Mon, 23 Feb 2026 18:13:47 +0000 (10:13 -0800)]
[3.14] Add Savannah as `jit.yml` CODEOWNER (GH-145152) (#145155)
* Add Savannah as `jit.yml` CODEOWNER (#145152)
(cherry picked from commit
6180e79ed2175f7b095807b78a5ea58b4da3de0b )
Savannah Ostrowski [Mon, 23 Feb 2026 17:35:04 +0000 (09:35 -0800)]
[3.14] Update argparse `suggest_on_error` code snippet in docs (GH-144985) (#145151)
Update argparse `suggest_on_error` code snippet in docs (#144985)
(cherry picked from commit
6194a552f2b010e1dcdd006996f613c956520124 )
Savannah Ostrowski [Mon, 23 Feb 2026 17:01:49 +0000 (09:01 -0800)]
[3.14] Refactor jit.yml (GH-144577) (#145126)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Peter Bierma [Mon, 23 Feb 2026 15:38:43 +0000 (10:38 -0500)]
[3.14] gh-141811: Split up `init.rst` into multiple pages (GH-144844) (GH-145061)
(cherry picked from commit
60f3c396fe5dc56bc3a56341e2d31fd6061bb068 )
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Benedikt Johannes <benedikt.johannes.hofer@gmail.com>
Sam Gross [Mon, 23 Feb 2026 15:25:03 +0000 (10:25 -0500)]
[3.14] gh-144777: Fix data races in IncrementalNewlineDecoder (gh-144971) (#145143)
Peter Bierma [Mon, 23 Feb 2026 15:24:29 +0000 (10:24 -0500)]
[3.14] gh-141004: Document `PyModuleDef_Type` (GH-145043) (GH-145146)
(cherry picked from commit
24cc998c164f137603f1c6d95b929d640211d237 )
Miss Islington (bot) [Sun, 22 Feb 2026 08:28:17 +0000 (09:28 +0100)]
[3.14] gh-145092: Fix compiler warning for memchr() and wcschr() returning const pointer (GH-145093) (GH-145102)
(cherry picked from commit
faea32b729e132172d39d54517822e772ad0017a )
Co-authored-by: Rudi Heitbaum <rudi@heitbaum.com>
Bénédikt Tran [Sat, 21 Feb 2026 21:31:23 +0000 (22:31 +0100)]
[3.14] gh-142516: fix reference leaks in `ssl.SSLContext` objects (GH-143685) (#145075)
* [3.14] gh-142516: fix reference leaks in `ssl.SSLContext` objects (GH-143685)
(cherry picked from commit
3a2a686cc45de2fb685ff332b7b914f27f660680 )
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* fix backport
Bénédikt Tran [Sat, 21 Feb 2026 15:04:31 +0000 (16:04 +0100)]
[3.14] gh-143698: correctly check `scheduler` and `setpgroup` values for `os.posix_spawn[p]` (GH-143699) (#145073)
Fix an issue where passing invalid arguments to `os.posix_spawn[p]` functions
raised a SystemError instead of a TypeError, and allow to explicitly use `None`
for `scheduler` and `setpgroup` as specified in the docs.
(cherry picked from commit
347fc438cf903c1d7fa5063464ae2e93c11b2232 )
Stan Ulbrych [Sat, 21 Feb 2026 12:24:35 +0000 (12:24 +0000)]
[3.14] `compute-changes.py`: Fix & test `process_changed_files()` (GH-144674) (#145013)
Co-authored-by: Chris Eibl <138194463+chris-eibl@users.noreply.github.com>
Miss Islington (bot) [Sat, 21 Feb 2026 12:14:51 +0000 (13:14 +0100)]
[3.14] gh-143916: Allow HTAB in wsgiref header values (#144761)
Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
Miss Islington (bot) [Sat, 21 Feb 2026 05:42:08 +0000 (06:42 +0100)]
[3.14] gh-144694: Fix re.Match.group() doc claiming [1..99] range limit (GH-144696) (#145065)
gh-144694: Fix re.Match.group() doc claiming [1..99] range limit (GH-144696)
The documentation incorrectly stated that numeric group arguments
must be in the range [1..99]. This limit was removed in Python 3.5
(bpo-22437). Replace with "a positive integer" since the next
sentence already documents the IndexError for out-of-range values.
(cherry picked from commit
85021bc2477f3ab394172b6dda3110e59f4777dd )
Co-authored-by: Mohsin Mehmood <55545648+mohsinm-dev@users.noreply.github.com>
Miss Islington (bot) [Sat, 21 Feb 2026 00:31:51 +0000 (01:31 +0100)]
[3.14] gh-144748: Document 3.12 and 3.14 changes to `PyErr_CheckSignals` (GH-144982) (GH-145062)
gh-144748: Document 3.12 and 3.14 changes to `PyErr_CheckSignals` (GH-144982)
(cherry picked from commit
06292614ff7cef0ba28da6dfded58fb0e731b2e3 )
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Miss Islington (bot) [Fri, 20 Feb 2026 20:47:46 +0000 (21:47 +0100)]
[3.14] gh-144809: Make deque copy atomic in free-threaded build (gh-144966) (#145053)
(cherry picked from commit
70da972f97ec799dc7d7ab069fe195455f2f81b2 )
Co-authored-by: Sam Gross <colesbury@gmail.com>
Miss Islington (bot) [Fri, 20 Feb 2026 18:52:26 +0000 (19:52 +0100)]
[3.14] Simplify summary tables in the itertools docs (gh-145050) (gh-145051)
Miss Islington (bot) [Thu, 19 Feb 2026 23:13:43 +0000 (00:13 +0100)]
[3.14] Correct MAX_N in Lib/zipfile ZipExtFile (GH-144973) (GH-145022)
"<<" has lower precedence than "-".
(cherry picked from commit
4141f0a1ee6a6e9d5b4ba24f15a9d17df6933321 )
Co-authored-by: J Berg <j.berg2349@gmail.com>
Miss Islington (bot) [Thu, 19 Feb 2026 19:53:05 +0000 (20:53 +0100)]
[3.14] gh-144156: Fix email header folding concatenating encoded words (GH-144692) (#145009)
gh-144156: Fix email header folding concatenating encoded words (GH-144692)
The fix for gh-92081 (gh-92281) was unfortunately flawed, and broke whitespace handling for encoded word patterns that had previously been working correctly but had no corresponding tests, unfortunately in a way that made the resulting headers not RFC compliant, in such a way that Yahoo started rejecting the resulting emails. This fix was released in 3.14 alpha 1, 3.13 beta 2 and 3.12.5. This PR fixes the original problem in a way that does not break anything, and in fact fixes a small pre-existing bug (a spurious whitespace after the ':' of the header label if the header value is immediately wrapped on to the next line). (RDM)
(cherry picked from commit
0f7cd5544a4dd1d7cf892c93c661510d619caaa7 )
Co-authored-by: Robsdedude <dev@rouvenbauer.de>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: R. David Murray <rdmurray@bitdance.com>
Miss Islington (bot) [Thu, 19 Feb 2026 11:51:18 +0000 (12:51 +0100)]
[3.14] Remove unused :platform: in module's docs (GH-144988) (GH-144994)
Remove unused :platform: in module's docs (GH-144988)
It has not been outputted since Sphinx 1.1.
(cherry picked from commit
20caf1c08440684b618d2166022ae82b2db3b696 )
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Victor Stinner [Wed, 18 Feb 2026 19:55:38 +0000 (20:55 +0100)]
[3.14] gh-144763: Fix race conditions in tracemalloc (#144779) (#144965)
gh-144763: Fix race conditions in tracemalloc (#144779)
Avoid PyUnstable_InterpreterFrame_GetLine() since it uses a critical
section which can lead to a deadlock.
_PyTraceMalloc_Stop() now also calls PyRefTracer_SetTracer() without
holding TABLES_LOCK() to prevent another deadlock.
(cherry picked from commit
83f4fffe3d78ba368c0d4864c42c7c9c9223f7d1 )
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Miss Islington (bot) [Wed, 18 Feb 2026 16:59:17 +0000 (17:59 +0100)]
[3.14] gh-141984: Reword and reorganize the first part of Atoms docs (GH-144117) (GH-144959)
(cherry picked from commit
112d8ac9724a53c5459a4f957941f5a3c97abf5d )
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Blaise Pabon <blaise@gmail.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Stan Ulbrych [Wed, 18 Feb 2026 14:14:44 +0000 (14:14 +0000)]
[3.14] Datetime: Tidy up docs (GH-144720) (GH-144956)
(cherry picked from commit
c6a142f9472f2d3e2c360b72a19450f9dd087657 )
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Serhiy Storchaka [Wed, 18 Feb 2026 13:29:34 +0000 (15:29 +0200)]
[3.14] gh-140652: Fix a crash in _interpchannels.list_all() after closing a channel (GH-143743) (GH-144954)
(cherry picked from commit
3f50432e31c8e0d2e3ea8cbc2e472f7ee80e327a )
Miss Islington (bot) [Wed, 18 Feb 2026 11:19:02 +0000 (12:19 +0100)]
[3.14] gh-144386: Update equivalent code for "with", "async with" and "async for" (GH-144472) (GH-144945)
They use special method lookup for special methods.
(cherry picked from commit
9e8fa2d4d1ec263bdc6945237b0e0517f07a3474 )
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Ned Batchelder [Wed, 18 Feb 2026 10:27:09 +0000 (05:27 -0500)]
[3.14] Docs: an "improve this page" feature (GH-144939) (#144943)
---------
(cherry picked from commit
7a7521bcfad4a8346d460476de2e3fa11e412477 )
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Stan Ulbrych [Tue, 17 Feb 2026 12:53:42 +0000 (12:53 +0000)]
[3.14] Fix typos and grammar errors across documentation (GH-144709) (#144801)
(cherry picked from commit
3718f4be60ebb0725b35f597a9de3f7a93ba9f72 )
Co-authored-by: Ronald Eddy Jr <ronald_eddy@yahoo.com>
Miss Islington (bot) [Tue, 17 Feb 2026 10:16:21 +0000 (11:16 +0100)]
[3.14] gh-143637: Fix test_socket.test_sendmsg_reentrant_ancillary_mutation() on Solaris (GH-144890) (#144901)
gh-143637: Fix test_socket.test_sendmsg_reentrant_ancillary_mutation() on Solaris (GH-144890)
Use socket.SCM_RIGHTS operation.
(cherry picked from commit
63531a3867cf4f8b5a7088fb7667d33534c43ff7 )
Co-authored-by: Victor Stinner <vstinner@python.org>
Ned Deily [Tue, 17 Feb 2026 05:42:04 +0000 (00:42 -0500)]
[3.14] gh-144551: Update macOS installer to use OpenSSL 3.0.19 (#144897)
Miss Islington (bot) [Tue, 17 Feb 2026 02:53:51 +0000 (03:53 +0100)]
[3.14] gh-144782: Make sure that ArgumentParser instances are pickleable (GH-144783) (#144895)
gh-144782: Make sure that ArgumentParser instances are pickleable (GH-144783)
(cherry picked from commit
2f7634c0291c92cf1e040fc81c4210f0883e6036 )
Co-authored-by: Mauricio Villegas <5780272+mauvilsa@users.noreply.github.com>
Co-authored-by: Bartosz Sławecki <bartosz@ilikepython.com>
Co-authored-by: AN Long <aisk@users.noreply.github.com>
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Miss Islington (bot) [Mon, 16 Feb 2026 15:37:46 +0000 (16:37 +0100)]
[3.14] gh-144601: Avoid sharing exception objects raised in a `PyInit` function across multiple interpreters (GH-144602) (GH-144633)
gh-144601: Avoid sharing exception objects raised in a `PyInit` function across multiple interpreters (GH-144602)
(cherry picked from commit
fd6b639a49dd1143c6fd8729fc49f17b3114a965 )
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Peter Bierma [Mon, 16 Feb 2026 12:44:49 +0000 (07:44 -0500)]
[3.14] gh-144601: Use `_testmultiphase` instead of `_testsinglephase` in `test_importlib` (GH-144769)
Serhiy Storchaka [Mon, 16 Feb 2026 12:25:43 +0000 (14:25 +0200)]
[3.14] gh-80667: Fix lookup for Tangut ideographs in unicodedata (GH-144789) (GH-144871)
(cherry picked from commit
8b7b5a994602824a5e41cf2516691212fcdfa25e )
Co-authored-by: Pierre Le Marre <dev@wismill.eu>
Miss Islington (bot) [Mon, 16 Feb 2026 05:26:34 +0000 (06:26 +0100)]
[3.14] gh-144551: Update Android builds to use OpenSSL 3.0.19 (GH-144866)
(cherry picked from commit
87c7f193b8ea7be36f3ba5a66b5c223efde4c674 )
Co-authored-by: Zachary Ware <zach@python.org>
Miss Islington (bot) [Mon, 16 Feb 2026 05:21:43 +0000 (06:21 +0100)]
[3.14] gh-144551: Update iOS builds to use OpenSSL 3.0.19 (GH-144867)
(cherry picked from commit
ebe02e4f393bc0bd2263c43da313b28012f82af9 )
Co-authored-by: Zachary Ware <zach@python.org>
Miss Islington (bot) [Mon, 16 Feb 2026 03:10:23 +0000 (04:10 +0100)]
[3.14] gh-144833: Fix use-after-free in SSL module when SSL_new() fails (GH-144843) (#144858)
gh-144833: Fix use-after-free in SSL module when SSL_new() fails (GH-144843)
In newPySSLSocket(), when SSL_new() returns NULL, Py_DECREF(self)
was called before _setSSLError(get_state_ctx(self), ...), causing
a use-after-free. Additionally, get_state_ctx() was called with
self (PySSLSocket*) instead of sslctx (PySSLContext*), which is
a type confusion bug.
Fix by calling _setSSLError() before Py_DECREF() and using
sslctx instead of self for get_state_ctx().
(cherry picked from commit
c91638ca0671b8038831f963ed44e66cdda006a2 )
Co-authored-by: Ramin Farajpour Cami <ramin.blackhat@gmail.com>
Miss Islington (bot) [Sun, 15 Feb 2026 15:10:15 +0000 (16:10 +0100)]
[3.14] gh-144759: Fix undefined behavior from NULL pointer arithmetic in lexer (GH-144788) (#144834)
gh-144759: Fix undefined behavior from NULL pointer arithmetic in lexer (GH-144788)
Guard against NULL pointer arithmetic in `_PyLexer_remember_fstring_buffers`
and `_PyLexer_restore_fstring_buffers`. When `start` or `multi_line_start`
are NULL (uninitialized in tok_mode_stack[0]), performing `NULL - tok->buf`
is undefined behavior. Add explicit NULL checks to store -1 as sentinel
and restore NULL accordingly.
Add test_lexer_buffer_realloc_with_null_start to test_repl.py that
exercises the code path where the lexer buffer is reallocated while
tok_mode_stack[0] has NULL start/multi_line_start pointers. This
triggers _PyLexer_remember_fstring_buffers and verifies the NULL
checks prevent undefined behavior.
(cherry picked from commit
e6110efd03259acd1895cff63fbfa115ac5f16dc )
Co-authored-by: Ramin Farajpour Cami <ramin.blackhat@gmail.com>
Miss Islington (bot) [Sat, 14 Feb 2026 17:07:32 +0000 (18:07 +0100)]
[3.14] gh-143637: Fix re-entrant mutation of ancillary data in socket.sendmsg() (GH-143892) (#144786)
gh-143637: Fix re-entrant mutation of ancillary data in socket.sendmsg() (GH-143892)
(cherry picked from commit
82b92e3cd180723a354cdeb0f0f1d593f1b5eb0d )
Co-authored-by: Priyanshu Singh <priyanshu2282@gmail.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Miss Islington (bot) [Sat, 14 Feb 2026 12:09:00 +0000 (13:09 +0100)]
[3.14] gh-144766: Fix a crash in fork child process when perf support is enabled. (GH-144795) (#144816)
Zachary Ware [Fri, 13 Feb 2026 20:31:27 +0000 (14:31 -0600)]
[3.14] gh-144551: Update CI to use latest OpenSSL versions (GH-144794) (#144799)
[3.14] gh-144551: Update CI to use latest OpenSSL versions
Also update _ssl_data_35.h to include an added symbol from 3.5.5.
(cherry picked from commit
b933ef92619db2a103a26c70e69b6d31978eb566 )
Miss Islington (bot) [Fri, 13 Feb 2026 20:28:06 +0000 (21:28 +0100)]
[3.14] gh-144787: [tests] Allow TLS v1.2 to be minimum version (GH-144790) (#144791)
gh-144787: [tests] Allow TLS v1.2 to be minimum version (GH-144790)
Allow TLS v1.2 to be minimum version
Updates test_min_max_version to allow TLS v1.2 to be minimum version if
TLS 1.0 and 1.1 are disabled in OpenSSL.
(cherry picked from commit
d625f7da33bf8eb57fb7e1a05deae3f68bf4d00f )
Co-authored-by: Colin McAllister <colinmca242@gmail.com>
Zachary Ware [Fri, 13 Feb 2026 19:38:31 +0000 (13:38 -0600)]
[3.14] gh-144551: Update Windows builds to use OpenSSL 3.0.19 (GH-144797)
(cherry picked from commit
928602c0ac385eca81b90956ba8d36d04e7dd6de )
Victor Stinner [Fri, 13 Feb 2026 07:30:22 +0000 (08:30 +0100)]
[3.14] gh-135906: Test more internal headers in test_cext/test_cppext (#144758)
* gh-141563: Enable test_cppext internal C API tests on macOS (#144711)
Build the C API in C++11 mode on macOS.
(cherry picked from commit
c6e418d1744aed95a6f25d22565204649dde29c7 )
* gh-135906: Test more internal headers in test_cext/test_cppext (#144751)
(cherry picked from commit
b488f338cf058f46cbf0255023ca1c1669b0eb44 )
Miss Islington (bot) [Thu, 12 Feb 2026 23:21:17 +0000 (00:21 +0100)]
[3.14] gh-144706: Warn against using synchronization primitives within signal handlers (GH-144736) (GH-144767)
gh-144706: Warn against using synchronization primitives within signal handlers (GH-144736)
(cherry picked from commit
945bf8ce1bf7ee3881752c2ecc129e35ab818477 )
Co-authored-by: Robsdedude <dev@rouvenbauer.de>
Miss Islington (bot) [Thu, 12 Feb 2026 17:22:05 +0000 (18:22 +0100)]
[3.14] gh-80667: Fix case-sensitivity of some Unicode literal escapes (GH-107281) (GH-144753)
Lookup for CJK ideograms and Hangul syllables is now case-insensitive,
as is the case for other character names.
(cherry picked from commit
e66f4a5a9c7ce744030d6352bf5575639b1096cc )
Co-authored-by: James <snoopjedi@gmail.com>
Miss Islington (bot) [Thu, 12 Feb 2026 10:44:32 +0000 (11:44 +0100)]
[3.14] gh-57095: Add note about input splitting in `datetime.*.strptime` (GH-131049) (GH-144735)
(cherry picked from commit
2e3e76e5cde34786780f5b3723f495fdbdf37c84 )
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Serhiy Storchaka [Thu, 12 Feb 2026 08:38:27 +0000 (10:38 +0200)]
[3.14] gh-84424: Use numeric_changed for UCD.numeric (GH-19457) (GH-144731)
This was causing ucd_3_2_0.numeric() to pick up only decimal
changes between Unicode 3.2.0 and the current version.
(cherry picked from commit
3e0322ff16f47caa3e273d453f007d3918b8ac80 )
Co-authored-by: William Meehan <wmeehan@fb.com>
Hugo van Kemenade [Wed, 11 Feb 2026 15:33:51 +0000 (17:33 +0200)]
[3.14] gh-144639: Ruff: target Python 3.14 syntax in `Lib/test` (GH-144656) (#144710)
Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Miss Islington (bot) [Wed, 11 Feb 2026 13:39:40 +0000 (14:39 +0100)]
[3.14] gh-142518: Document thread-safety guarantees of dict operations (GH-144184) (#144708)
* Address feedback; move thread safety section below see-also
* Address feedback - don't mention equality comparison only
* Change admonition to rubric; cross-reference glossary
---------
(cherry picked from commit
35dc547ab5a6bb9be9748002d42d0d9e86f9cced )
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Miss Islington (bot) [Wed, 11 Feb 2026 13:16:55 +0000 (14:16 +0100)]
[3.14] gh-142518: Define lock-free and per-object lock (GH-144548) (#144704)
gh-142518: Define lock-free and per-object lock (GH-144548)
- Add definitions of lock-free and per-object lock to the glossary
- Cross-reference these from list thread safety notes
- Change admonition to rubric
(cherry picked from commit
12dbae4c02dac197330d5bfa650b495e962aba6d )
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Ned Batchelder [Wed, 11 Feb 2026 13:09:56 +0000 (08:09 -0500)]
[3.14] Docs: remove links of modules to themselves (GH-144695) (#144705)
Miss Islington (bot) [Wed, 11 Feb 2026 08:48:22 +0000 (09:48 +0100)]
[3.14] gh-106318: Improve str.rstrip() method doc (GH-143893) (#144699)
gh-106318: Improve str.rstrip() method doc (GH-143893)
(cherry picked from commit
936d60dbe1679f05d7ceb0a6d1f65bc741390ac6 )
Co-authored-by: Adorilson Bezerra <adorilson@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Miss Islington (bot) [Wed, 11 Feb 2026 06:06:51 +0000 (07:06 +0100)]
[3.14] gh-143650: Fix importlib race condition on import failure (GH-143651) (#144662)
gh-143650: Fix importlib race condition on import failure (GH-143651)
Fix a race condition where a thread could receive a partially-initialized
module when another thread's import fails. The race occurs when:
1. Thread 1 starts importing, adds module to sys.modules
2. Thread 2 sees the module in sys.modules via the fast path
3. Thread 1's import fails, removes module from sys.modules
4. Thread 2 returns a stale module reference not in sys.modules
The fix adds verification after the "skip lock" optimization in both Python
and C code paths to check if the module is still in sys.modules. If the
module was removed (due to import failure), we retry the import so the
caller receives the actual exception from the import failure rather than
a stale module reference.
(cherry picked from commit
ac8b5b6890006ee7254ea878866cb486ff835ecb )
Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Victor Stinner [Tue, 10 Feb 2026 20:04:13 +0000 (21:04 +0100)]
[3.14] gh-144490: Test the internal C API in test_cext (#144678)
Backport changes from the main branch.
Test also datetime.h in test_cppext.
Savannah Ostrowski [Tue, 10 Feb 2026 18:42:18 +0000 (10:42 -0800)]
[3.14] GH-144552: Clean up `tail-call.yml ` CI (GH-144553) (#144683)
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Hugo van Kemenade [Tue, 10 Feb 2026 18:10:20 +0000 (20:10 +0200)]
[3.14] Bump pre-commit hooks (GH-144576) (#144591)
(cherry picked from commit
e682141c495c2e52368c4341ae54eea041070356 )
Co-authored-by: Savannah Ostrowski <savannah@python.org>
Miss Islington (bot) [Tue, 10 Feb 2026 15:05:25 +0000 (16:05 +0100)]
[3.14] gh-144629: Add test for the PyFunction_GetAnnotations() function (GH-144630) (#144670)
gh-144629: Add test for the PyFunction_GetAnnotations() function (GH-144630)
(cherry picked from commit
cc81707e406c49c63afc18048e1a221d796ce638 )
Co-authored-by: Nybblista <170842536+nybblista@users.noreply.github.com>
Bartosz Sławecki [Tue, 10 Feb 2026 14:31:49 +0000 (15:31 +0100)]
[3.14] gh-144563: Fix remote debugging with duplicate libpython mappings from ctypes (GH-144595) (#144655)
Victor Stinner [Tue, 10 Feb 2026 14:30:05 +0000 (15:30 +0100)]
[3.14] gh-138744: Skip test_dtrace on Windows (#144657)
Co-authored-by: Ken Jin <kenjin@python.org>
Miss Islington (bot) [Tue, 10 Feb 2026 13:16:26 +0000 (14:16 +0100)]
[3.14] Clarify the docs for `args` in asyncio callbacks (GH-143873) (#144663)
Clarify the docs for `args` in asyncio callbacks (GH-143873)
(cherry picked from commit
40a82abe9335e78e34ca564243499490e50b8888 )
Co-authored-by: Aarni Koskela <akx@iki.fi>
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Miss Islington (bot) [Tue, 10 Feb 2026 13:01:10 +0000 (14:01 +0100)]
[3.14] gh-143543: Fix re-entrant use-after-free in itertools.groupby (GH-143738) (GH-144626)
(cherry picked from commit
a91b5c3fb5aeaeda6a8e016378beb0e4a8b329e6 )
Co-authored-by: VanshAgarwal24036 <148854295+VanshAgarwal24036@users.noreply.github.com>
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Miss Islington (bot) [Tue, 10 Feb 2026 11:42:26 +0000 (12:42 +0100)]
[3.14] gh-144652: Support Windows exit status in support get_signal_name() (GH-144653) (#144658)
gh-144652: Support Windows exit status in support get_signal_name() (GH-144653)
Format Windows exit status as hexadecimal.
(cherry picked from commit
b121dc434748772272514311fe315e009fdfe6e5 )
Co-authored-by: Victor Stinner <vstinner@python.org>
Victor Stinner [Tue, 10 Feb 2026 10:55:57 +0000 (11:55 +0100)]
[3.14] gh-144490: Test the internal C API in test_cppext (#144547)
Backport changes from the main branch.
Miss Islington (bot) [Tue, 10 Feb 2026 03:24:17 +0000 (04:24 +0100)]
[3.14] Disable pip version check when upgrading certifi (GH-144632) (#144641)
(cherry picked from commit
80ba4e10f5070e6d2e35618e08057be44f913965 )
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Miss Islington (bot) [Mon, 9 Feb 2026 17:57:43 +0000 (18:57 +0100)]
[3.14] gh-144492: Fix `process_changed_files` outputs for `reusable-{macos, wasi}.yml` (GH-144518) (#144635)
gh-144492: Fix `process_changed_files` outputs for `reusable-{macos, wasi}.yml` (GH-144518)
Fix `process_changed_files` double-processing reusable-{macos, wasi] ending up with incorrect outputs
(cherry picked from commit
fd190d1fa1a34bb8d533d05263ea744a051b7529 )
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Miss Islington (bot) [Mon, 9 Feb 2026 15:06:28 +0000 (16:06 +0100)]
[3.14] gh-134179: Use sys._clear_internal_caches() at test_cmd_line (GH-134180) (#144631)
gh-134179: Use sys._clear_internal_caches() at test_cmd_line (GH-134180)
Use sys._clear_internal_caches() instead of deprecated sys._clear_type_cache() at test_cmd_line.
(cherry picked from commit
dd2da42ea479c32a4260463b47e1b58877d07bdc )
Co-authored-by: alexey semenyuk <alexsemenyuk88@gmail.com>
Miss Islington (bot) [Mon, 9 Feb 2026 14:04:52 +0000 (15:04 +0100)]
[3.14] gh-119740: Remove obsoleted removal announce for trunc delegation (GH-144622) (GH-144624)
This was done in GH-119743 (3.14).
(cherry picked from commit
aa6ed802f20c1ddadf45942d350422d3d4e0bbea )
Co-authored-by: Sergey B Kirpichev <skirpichev@gmail.com>
Miss Islington (bot) [Mon, 9 Feb 2026 13:21:54 +0000 (14:21 +0100)]
[3.14] gh-144363: Update bundled libexpat to 2.7.4 (GH-144365) (GH-144499)
(cherry picked from commit
d5cb9f6a9b6f48cc08c4422259498d4fd023357a )
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Miss Islington (bot) [Sun, 8 Feb 2026 22:17:46 +0000 (23:17 +0100)]
[3.14] gh-106318: Add examples for str.partition() method (GH-142823) (#144611)
gh-106318: Add examples for str.partition() method (GH-142823)
(cherry picked from commit
432ddd99e2b06a75a4f47bd99c0fd0c911bdb19c )
Co-authored-by: Adorilson Bezerra <adorilson@gmail.com>
Miss Islington (bot) [Sun, 8 Feb 2026 22:14:19 +0000 (23:14 +0100)]
[3.14] gh-106318: Add example for str.isalnum() (GH-137550) (#144609)
gh-106318: Add example for str.isalnum() (GH-137550)
(cherry picked from commit
3dd7a3c65ad4ac330ad44a519efa017484530e1a )
Co-authored-by: Adorilson Bezerra <adorilson@gmail.com>
Miss Islington (bot) [Sun, 8 Feb 2026 07:41:33 +0000 (08:41 +0100)]
[3.14] For `enum.bin`, update versionadded directive from 3.10 to 3.11 (GH-144574) (#144588)
For `enum.bin`, update versionadded directive from 3.10 to 3.11 (GH-144574)
(cherry picked from commit
d73634935cb9ce00a57dcacbd2e56371e4c18451 )
Co-authored-by: Guo Ci <zguoci@gmail.com>
Miss Islington (bot) [Sat, 7 Feb 2026 22:42:16 +0000 (23:42 +0100)]
[3.14] gh-143700: document `secrets.DEFAULT_ENTROPY` as an opaque value (GH-144568) (#144579)
gh-143700: document `secrets.DEFAULT_ENTROPY` as an opaque value (GH-144568)
(cherry picked from commit
934997218e55714003276a70090a710cb3beeb61 )
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Miss Islington (bot) [Sat, 7 Feb 2026 12:31:29 +0000 (13:31 +0100)]
[3.14] gh-142044: Add note to prefer `asyncio.timeout[_at]` over `asyncio.Timeout` (GH-144449) (#144565)
gh-142044: Add note to prefer `asyncio.timeout[_at]` over `asyncio.Timeout` (GH-144449)
(cherry picked from commit
0e7c06a85880ba790fac4239b0ff1052399a36ae )
Co-authored-by: kovan <xaum.io@gmail.com>
Miss Islington (bot) [Sat, 7 Feb 2026 12:25:09 +0000 (13:25 +0100)]
[3.14] gh-140490: Document changes for `PurePath.stem` in Python 3.14 (GH-144450) (#144564)
gh-140490: Document changes for `PurePath.stem` in Python 3.14 (GH-144450)
(cherry picked from commit
16efaa225cbe53345b482daddee85b5ebfe3cb98 )
Co-authored-by: kovan <xaum.io@gmail.com>
Miss Islington (bot) [Sat, 7 Feb 2026 12:22:45 +0000 (13:22 +0100)]
[3.14] gh-144538: Upgrade bundled pip to 26.0.1 (gh-144556) (#144562)
gh-144538: Upgrade bundled pip to 26.0.1 (gh-144556)
Upgrade bundled pip to 26.0.1
(cherry picked from commit
f4364a51c1a8ce682fe9e4e96c6aba9f1b590422 )
Co-authored-by: Damian Shaw <damian.peter.shaw@gmail.com>
Miss Islington (bot) [Sat, 7 Feb 2026 03:37:41 +0000 (04:37 +0100)]
[3.14] gh-144490: Fix C++ compatibility in pycore_cell.h (GH-144482) (GH-144555)
gh-144490: Fix C++ compatibility in pycore_cell.h (GH-144482)
(cherry picked from commit
a2495ff1e7b370c26128aa41298edb9ff06b5666 )
Co-authored-by: Alper <alperyoney@fb.com>
Ned Batchelder [Fri, 6 Feb 2026 19:06:50 +0000 (14:06 -0500)]
[3.14] Docs: module pages should not link to themselves (GH-144505) (#144542)
Docs: module pages should not link to themselves
A re-application of the same changes as #144505.
Miss Islington (bot) [Fri, 6 Feb 2026 15:25:36 +0000 (16:25 +0100)]
[3.14] gh-144446: Fix some frame object thread-safety issues (gh-144479) (#144546)
Fix thread-safety issues when accessing frame attributes while another
thread is executing the frame:
- Add critical section to frame_repr() to prevent races when accessing
the frame's code object and line number
- Add _Py_NO_SANITIZE_THREAD to PyUnstable_InterpreterFrame_GetLasti()
to allow intentional racy reads of instr_ptr.
- Fix take_ownership() to not write to the original frame's f_executable
(cherry picked from commit
5bb3bbb9c6a7c9043a04d0cc2e82c83747040788 )
Co-authored-by: Sam Gross <colesbury@gmail.com>
Miss Islington (bot) [Fri, 6 Feb 2026 11:50:06 +0000 (12:50 +0100)]
[3.14] gh-141004: Reorganize and reword the 'Useful macros' section (GH-144471) (GH-144541)
- Group the macros
- Roughly order them to put the most important ones first
- Add expansions where it makes sense; especially if there's
an equivalent in modern C or a common compiler
(cherry picked from commit
f85e1170d2b22d2ee42cd568144e0c9f57b0db67 )
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Victor Stinner [Fri, 6 Feb 2026 09:21:02 +0000 (10:21 +0100)]
[3.14] gh-144330: Initialize classmethod and staticmethod in new (#144498)
gh-144330: Initialize classmethod and staticmethod in new
Initialize cm_callable and sm_callable to None in classmethod and
staticmethod constructor.
Co-authored-by: Aniket Singh Yadav <singhyadavaniket43@gmail.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Miss Islington (bot) [Fri, 6 Feb 2026 03:18:06 +0000 (04:18 +0100)]
[3.14] gh-140414: add fastpath for current running loop in `asyncio.all_tasks` (GH-140542) (#144494)
* gh-140414: add fastpath for current running loop in `asyncio.all_tasks` (GH-140542)
Optimize `asyncio.all_tasks()` for the common case where the event loop is running in the current thread by avoiding stop-the-world pauses and locking.
This optimization is already present for `asyncio.current_task()` so we do the same for `asyncio.all_tasks()`.
(cherry picked from commit
95e5d596308620acbd860ec25a40ef95c2b62eaa )
Co-authored-by: Kumar Aditya <kumaraditya@python.org>
Miss Islington (bot) [Thu, 5 Feb 2026 18:12:28 +0000 (19:12 +0100)]
[3.14] gh-74955: Document that __all__ must contain strings in normalization form NFKC (GH-144504) (GH-144519)
(cherry picked from commit
c81e1843d4bc0a51cf4f77d19b5ac4e49f714a0d )
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Miss Islington (bot) [Thu, 5 Feb 2026 16:21:31 +0000 (17:21 +0100)]
[3.14] gh-144484: Warn users not to use wsgiref in production (#144511)
gh-144484: Warn users not to use wsgiref in production
(cherry picked from commit
7e777c587f01434ac5eea3d63d096f191278dad2 )
Co-authored-by: Seth Michael Larson <seth@python.org>
Serhiy Storchaka [Thu, 5 Feb 2026 15:24:24 +0000 (17:24 +0200)]
[3.14] gh-144148: Update the urllib.parse documentation (GH-144497) (GH-144507)
Document urlsplit() as the main parsing function and urlparse() as
an obsolete variant.
(cherry picked from commit
67ddba9aa9c0405c68e691643c4aa75fdbcefe1d )
Miss Islington (bot) [Thu, 5 Feb 2026 09:41:32 +0000 (10:41 +0100)]
[3.14] gh-141984: Reword and reorganize Subscription (and Slicing) docs (GH-141985) (GH-144476)
(cherry picked from commit
e423e0c2cc06fd36689f45b9e818f2455c20e682 )
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Blaise Pabon <blaise@gmail.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Miss Islington (bot) [Wed, 4 Feb 2026 20:27:41 +0000 (21:27 +0100)]
[3.14] Itertools recipes: Replace the tabulate() example with running_mean() (gh-144483) (gh-144485)
Miss Islington (bot) [Wed, 4 Feb 2026 17:23:55 +0000 (18:23 +0100)]
[3.14] gh-106318: Add examples for `str.startswith()` method (GH-144369) (#144481)
gh-106318: Add examples for `str.startswith()` method (GH-144369)
(cherry picked from commit
1b6d737ee0205521333cf5fe6ca6df2d3a6d4ec2 )
Co-authored-by: Adorilson Bezerra <adorilson@gmail.com>
Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Miss Islington (bot) [Wed, 4 Feb 2026 16:49:41 +0000 (17:49 +0100)]
[3.14] gh-141004: Document remaining `pyport.h` utility macros (GH-144279) (GH-144477)
gh-141004: Document remaining `pyport.h` utility macros (GH-144279)
(cherry picked from commit
914fbec21458a0344468734489f29254033fafc5 )
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Miss Islington (bot) [Wed, 4 Feb 2026 11:36:34 +0000 (12:36 +0100)]
[3.14] gh-141444: Replace dead URL in urllib.robotparser example (GH-144443) (#144464)
Co-authored-by: kovan <217326+kovan@users.noreply.github.com>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Hugo van Kemenade [Tue, 3 Feb 2026 18:27:58 +0000 (20:27 +0200)]
Post 3.14.3
Hugo van Kemenade [Tue, 3 Feb 2026 15:31:53 +0000 (17:31 +0200)]
Python 3.14.3
Miss Islington (bot) [Tue, 3 Feb 2026 14:55:07 +0000 (15:55 +0100)]
[3.14] gh-127313: Use getLogger() without argument to get root logger in logging cookbook (GH-143683) (GH-144431)
gh-127313: Use getLogger() without argument to get root logger in logging cookbook (GH-143683)
Use getLogger() to get root logger in logging cookbook
(cherry picked from commit
53fecbe6e116a4426058b7d0f6c451719c72cb5b )
Co-authored-by: AN Long <aisk@users.noreply.github.com>
Miss Islington (bot) [Tue, 3 Feb 2026 14:28:39 +0000 (15:28 +0100)]
[3.14] gh-74453: Add stronger security warning to os.path.commonprefix
gh-74453: Add stronger security warning to os.path.commonprefix (GH-144401)
(cherry picked from commit
4e15b8d95da9a0f58ad58283979c37e43ff61229 )
Co-authored-by: Seth Michael Larson <seth@python.org>
Miss Islington (bot) [Tue, 3 Feb 2026 13:36:27 +0000 (14:36 +0100)]
[3.14] gh-106318: Add examples for str.rindex() method (GH-143887) (#144421)
gh-106318: Add examples for str.rindex() method (GH-143887)
(cherry picked from commit
45d00a0791a53f07c0050b985c936281ed825d9b )
Co-authored-by: Adorilson Bezerra <adorilson@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
Miss Islington (bot) [Tue, 3 Feb 2026 10:38:50 +0000 (11:38 +0100)]
[3.14] gh-142555: Fix null pointer dereference in array.__setitem__ via re-entrant __index__ (GH-142713) (#144396)
gh-142555: Fix null pointer dereference in array.__setitem__ via re-entrant __index__ (GH-142713)
(cherry picked from commit
39f16a93ef7b39c3fc5a1a5b706512168baee499 )
Co-authored-by: AN Long <aisk@users.noreply.github.com>
Miss Islington (bot) [Tue, 3 Feb 2026 10:34:16 +0000 (11:34 +0100)]
[3.14] gh-75572: Speed up test_xpickle (GH-144393) (GH-144403)
Run a long living subprocess which handles multiple requests instead of
running a new subprocess for each request.
(cherry picked from commit
29acc08c8dad664cd5713cb392e5beba65724c10 )
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Miss Islington (bot) [Tue, 3 Feb 2026 09:18:49 +0000 (10:18 +0100)]
[3.14] gh-144415: Android testbed fixes (GH-142912) (#144416)
Modifies handling of `.gz` files in Android app payloads, and ensures that
when the Android testbed streams logs, stream flushes aren't treated as
newlines. This improves the output of test suites that use "one dot per test"
progress indicators.
(cherry picked from commit
cb1dc91dcb1eb6637d1c79b34a0bab728939f717 )
Co-authored-by: Malcolm Smith <smith@chaquo.com>
Stan Ulbrych [Mon, 2 Feb 2026 16:50:33 +0000 (16:50 +0000)]
[3.14] gh-144376: Only run 'address' fuzzer for python3-libraries (GH-144398) (#144399)
(cherry picked from commit
5f91577cdd09bc604001ccfc164042ddbe486a81 )
Co-authored-by: Seth Michael Larson <seth@python.org>
Miss Islington (bot) [Mon, 2 Feb 2026 15:12:12 +0000 (16:12 +0100)]
[3.14] gh-144348: annotationlib: fix test that relies on set ordering (GH-144359) (#144375)
gh-144348: annotationlib: fix test that relies on set ordering (GH-144359)
(cherry picked from commit
b6256014be7ff8adf100c47c4be8bc002e0607d6 )
Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com>
Miss Islington (bot) [Mon, 2 Feb 2026 10:30:34 +0000 (11:30 +0100)]
[3.14] gh-144380: Fix incorrect type check in `buffered_iternext()` (GH-144381) (#144389)
gh-144380: Fix incorrect type check in `buffered_iternext()` (GH-144381)
(cherry picked from commit
40d07cad38bf3ce60f4ca03f1836e8650fe40df5 )
Co-authored-by: Ruiyang Ke <me@ry.ke>
Peter Bierma [Mon, 2 Feb 2026 02:01:43 +0000 (18:01 -0800)]
[3.14] gh-144277: Fix usage of free-threaded terminology in the documentation (GH-144333) (GH-144385)
(cherry picked from commit
3a0e1835563e6acfa3059a7d9777260cb2b6717d )