[issue3338] cPickle segfault with deep recursion

2008-08-21 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: Well, it's definitely a bug, or inconsistency, if you like, between cPickle and pickle. My gut says that probably there is some fault in cPickle that is causing this. When pickle.py can recurse to 10,000+ and cPickle segfaults a

[issue3373] sys recursion limit a lot shorter on trunk?

2008-07-16 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: Hi Trent, No, my build did not invoke --with-pydebug. In other words, the process I used was simply: svn co http://svn.python.org/projects/python/trunk python-trunk cd python-trunk ./configure --prefix=/home/dixond/throwaway make make i

[issue3338] cPickle segfault with deep recursion

2008-07-16 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: That is a very interesting observation (x4), especially in light of #3373 Unfortunately I don't really have the (p|g)db -foo to debug either of these properly :( ___ Python tracker <[EMAIL PRO

[issue3373] sys recursion limit a lot shorter on trunk?

2008-07-15 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: Hmmm, I'm not certain I agree; on 2.4/2.5 doing rec(999) hits the recursion limit, as expected (makes sense that there would be an item or two on the stack prior to the immediate call to rec() ). This looks more like the interprete

[issue2702] pickling of large recursive structures crashes cPickle

2008-07-15 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: Please check issue #3338 for a dup of this issue with a testcase that continues to fail after the application of r64595 -- nosy: +esrever_otua ___ Python tracker <[EMAIL PROTECTE

[issue3338] cPickle segfault with deep recursion

2008-07-15 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: No, I've just tested /trunk, including r64595, and the Segmentation fault is still present, eg: Python 2.6b1+ (trunk:64998, Jul 16 2008, 15:50:22) [GCC 4.1.1 20070105 (Red Hat 4.1.1-52)] on linux2 Type "help", &quo

[issue3373] sys recursion limit a lot shorter on trunk?

2008-07-15 Thread Darryl Dixon
New submission from Darryl Dixon <[EMAIL PROTECTED]>: The system recursion limit seems to be wildly different in its behaviour on 2.6/trunk versus, for example, 2.5 or 2.4, EG: On Python 2.4: Python 2.4.3 (#1, Dec 11 2006, 11:38:52) [GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2 Type

[issue3338] cPickle segfault with deep recursion

2008-07-15 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: Hmm, looks like this dup's 2702... Funny how two people find the same thing within a short window of each other *sighs* so looks like it's probably fixed. I'll test /trunk against the failing testcase below and ma

[issue3338] cPickle segfault with deep recursion

2008-07-12 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: Happens with Python 2.5.2 on 64bit also: Python 2.5.2 (r252:60911, Apr 21 2008, 11:17:30) [GCC 4.2.3 (Ubuntu 4.2.3-2ubuntu7)] on linux2 Type "help", "copyright", "credits" or "license&q

[issue3338] cPickle segfault with deep recursion

2008-07-10 Thread Darryl Dixon
New submission from Darryl Dixon <[EMAIL PROTECTED]>: In at least Python 2.4, using cPickle.Pickler to try and pickle a nested chain of objects more than about 2590 objects deep causes the Python interpreter to segfault. This doesn't seem to happen when using the pure Python pickle

[issue2612] file.tell() returns Long usually, Int if subclassed

2008-04-10 Thread Darryl Dixon
Darryl Dixon <[EMAIL PROTECTED]> added the comment: Thanks Benjamin, that is a very interesting feature that I can't find documented anywhere. Is there perhaps a documentation bug that can arise from this? There are various places where the differences between old and new-style

[issue2612] file.tell() returns Long usually, Int if subclassed

2008-04-10 Thread Darryl Dixon
New submission from Darryl Dixon <[EMAIL PROTECTED]>: Compare: >>> class y(file): ... def __init__(self, name): ... file.__init__(self, name) ... def __len__(self): ... self.seek(0, 2) ... return self.tell() ... >>> n = y('/tmp/lo