Closed Bug 1264627 Opened 8 years ago Closed 8 years ago

m-c and c-c builds dying on maximum recursion depth exceeded

Categories

(Webtools Graveyard :: DXR, defect)

defect
Not set
normal

Tracking

(firefox48 affected)

RESOLVED FIXED
Tracking Status
firefox48 --- affected

People

(Reporter: fubar, Assigned: twointofive)

Details

See https://jenkins-dxr.mozilla.org/job/mozilla-central/198/

07:53:24 Traceback (most recent call last):
07:53:24   File "/builds/dxr-build-env/venv/bin/dxr", line 9, in <module>
07:53:24     load_entry_point('dxr==2.0', 'console_scripts', 'dxr')()
07:53:24   File "/builds/dxr-build-env/dxr/dxr/cli/__init__.py", line 29, in main
07:53:24     return dxr.invoke(ctx)
07:53:24   File "/builds/dxr-build-env/venv/local/lib/python2.7/site-packages/click/core.py", line 991, in invoke
07:53:24     return _process_result(sub_ctx.command.invoke(sub_ctx))
07:53:24   File "/builds/dxr-build-env/venv/local/lib/python2.7/site-packages/click/core.py", line 837, in invoke
07:53:24     return ctx.invoke(self.callback, **ctx.params)
07:53:24   File "/builds/dxr-build-env/venv/local/lib/python2.7/site-packages/click/core.py", line 464, in invoke
07:53:24     return callback(*args, **kwargs)
07:53:24   File "/builds/dxr-build-env/dxr/dxr/cli/index.py", line 26, in index
07:53:24     index_and_deploy_tree(tree, verbose=verbose)
07:53:24   File "/builds/dxr-build-env/dxr/dxr/build.py", line 64, in index_and_deploy_tree
07:53:24     index_name = index_tree(tree, es, verbose=verbose)
07:53:24   File "/builds/dxr-build-env/dxr/dxr/build.py", line 274, in index_tree
07:53:24     tree_indexers = farm_out('post_build')
07:53:24   File "/builds/dxr-build-env/dxr/dxr/build.py", line 183, in farm_out
07:53:24     show_progress(futures, 'Running %s' % method_name)]
07:53:24   File "/builds/dxr-build-env/venv/local/lib/python2.7/site-packages/concurrent/futures/_base.py", line 396, in result
07:53:24     return self.__get_result()
07:53:24   File "/builds/dxr-build-env/venv/local/lib/python2.7/site-packages/concurrent/futures/_base.py", line 355, in __get_result
07:53:24     raise type(self._exception), self._exception, self._traceback
07:53:24 Exception: Traceback (most recent call last):
07:53:24   File "/builds/dxr-build-env/dxr/dxr/build.py", line 51, in full_traceback
07:53:24     return callable(*args, **kwargs)
07:53:24   File "/builds/dxr-build-env/dxr/dxr/build.py", line 336, in save_scribbles
07:53:24     getattr(obj, method)()
07:53:24   File "/builds/dxr-build-env/dxr/dxr/plugins/python/indexers.py", line 65, in post_build
07:53:24     paths=paths)
07:53:24   File "/builds/dxr-build-env/dxr/dxr/plugins/python/analysis.py", line 46, in __init__
07:53:24     self._finish_analysis()
07:53:24   File "/builds/dxr-build-env/dxr/dxr/plugins/python/analysis.py", line 87, in _finish_analysis
07:53:24     for base_class in base_classes:
07:53:24   File "/builds/dxr-build-env/dxr/dxr/plugins/python/analysis.py", line 111, in get_base_classes
07:53:24     for base_parent in self.get_base_classes(base):

[...repeat a trillion times...]

07:53:24   File "/builds/dxr-build-env/dxr/dxr/plugins/python/analysis.py", line 109, in get_base_classes
07:53:24     base = self.normalize_name(base)
07:53:24 RuntimeError: maximum recursion depth exceeded
Assignee: nobody → twointofive
Commits pushed to master at https://github.com/mozilla/dxr

https://github.com/mozilla/dxr/commit/6e9449090820a1ba91dd7437fac9b107fa8bb61c
Cut off python name inheritance cycles.  Fixes bug 1264627.

The bug is caused by a class definition in
mozilla-central/testing/web-platform/tests/tools/py/py/_log/warning.py of
'class DeprecationWarning(DeprecationWarning):', where the base
DeprecationWarning is a built-in which is never explicitly imported.  We don't
distinguish between the new DeprecationWarning name and the built-in name, so
it looks to us like we have an inheritance cycle.  Similar bugs can occur
with longer cycles.

The fix here cuts those off so that we don't crash on indexing when we exceed
the allowed recursion depth.

https://github.com/mozilla/dxr/commit/0847d32f497dab996ba01731d154a2ebf72d23e6
Merge pull request #524 from kleintom/python_cycle

Cut off python name inheritance cycles.  Fixes bug 1264627.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Product: Webtools → Webtools Graveyard
You need to log in before you can comment on or make changes to this bug.