[Python-bugs-list] [ python-Bugs-437472 ] MacPy21: sre "recursion limit" bug

SourceForge.net noreply@sourceforge.net
Sun, 11 May 2003 16:54:22 -0700


Bugs item #437472, was opened at 2001-06-29 14:50
Message generated for change (Comment added) made by bcannon
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=437472&group_id=5470

Category: Regular Expressions
Group: Platform-specific
>Status: Closed
>Resolution: Invalid
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
>Assigned to: Brett Cannon (bcannon)
Summary: MacPy21: sre "recursion limit" bug

Initial Comment:
As of Python 2.0, the sre module had bug wherein a 
"RuntimeError: maximum recursion limit exceeded" would 
be raised whenever an expression matched something on 
the order of 16,000+ characters. The bug, nominally fixed 
in time for Python 2.1, is still present in MacPython 2.1, as 
evidenced by the following transcript copied from an 
interactive session with the interpreter. Note success with 
pre module, however.

It makes me curious, since the bug appears to be fixed in 
WinPython 2.1, whether the correct source was used 
when compiling MacPython 2.1....

==========
Python 2.1 (#92, Apr 24 2001, 23:59:23)  [CW PPC GUSI2 
THREADS] on mac

>>> import sre, pre, string

>>> l = ["XXX", "%"*20000, "XXX"]
>>> sre_regex = sre.compile(r"XXX.*?XXX")
>>> match_object = sre_regex.search(string.join(l))
Traceback (most recent call last):
  File "<stdin>", line 1, in ?
RuntimeError: maximum recursion limit exceeded

>>> ### Above error first reported upon release of sre 
with Python 2.0 ###
>>> ### Bug supposedly fixed in Python 2.0.1 release (no 
Mac version, I know) ###


>>> pre_regex = pre.compile(r"XXX.*XXX")
>>> match_object = pre_regex.search(string.join(l))
>>> match_object
<pre.MatchObject instance at 0x04619c90>

>>> ### Note above success with pre module instead of sre 
###
>>> ### Wrong sre module source used when compiling 
MacPython 2.1? ###

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

>Comment By: Brett Cannon (bcannon)
Date: 2003-05-11 16:54

Message:
Logged In: YES 
user_id=357491

I agree with Gary (herron); this is not a bug but a limitation of the system 
and the re module.  I am closing this bug as invalid.

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

Comment By: Gary Herron (herron)
Date: 2003-05-04 23:46

Message:
Logged In: YES 
user_id=395736

This was not a bug, but rather a limitation of the sre engine.  That 
limitation has now been removed (for simple used of "*?" as 
seen here) in Python 2.3beta1. 

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

Comment By: Gary Herron (herron)
Date: 2003-05-04 10:49

Message:
Logged In: YES 
user_id=395736

This was not a bug, but rather a limitation of the sre engine.  That 
limitation has now been removed (for simple used of "*?" as 
seen here) in Python 2.3beta1. 

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

Comment By: Jack Jansen (jackjansen)
Date: 2001-07-02 01:58

Message:
Logged In: YES 
user_id=45365

When I try this in a MacPython build from the CVS repository
the sre example does not crash, but match_object ends up as
None. Also not the behaviour I expect...

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

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