-
Bug
-
Resolution: Not an Issue
-
P4
-
None
-
openjdk8u212
-
x86_64
-
windows_10
A DESCRIPTION OF THE PROBLEM :
When I navigate to http://hg.openjdk.java.net/jdk8, I get a traceback saying that recursion limit has been exceeded. A similar but different traceback occurs on http://hg.openjdk.java.net/jdk8/jdk8 and every subdirectory following that I found. Relevant snippet from /jdk8:
<type 'exceptions.RuntimeError'> Python 2.6.9: /oj/bin/python
Wed Jun 12 17:01:18 2019
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/oj/lib/python2.6/site-packages/flup-1.0.3.dev_20110405-py2.6.egg/flup/server/fcgi_base.py in run(self=<flup.server.fcgi_base.Request object>)
572
573 try:
574 protocolStatus, appStatus = self.server.handler(self)
575 except:
576 traceback.print_exc(file=self.stderr)
protocolStatus undefined, appStatus undefined, self = <flup.server.fcgi_base.Request object>, self.server = <flup.server.fcgi.WSGIServer object>, self.server.handler = <bound method WSGIServer.handler of <flup.server.fcgi.WSGIServer object>>
/oj/lib/python2.6/site-packages/flup-1.0.3.dev_20110405-py2.6.egg/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi.WSGIServer object>, req=<flup.server.fcgi_base.Request object>)
1159 result = self.application(environ, start_response)
1160 try:
1161 for data in result:
1162 if data:
1163 write(data)
data undefined, result = <generator object increasingchunks>
/oj/lib/python2.6/site-packages/mercurial/util.py in increasingchunks(source=<generator object _flatten>, min=1024, max=65536)
360 buf = []
361 blen = 0
362 for chunk in source:
363 buf.append(chunk)
364 blen += len(chunk)
chunk = '</h3>\n\n', source = <generator object _flatten>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runtemplate>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j = 'repositories', global _flatten = <function _flatten>, i = <generator object if_>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object if_>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j undefined, global _flatten = <function _flatten>, i = <generator object _evalifliteral>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object _evalifliteral>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j undefined, global _flatten = <function _flatten>, i = <generator object runtemplate>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runtemplate>)
387 yield str(thing)
388 else:
389 for i in thing:
390 if isinstance(i, str):
391 yield i
i undefined, thing = <generator object runtemplate>
/oj/lib/python2.6/site-packages/mercurial/templater.py in runtemplate(context=<mercurial.templater.engine object>, mapping={'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, template=[(<function runsymbol>, 'indexentries')])
178 def runtemplate(context, mapping, template):
179 for func, data in template:
180 yield func(context, mapping, data)
181
182 def runmap(context, mapping, data):
func = <function runsymbol>, context = <mercurial.templater.engine object>, mapping = {'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, data = 'indexentries'
/oj/lib/python2.6/site-packages/mercurial/templater.py in runsymbol(context=<mercurial.templater.engine object>, mapping={'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, key='indexentries')
149 return v(**mapping)
150 if isinstance(v, types.GeneratorType):
151 v = list(v)
152 mapping[key] = v
153 return v
v = <generator object _flatten>, builtin list = <type 'list'>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runtemplate>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j undefined, global _flatten = <function _flatten>, i = <generator object runmap>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runmap>)
387 yield str(thing)
388 else:
389 for i in thing:
390 if isinstance(i, str):
391 yield i
i undefined, thing = <generator object runmap>
/oj/lib/python2.6/site-packages/mercurial/templater.py in runmap(context=<mercurial.templater.engine object>, mapping={'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, data='entries')
188 lm = mapping.copy()
189
190 for i in d:
191 if isinstance(i, dict):
192 lm.update(i)
i undefined, d = <generator object entries>
/oj/lib/python/hgweb/hgwebdir_mod.py in entries(sortcolumn='name', descending=False, fast=False, subdir='jdk8/', **map={'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', 'sort_name': '-name'})
413 sortkey = '%s_sort' % sortcolumn
414 rows = sorted(rows, key=lambda x: x[sortkey],
415 reverse=descending)
416 for row, parity in zip(rows, paritygen(self.stripecount)):
417 row['parity'] = parity
reverse undefined, descending = False
/oj/lib/python/hgweb/hgwebdir_mod.py in rawentries(subdir='jdk8/', fast=False, **map={'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', 'sort_name': '-name'})
349 u = None
350 else:
351 u = self.ui.copy()
352 try:
353 u.readconfig(os.path.join(path, '.hg', 'hgrc'))
u undefined, self = <hgweb.hgwebdir_mod.hgwebdir object>, self.ui = <mercurial.ui.ui object>, self.ui.copy = <bound method ui.copy of <mercurial.ui.ui object>>
/oj/lib/python2.6/site-packages/mercurial/ui.py in copy(self=<mercurial.ui.ui object>)
47
48 def copy(self):
49 return self.__class__(self)
50
51 def formatter(self, topic, opts):
self = <mercurial.ui.ui object>, self.__class__ = <class 'mercurial.ui.ui'>
/oj/lib/python2.6/site-packages/mercurial/ui.py in __init__(self=<mercurial.ui.ui object>, src=<mercurial.ui.ui object>)
34 self.environ = src.environ
35 self.callhooks = src.callhooks
36 self.fixconfig()
37 else:
38 self.fout = sys.stdout
self = <mercurial.ui.ui object>, self.fixconfig = <bound method ui.fixconfig of <mercurial.ui.ui object>>
/oj/lib/python2.6/site-packages/mercurial/ui.py in fixconfig(self=<mercurial.ui.ui object>, root='/oj/hg/web', section=None)
134 if section in (None, 'ui'):
135 # update ui options
136 self.debugflag = self.configbool('ui', 'debug')
137 self.verbose = self.debugflag or self.configbool('ui', 'verbose')
138 self.quiet = not self.debugflag and self.configbool('ui', 'quiet')
self = <mercurial.ui.ui object>, self.debugflag = False, self.configbool = <bound method ui.configbool of <mercurial.ui.ui object>>
/oj/lib/python2.6/site-packages/mercurial/ui.py in configbool(self=<mercurial.ui.ui object>, section='ui', name='debug', default=False, untrusted=False)
225 """
226
227 v = self.config(section, name, None, untrusted)
228 if v is None:
229 return default
v undefined, self = <mercurial.ui.ui object>, self.config = <bound method ui.wrap of <mercurial.ui.ui object>>, section = 'ui', name = 'debug', builtin None = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.wrap>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
/oj/lib/python2.6/site-packages/hgext/zeroconf/__init__.py in config(orig=<unbound method ui.wrap>, self=<mercurial.ui.ui object>, section='ui', key='debug', default=None, untrusted=False)
157 if name == key:
158 return path
159 return orig(self, section, key, default, untrusted)
160
161 def configitems(orig, self, section, untrusted=False):
orig = <unbound method ui.wrap>, self = <mercurial.ui.ui object>, section = 'ui', key = 'debug', default = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.wrap>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
/oj/lib/python2.6/site-packages/hgext/zeroconf/__init__.py in config(orig=<unbound method ui.wrap>, self=<mercurial.ui.ui object>, section='ui', key='debug', default=None, untrusted=False)
157 if name == key:
158 return path
159 return orig(self, section, key, default, untrusted)
160
161 def configitems(orig, self, section, untrusted=False):
orig = <unbound method ui.wrap>, self = <mercurial.ui.ui object>, section = 'ui', key = 'debug', default = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.wrap>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
... continues for several thousand lines ...
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.config>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
/oj/lib/python2.6/site-packages/hgext/zeroconf/__init__.py in config(orig=<unbound method ui.config>, self=<mercurial.ui.ui object>, section='ui', key='debug', default=None, untrusted=False)
157 if name == key:
158 return path
159 return orig(self, section, key, default, untrusted)
160
161 def configitems(orig, self, section, untrusted=False):
orig = <unbound method ui.config>, self = <mercurial.ui.ui object>, section = 'ui', key = 'debug', default = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/ui.py in config(self=<mercurial.ui.ui object>, section='ui', name='debug', default=None, untrusted=False)
171
172 def config(self, section, name, default=None, untrusted=False):
173 if isinstance(name, list):
174 alternates = name
175 else:
builtin isinstance = <built-in function isinstance>, name = 'debug', builtin list = <type 'list'>
<type 'exceptions.RuntimeError'>: maximum recursion depth exceeded while calling a Python object
args = ('maximum recursion depth exceeded while calling a Python object',)
message = 'maximum recursion depth exceeded while calling a Python object'
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Navigate to http://hg.openjdk.java.net/jdk8.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I expected to see a listing of the jdk8 source code.
ACTUAL -
I saw a crash by the python2 interpreter hosting the website.
FREQUENCY : always
When I navigate to http://hg.openjdk.java.net/jdk8, I get a traceback saying that recursion limit has been exceeded. A similar but different traceback occurs on http://hg.openjdk.java.net/jdk8/jdk8 and every subdirectory following that I found. Relevant snippet from /jdk8:
<type 'exceptions.RuntimeError'> Python 2.6.9: /oj/bin/python
Wed Jun 12 17:01:18 2019
A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
/oj/lib/python2.6/site-packages/flup-1.0.3.dev_20110405-py2.6.egg/flup/server/fcgi_base.py in run(self=<flup.server.fcgi_base.Request object>)
572
573 try:
574 protocolStatus, appStatus = self.server.handler(self)
575 except:
576 traceback.print_exc(file=self.stderr)
protocolStatus undefined, appStatus undefined, self = <flup.server.fcgi_base.Request object>, self.server = <flup.server.fcgi.WSGIServer object>, self.server.handler = <bound method WSGIServer.handler of <flup.server.fcgi.WSGIServer object>>
/oj/lib/python2.6/site-packages/flup-1.0.3.dev_20110405-py2.6.egg/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi.WSGIServer object>, req=<flup.server.fcgi_base.Request object>)
1159 result = self.application(environ, start_response)
1160 try:
1161 for data in result:
1162 if data:
1163 write(data)
data undefined, result = <generator object increasingchunks>
/oj/lib/python2.6/site-packages/mercurial/util.py in increasingchunks(source=<generator object _flatten>, min=1024, max=65536)
360 buf = []
361 blen = 0
362 for chunk in source:
363 buf.append(chunk)
364 blen += len(chunk)
chunk = '</h3>\n\n', source = <generator object _flatten>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runtemplate>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j = 'repositories', global _flatten = <function _flatten>, i = <generator object if_>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object if_>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j undefined, global _flatten = <function _flatten>, i = <generator object _evalifliteral>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object _evalifliteral>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j undefined, global _flatten = <function _flatten>, i = <generator object runtemplate>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runtemplate>)
387 yield str(thing)
388 else:
389 for i in thing:
390 if isinstance(i, str):
391 yield i
i undefined, thing = <generator object runtemplate>
/oj/lib/python2.6/site-packages/mercurial/templater.py in runtemplate(context=<mercurial.templater.engine object>, mapping={'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, template=[(<function runsymbol>, 'indexentries')])
178 def runtemplate(context, mapping, template):
179 for func, data in template:
180 yield func(context, mapping, data)
181
182 def runmap(context, mapping, data):
func = <function runsymbol>, context = <mercurial.templater.engine object>, mapping = {'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, data = 'indexentries'
/oj/lib/python2.6/site-packages/mercurial/templater.py in runsymbol(context=<mercurial.templater.engine object>, mapping={'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, key='indexentries')
149 return v(**mapping)
150 if isinstance(v, types.GeneratorType):
151 v = list(v)
152 mapping[key] = v
153 return v
v = <generator object _flatten>, builtin list = <type 'list'>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runtemplate>)
394 yield str(i)
395 elif i is not None:
396 for j in _flatten(i):
397 yield j
398
j undefined, global _flatten = <function _flatten>, i = <generator object runmap>
/oj/lib/python2.6/site-packages/mercurial/templater.py in _flatten(thing=<generator object runmap>)
387 yield str(thing)
388 else:
389 for i in thing:
390 if isinstance(i, str):
391 yield i
i undefined, thing = <generator object runmap>
/oj/lib/python2.6/site-packages/mercurial/templater.py in runmap(context=<mercurial.templater.engine object>, mapping={'descending': False, 'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', ...}, data='entries')
188 lm = mapping.copy()
189
190 for i in d:
191 if isinstance(i, dict):
192 lm.update(i)
i undefined, d = <generator object entries>
/oj/lib/python/hgweb/hgwebdir_mod.py in entries(sortcolumn='name', descending=False, fast=False, subdir='jdk8/', **map={'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', 'sort_name': '-name'})
413 sortkey = '%s_sort' % sortcolumn
414 rows = sorted(rows, key=lambda x: x[sortkey],
415 reverse=descending)
416 for row, parity in zip(rows, paritygen(self.stripecount)):
417 row['parity'] = parity
reverse undefined, descending = False
/oj/lib/python/hgweb/hgwebdir_mod.py in rawentries(subdir='jdk8/', fast=False, **map={'entries': <function entries>, 'fastentries': <function fastentries>, 'header': ['<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN... xml:lang="en-US">\n<head>\n<link rel="icon" href="', '/static/', 'nanoduke.ico" />\n<meta name="robots" content="index, nofollow" />\n<link rel="stylesheet" href="', '/static/', 'style-paper.css" type="text/css" />\n<script type="text/javascript" src="', '/static/', 'mercurial.js"></script>\n'], 'pagelogo': ['<div class="logo"><img src="', '/static/', 'duke-pipes.png', '" border=0 alt="Duke!"/></div>'], 'pathdef': <listreverseiterator object>, 'projects': <function projects>, 'sort_contact': 'contact', 'sort_description': 'description', 'sort_lastchange': 'lastchange', 'sort_name': '-name'})
349 u = None
350 else:
351 u = self.ui.copy()
352 try:
353 u.readconfig(os.path.join(path, '.hg', 'hgrc'))
u undefined, self = <hgweb.hgwebdir_mod.hgwebdir object>, self.ui = <mercurial.ui.ui object>, self.ui.copy = <bound method ui.copy of <mercurial.ui.ui object>>
/oj/lib/python2.6/site-packages/mercurial/ui.py in copy(self=<mercurial.ui.ui object>)
47
48 def copy(self):
49 return self.__class__(self)
50
51 def formatter(self, topic, opts):
self = <mercurial.ui.ui object>, self.__class__ = <class 'mercurial.ui.ui'>
/oj/lib/python2.6/site-packages/mercurial/ui.py in __init__(self=<mercurial.ui.ui object>, src=<mercurial.ui.ui object>)
34 self.environ = src.environ
35 self.callhooks = src.callhooks
36 self.fixconfig()
37 else:
38 self.fout = sys.stdout
self = <mercurial.ui.ui object>, self.fixconfig = <bound method ui.fixconfig of <mercurial.ui.ui object>>
/oj/lib/python2.6/site-packages/mercurial/ui.py in fixconfig(self=<mercurial.ui.ui object>, root='/oj/hg/web', section=None)
134 if section in (None, 'ui'):
135 # update ui options
136 self.debugflag = self.configbool('ui', 'debug')
137 self.verbose = self.debugflag or self.configbool('ui', 'verbose')
138 self.quiet = not self.debugflag and self.configbool('ui', 'quiet')
self = <mercurial.ui.ui object>, self.debugflag = False, self.configbool = <bound method ui.configbool of <mercurial.ui.ui object>>
/oj/lib/python2.6/site-packages/mercurial/ui.py in configbool(self=<mercurial.ui.ui object>, section='ui', name='debug', default=False, untrusted=False)
225 """
226
227 v = self.config(section, name, None, untrusted)
228 if v is None:
229 return default
v undefined, self = <mercurial.ui.ui object>, self.config = <bound method ui.wrap of <mercurial.ui.ui object>>, section = 'ui', name = 'debug', builtin None = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.wrap>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
/oj/lib/python2.6/site-packages/hgext/zeroconf/__init__.py in config(orig=<unbound method ui.wrap>, self=<mercurial.ui.ui object>, section='ui', key='debug', default=None, untrusted=False)
157 if name == key:
158 return path
159 return orig(self, section, key, default, untrusted)
160
161 def configitems(orig, self, section, untrusted=False):
orig = <unbound method ui.wrap>, self = <mercurial.ui.ui object>, section = 'ui', key = 'debug', default = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.wrap>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
/oj/lib/python2.6/site-packages/hgext/zeroconf/__init__.py in config(orig=<unbound method ui.wrap>, self=<mercurial.ui.ui object>, section='ui', key='debug', default=None, untrusted=False)
157 if name == key:
158 return path
159 return orig(self, section, key, default, untrusted)
160
161 def configitems(orig, self, section, untrusted=False):
orig = <unbound method ui.wrap>, self = <mercurial.ui.ui object>, section = 'ui', key = 'debug', default = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.wrap>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
... continues for several thousand lines ...
/oj/lib/python2.6/site-packages/mercurial/extensions.py in wrap(*args=(<mercurial.ui.ui object>, 'ui', 'debug', None, False), **kwargs={})
194 assert util.safehasattr(wrapper, '__call__')
195 def wrap(*args, **kwargs):
196 return wrapper(origfn, *args, **kwargs)
197
198 origfn = getattr(container, funcname)
wrapper = <function config>, origfn = <unbound method ui.config>, args = (<mercurial.ui.ui object>, 'ui', 'debug', None, False), kwargs = {}
/oj/lib/python2.6/site-packages/hgext/zeroconf/__init__.py in config(orig=<unbound method ui.config>, self=<mercurial.ui.ui object>, section='ui', key='debug', default=None, untrusted=False)
157 if name == key:
158 return path
159 return orig(self, section, key, default, untrusted)
160
161 def configitems(orig, self, section, untrusted=False):
orig = <unbound method ui.config>, self = <mercurial.ui.ui object>, section = 'ui', key = 'debug', default = None, untrusted = False
/oj/lib/python2.6/site-packages/mercurial/ui.py in config(self=<mercurial.ui.ui object>, section='ui', name='debug', default=None, untrusted=False)
171
172 def config(self, section, name, default=None, untrusted=False):
173 if isinstance(name, list):
174 alternates = name
175 else:
builtin isinstance = <built-in function isinstance>, name = 'debug', builtin list = <type 'list'>
<type 'exceptions.RuntimeError'>: maximum recursion depth exceeded while calling a Python object
args = ('maximum recursion depth exceeded while calling a Python object',)
message = 'maximum recursion depth exceeded while calling a Python object'
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Navigate to http://hg.openjdk.java.net/jdk8.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I expected to see a listing of the jdk8 source code.
ACTUAL -
I saw a crash by the python2 interpreter hosting the website.
FREQUENCY : always