From: Mike C. F. <mcf...@ro...> - 2003-12-31 09:09:00
|
Drew Perttula wrote: >Shouldn't that green-text warning on http://pydispatcher.sourceforge.net/ >say 2.3.2 and 2.3.3 (not 2.2.2 / 2.2.3)? I don't recall the 2.2 series >having a weakref problem. > > 2.2.2 and below did, in fact, have a weakref problem, (segfaults during destruction of weakrefs). 2.2.3 fixed that, thanks to Tim Peters. That fix should be in all 2.3 versions as far as I know. >While I'm at it, perhaps we can have a more informative message. I want >to explain the exact risk to people who were about to use a broken py >version, and also to avoid scaring users of pre-2.3, who I think are >not be affected at all (right?): > > Nope, they are affected. The weakref problem being referred to in that message was in 2.2.2. > It is strongly recommended that you use Python 2.3.3 or later > when using PyDispatcher. Python 2.3 versions before 2.3.3 may > seg fault upon program exit due to a problem with the cleanup > routines. Python-2.3.3/Modules/gc_weakref.txt describes the problem. > > There is a different weakref bug in 2.3, fixed in 2.3.3. I just checked in revised index.html with this text, if all agree I'll promote to the web-site when I get a chance (or Patrick can do it if he prefers): PyDispatcher represents one of the more involved usage patterns for Python weakref objects. We have discovered a few problems in weakref operation of which users of the package should be aware. Python 2.2.2 (and earlier) weak reference implementations have a subtle bug <https://sourceforge.net/tracker/?group_id=5470&atid=105470&func=detail&aid=742911> in their weakref destructor code which can cause memory access errors (aka segfaults) on program shutdown. If you are using Python 2.2, it is *strongly recommended* that you use *Python 2.2.3* or later when using PyDispatcher. Note that this will not address the following issue. Python 2.3.2 (and earlier) has a different (even more subtle) bug <http://cvs.sourceforge.net/viewcvs.py/python/python/dist/src/Modules/gc_weakref.txt?rev=2.1&view=auto> in the weakref destructor code which, again, can cause segfaults. If you are using Python 2.3, it is *strongly recommended* that you use *Python 2.3.3* or later when using PyDispatcher. This bug-fix will not be ported back to the Python 2.2.x branch, so if you are using Python 2.2.3 you may encounter this situation. I'm not sure if the "strongly" is required for the 2.3 recommendation. 2.2.2- will almost certainly fail if you push into any sort of large-scale deployment, while the 2.3.2- is a rarer bug AFAICS. May way to include "rare" in the description of the 2.3 situation somewhere as well. Enjoy yourselves, Mike _______________________________________ Mike C. Fletcher Designer, VR Plumber, Coder http://members.rogers.com/mcfletch/ |