[Python-Dev] Python 2.6 on AMD64 recusion crash

Antoine Pitrou solipsis at pitrou.net
Fri Aug 22 11:11:10 CEST 2008


Hi Mark,

> I believe that this is the only path that allows us to go past an
> *actual* recursion level of 1/2 the nominated maximum value due to that
> other regression I mentioned.

I believe it's the wrong diagnosis :) If you look at
http://bugs.python.org/issue3373 and the small script I posted, there are paths
where the actual recursion level is still 1000.

Furthermore:

> Yes, exactly - that is the point.  If we got to 1000 Python would have
> prevented us going any further.  As it was, we ran out of stack space at
> 629. 
[...]
> The 32bit windows versions of Python do
> exactly this and nominate 2MB, which the 64bit builds inherited.

2MB divided by 629 is more than 3KB. It means each cPickle recursion level
consumes more than 3KB of stack. It sounds awful enough to be considered a bug
in cPickle, IMO. 2MB is plenty of stack space.

Regards

Antoine.




More information about the Python-Dev mailing list