Issue2431

classification
Title: tox not working because of zero width bug in Jython sre
Type: Severity: normal
Components: Versions: Jython 2.7
Milestone:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: darjus Nosy List: darjus, zyasoft
Priority: urgent Keywords:

Created on 2015-11-16.21:58:39 by darjus, last changed 2015-12-24.17:34:19 by zyasoft.

Messages
msg10483 (view) Author: Darjus Loktevic (darjus) Date: 2015-11-16.21:58:38
Test to repro:

+    def test_pip_comment_re(self):
+        COMMENT_RE = re.compile(r'(\A)+', re.DEBUG)
+        requirements = """"""
+        self.assertEqual(COMMENT_RE.search(requirements).groups(), requirements)
msg10487 (view) Author: Jim Baker (zyasoft) Date: 2015-11-20.21:43:55
Possibly related is the regex used by Bottle simple templates (https://github.com/bottlepy/bottle/blob/master/bottle.py#L3631):

Easy to reproduce:

$ jython -m pip install bottle
Collecting bottle
  Downloading bottle-0.12.9.tar.gz (69kB)
    100% |████████████████████████████████| 69kB 356kB/s 
Installing collected packages: bottle
  Running setup.py install for bottle
Successfully installed bottle-0.12.9
$ jython
Jython 2.7.1b2 (default:37578797caba, Nov 20 2015, 14:09:15) 
[Java HotSpot(TM) 64-Bit Server VM (Oracle Corporation)] on java1.7.0_80
Type "help", "copyright", "credits" or "license" for more information.
>>> from bottle import template
>>> template('<b>Hello {{name}}</b>!', name='Jython')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 3609, in template
    return TEMPLATES[tplid].render(kwargs)
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 3399, in render
    self.execute(stdout, env)
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 3386, in execute
    eval(self.co, env)
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 189, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 3344, in co
    return compile(self.code, self.filename or '<string>', 'exec')
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 189, in __get__
    value = obj.__dict__[self.func.__name__] = self.func(obj)
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 3358, in code
    code = parser.translate()
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 3487, in translate
    self.flush_text()
  File "/home/jbaker/jythondev/jython27/dist/Lib/site-packages/bottle.py", line 3542, in flush_text
    for m in self.re_inl.finditer(text):
RuntimeError: maximum recursion depth exceeded (Java StackOverflowError)
>>> 
KeyboardInterrupt
msg10488 (view) Author: Jim Baker (zyasoft) Date: 2015-11-21.01:18:43
Looks good with the fix in https://hg.python.org/jython/rev/636b124a7587
History
Date User Action Args
2015-12-24 17:34:19zyasoftsetstatus: pending -> closed
2015-11-21 01:18:44zyasoftsetstatus: open -> pending
resolution: fixed
messages: + msg10488
2015-11-20 21:44:05zyasoftsetmessages: - msg10486
2015-11-20 21:43:55zyasoftsetmessages: + msg10487
2015-11-20 21:41:19zyasoftsetnosy: + zyasoft
messages: + msg10486
2015-11-16 21:59:04darjussetpriority: urgent
assignee: darjus
versions: + Jython 2.7
2015-11-16 21:58:39darjuscreate