Python: Concurrency Bugs and Logging Hangs Get Cleaned Up

Today's activity centers on free-threading data races and long-standing logging deadlocks, with maintainer Serhiy Storchaka driving a cluster of fixes to the logging module's handler classes. A steady stream of documentation cleanup for Sphinx warnings and the inspect module rounds out the day.

Duration: PT2M40S

Episode overview

This episode is a short developer briefing from Python.

It explains recent repository work in plain language.

  • Show: Python
  • Published: 2026-07-23T13:08:24Z
  • Audio duration: PT2M40S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good day, and welcome to Python for July twenty-third, twenty twenty-six.

The clearest signal today is a concentrated push on correctness under concurrency, both in the free-threaded build and in classic multi-threaded code.

On the free-threading side, three separate PRs targeted data races caught by ThreadSanitizer: a race in readline's completer hooks, backported for the upcoming three-fifteen release in PR 154418; a race in Decimal's hash caching, fixed in PR 154519; and a related list and bytearray object race fixed in PR 154516.…

The second theme is logging reliability, and it's almost entirely the work of Serhiy Storchaka. PR 154528 fixes a race where removing a handler mid-iteration could silently skip other handlers. PR 154491 fixes a real deadlock: if logging-dot-config's listen function failed to start its server, the caller would hang…

Elsewhere, PR 154538 addresses a TaskGroup bug where a bare GeneratorExit was getting wrapped in an exception group instead of propagating cleanly — a correctness issue for anyone closing async generators. And PR 154492 tackles a PEP 479 gap where throwing StopIteration into a not-yet-started generator could escape…

On the maintenance side,…

Nearby episodes from Python

  1. Data Races, Backports, and BSD Portability
  2. Chasing Down the Long Tail of Platforms
  3. Asyncio Subprocess Reliability, Cross-Platform Cleanup
  4. Weekly Recap - Platform Portability and Reliability Cleanup
  5. Curses Portability and Ctypes Decorator Cleanup
  6. Backports, Free-Threading Fixes, and a Docs Cleanup Wave
  7. Cleanup Sprint Hits Old Bugs and Security Gaps
  8. Hardening the Edges of the Standard Library