Issue1768988

classification
Title: isinstance, issubclass allow a StackOverflow
Type: Severity: normal
Components: Core Versions:
Milestone:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: ayeshaiqbal, cgroves
Priority: normal Keywords: test failure causes

Created on 2007-08-07.05:40:04 by cgroves, last changed 2007-08-20.06:34:01 by cgroves.

Messages
msg1824 (view) Author: Charlie Groves (cgroves) Date: 2007-08-07.05:40:04
If given a tuple, isinstance and issubclass call themselves with each item of the tuple.  If given a nested tuple, they can recurse into themselves many times.  test_isinstance checks that a deeply nested tuple doesn't cause a stack blowup.  Jython's isinstance and issubclass don't check how many times they've recursed so this causes a StackOverflow.  This test is commented out for now as explained in http://wiki.python.org/jython/JythonDeveloperGuide/VersionTransitionTestExclusions
msg1825 (view) Author: ayesha (ayeshaiqbal) Date: 2007-08-10.07:36:42
Since python sets a default recursion limit of 1000 for isinstance and issubclass functions in ceval.c the same logic can be implemented in jython. On reaching the recursion limit an OverflowError can be raised
msg1826 (view) Author: Charlie Groves (cgroves) Date: 2007-08-12.04:16:36
Jython has a recursionlimit variable just like CPython: PySystemState.recursionlimit.  It's just a matter of actually implementing what you recommended.
msg1827 (view) Author: Charlie Groves (cgroves) Date: 2007-08-20.06:34:01
Fixed in r3436.
History
Date User Action Args
2007-08-07 05:40:04cgrovescreate