June 13, 2026
Trash day turned into drama
Python 3.14 garbage collection rigamarole
Python tried a big cleanup makeover, then panicked and changed it back
TLDR: Python changed how it cleans up memory in version 3.14, then reversed course in 3.14.5 after users reported higher memory use. Commenters are split between “this should never have shipped” and “why not just fix it,” turning a routine update into a trust-and-leadership fight.
Python’s latest mini-update, 3.14.5, quietly turned into a full-blown comment-section soap opera. The short version: Python had introduced a new way of cleaning up unused memory in version 3.14.0, promising fewer annoying pauses for big apps. Then users started reporting higher memory use — basically, Python was acting tidier in one way while seeming to hoard space in another. So the team hit reverse and brought back the older behavior in 3.14.5.
And wow, the community had feelings. One camp was furious at the indecision: if the new system was truly better, why back down? If it wasn’t clearly better, why ship it at all? That blunt frustration showed up immediately, with one commenter basically calling the whole move a confidence-destroying wobble. Another went full drama, comparing Python leadership to Mozilla and adding, with icy precision, that this was “not a compliment.” Ouch.
Then came the armchair fixers, insisting this didn’t need a full rollback at all — just smarter tuning. Others pointed out the real-world chaos: test suites failing, behavior changing, and developers already juggling other big Python shifts. One especially juicy complaint? Users who actually liked the new cleaner can’t even keep using it, because Python didn’t make it an optional switch. That detail made the whole saga feel less like a bug fix and more like a surprise plot twist nobody voted on. Even the existence of an older Hacker News thread with 265 points and 130 comments gives this story sequel energy.
Key Points
- •Python 3.14.0 introduced an incremental cycle garbage collector, replacing the prior traditional generational approach in the release discussed by the article.
- •The merged pull request said the incremental design reduced maximum pause times significantly on larger heaps and changed collection to two generations: young and old.
- •The GC change landed in Python’s main branch in 2024, was removed from the 3.13 release branch, and first shipped in Python 3.14.0.
- •The article says reports of increased memory pressure led the Python team to revert the garbage collector changes in Python 3.14.5.
- •To explain the issue, the article compares CPython 3.14.4 and 3.14.5 builds and reviews reference counting with examples using `sys.getrefcount`.