[ python-Bugs-927248 ] Python segfaults when freeing " deep" objects

SourceForge.net noreply at sourceforge.net
Tue Jan 10 22:54:28 CET 2006


Bugs item #927248, was opened at 2004-04-01 06:07
Message generated for change (Comment added) made by birkenfeld
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=927248&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Interpreter Core
Group: Python 2.3
Status: Open
Resolution: None
>Priority: 6
Submitted By: Jp Calderone (kuran)
Assigned to: Nobody/Anonymous (nobody)
Summary: Python segfaults when freeing "deep" objects

Initial Comment:
An example to produce this behavior:

>>> f = lambda: None
>>> for i in range(1000000):
...     f = f.__call__
... 
>>> f = None
Segmentation fault


----------------------------------------------------------------------

>Comment By: Georg Brandl (birkenfeld)
Date: 2006-01-10 22:54

Message:
Logged In: YES 
user_id=1188172

CVS HEAD of 2006/01/10 still segfaults (here GCC 3.4.5).

Segfault occurs at wrapper_dealloc in descrobject.c.

----------------------------------------------------------------------

Comment By: Walter Dörwald (doerwalter)
Date: 2004-06-02 21:25

Message:
Logged In: YES 
user_id=89016

Python CVS from 2004-06-02 seems to work:
Python 2.4a0 (#5, Jun  2 2004, 20:23:30) 
[GCC 2.96 20000731 (Red Hat Linux 7.3 2.96-113)] on linux2
Type "help", "copyright", "credits" or "license" for more 
information.
>>> f = lambda: None
>>> for x in xrange(1000000):
...  f = f.__call__
... 
>>> f
<method-wrapper object at 0x4259478c>
>>> f = None
>>> f
>>>

----------------------------------------------------------------------

Comment By: Jacob Smullyan (smulloni)
Date: 2004-04-08 05:20

Message:
Logged In: YES 
user_id=108556

Python CVS as of April 7th consistently segfaults with the
above example for me:

smulloni at bracknell src $ ~/apps/python-cvs/bin/python
Python 2.4a0 (#1, Apr  7 2004, 23:10:34) 
[GCC 3.3.2 20031218 (Gentoo Linux 3.3.2-r5,
propolice-3.3-7)] on linux2
Type "help", "copyright", "credits" or "license" for more
information.
>>> f=lambda: None
>>> for x in xrange(1000000):
...     f=f.__call__
... 
>>> f=None
Segmentation fault

Of course, maybe that's a good thing :).

----------------------------------------------------------------------

Comment By: Jim Jewett (jimjjewett)
Date: 2004-04-05 02:32

Message:
Logged In: YES 
user_id=764593

CVS for 2.4 has comments for (and a fix for) problems similar 
to this.  Does the bug still exist with that source code?

----------------------------------------------------------------------

Comment By: Hye-Shik Chang (perky)
Date: 2004-04-01 07:21

Message:
Logged In: YES 
user_id=55188

Oh. my patch doesn't fix another scenario that using
recursive by two or more types of slots. So I remove.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=927248&group_id=5470


More information about the Python-bugs-list mailing list