[Python-bugs-list] [ python-Bugs-690622 ] test_cpickle overflows stack on MacOS9
SourceForge.net
noreply@sourceforge.net
Fri, 21 Feb 2003 11:55:24 -0800
Bugs item #690622, was opened at 2003-02-21 07:15
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=690622&group_id=5470
Category: None
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Jack Jansen (jackjansen)
>Assigned to: Guido van Rossum (gvanrossum)
Summary: test_cpickle overflows stack on MacOS9
Initial Comment:
Test_cpickle overflows the stack and hangs the interpreter on MacOS9. This happens in test_nonrecursive_deep(), in the dumps() call.
I think there's a PyOS_CheckStack() call missing somewhere in cPickle.
Also, it's probably a good idea to lower the recursion to 50 (the test passes as long as the recusrion is less than 65 deep), at least on MacOS9.
----------------------------------------------------------------------
>Comment By: Tim Peters (tim_one)
Date: 2003-02-21 14:55
Message:
Logged In: YES
user_id=31435
There are no PyOS_CheckStack() calls in cPickle, and I'm
not sure anyone really wants to bother adding them (cPickle
is meant to be high-performance, not safe <wink>).
That test is consuming more stack frames than it used to,
because each level of list pickling now bites another stack
frame to call the new "batch list elements" routine.
Reducing to 50 doesn't fly because cPickle's internal
PY_CPICKLE_FAST_LIMIT #define happens to be 50 now,
and the purpose of test_nonrecursive_deep is to be sure that
non-cyclic containers get pickled OK in a "fast" pickler even if
they're nested as deeply as PY_CPICKLE_FAST_LIMIT.
Assigning to Guido for further cogitation on his day off <wink>.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=690622&group_id=5470