summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2003-11-20 21:21:46 (GMT)
committerTim Peters <tim.peters@gmail.com>2003-11-20 21:21:46 (GMT)
commit403a2032230087943a52453deef93769f22461f8 (patch)
treefb760ac52c5fc2d9a83dd444f0d8dd15d28b50ce /Misc/NEWS
parent901dc983168d4ca706ed664a8f5134ee3add26ed (diff)
downloadcpython-403a2032230087943a52453deef93769f22461f8.zip
cpython-403a2032230087943a52453deef93769f22461f8.tar.gz
cpython-403a2032230087943a52453deef93769f22461f8.tar.bz2
SF bug 839548: Bug in type's GC handling causes segfaults.
Also SF patch 843455. This is a critical bugfix. I'll backport to 2.3 maint, but not beyond that. The bugs this fixes have been there since weakrefs were introduced.
Diffstat (limited to 'Misc/NEWS')
-rw-r--r--Misc/NEWS21
1 files changed, 18 insertions, 3 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index c19d417..30fe4be 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,9 +12,20 @@ What's New in Python 2.4 alpha 1?
Core and builtins
-----------------
-- Compiler flags set in PYTHONSTARTUP are now active in __main__.
-
-- Added two builtin types, set() and frozenset().
+- Critical bugfix, for SF bug 839548: if a weakref with a callback,
+ its callback, and its weakly referenced object, all became part of
+ cyclic garbage during a single run of garbage collection, the order
+ in which they were torn down was unpredictable. It was possible for
+ the callback to see partially-torn-down objects, leading to immediate
+ segfaults, or, if the callback resurrected garbage objects, to
+ resurrect insane objects that caused segfaults (or other surprises)
+ later. In one sense this wasn't surprising, because Python's cyclic gc
+ had no knowledge of Python's weakref objects. It does now. When
+ weakrefs with callbacks become part of cyclic garbage now, those
+ weakrefs are cleared first. The callbacks don't trigger then,
+ preventing the problems. If you need callbacks to trigger, then just
+ as when cyclic gc is not involved, you need to write your code so
+ that weakref objects outlive the objects they weakly reference.
- Critical bugfix, for SF bug 840829: if cyclic garbage collection
happened to occur during a weakref callback for a new-style class
@@ -22,6 +33,10 @@ Core and builtins
in a debug build, a segfault occurred reliably very soon after).
This has been repaired.
+- Compiler flags set in PYTHONSTARTUP are now active in __main__.
+
+- Added two builtin types, set() and frozenset().
+
- Added a reversed() builtin function that returns a reverse iterator
over a sequence.