gate-ironic-docs failed due to TypeError from sphinx

Bug #1361295 reported by Ruby Loo
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
High
Unassigned

Bug Description

In http://logs.openstack.org/32/111232/16/gate/gate-ironic-docs/cc53c0d/console.html, sphinx is failing due to:

2014-08-25 15:44:12.171 | Running Sphinx v1.2.2
2014-08-25 15:44:12.819 | Initializing sphinxcontrib.pecanwsme.rest
2014-08-25 15:44:12.824 | loading pickled environment... not yet created
2014-08-25 15:44:12.835 | loading intersphinx inventory from http://docs.python.org/objects.inv...
2014-08-25 15:44:13.650 | Using openstack theme from /home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/oslosphinx/theme
2014-08-25 15:44:13.660 | building [html]: all source files
2014-08-25 15:44:13.670 | updating environment: 222 added, 0 changed, 0 removed
2014-08-25 15:44:13.671 | reading sources... [ 0%] api/autoindex
2014-08-25 15:44:13.683 | reading sources... [ 0%] api/ironic.api.acl
2014-08-25 15:44:13.862 | reading sources... [ 1%] api/ironic.api.app
2014-08-25 15:44:14.049 | Traceback (most recent call last):
2014-08-25 15:44:14.052 | File "setup.py", line 30, in <module>
2014-08-25 15:44:14.065 | pbr=True)
2014-08-25 15:44:14.074 | File "/usr/lib/python2.7/distutils/core.py", line 151, in setup
2014-08-25 15:44:14.079 | dist.run_commands()
2014-08-25 15:44:14.081 | File "/usr/lib/python2.7/distutils/dist.py", line 953, in run_commands
2014-08-25 15:44:14.092 | self.run_command(cmd)
2014-08-25 15:44:14.097 | File "/usr/lib/python2.7/distutils/dist.py", line 972, in run_command
2014-08-25 15:44:14.103 | cmd_obj.run()
2014-08-25 15:44:14.104 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/pbr/packaging.py", line 756, in run
2014-08-25 15:44:14.111 | setup_command.BuildDoc.run(self)
2014-08-25 15:44:14.116 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/setup_command.py", line 161, in run
2014-08-25 15:44:14.125 | app.build(force_all=self.all_files)
2014-08-25 15:44:14.126 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/application.py", line 208, in build
2014-08-25 15:44:14.128 | self.builder.build_all()
2014-08-25 15:44:14.131 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 177, in build_all
2014-08-25 15:44:14.136 | self.build(None, summary='all source files', method='all')
2014-08-25 15:44:14.141 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 234, in build
2014-08-25 15:44:14.154 | purple, length):
2014-08-25 15:44:14.156 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 134, in status_iterator
2014-08-25 15:44:14.169 | for item in iterable:
2014-08-25 15:44:14.172 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/environment.py", line 477, in update_generator
2014-08-25 15:44:14.176 | self.read_doc(docname, app=app)
2014-08-25 15:44:14.182 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/environment.py", line 624, in read_doc
2014-08-25 15:44:14.189 | pub.publish()
2014-08-25 15:44:14.192 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/core.py", line 217, in publish
2014-08-25 15:44:14.198 | self.settings)
2014-08-25 15:44:14.199 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/readers/__init__.py", line 72, in read
2014-08-25 15:44:14.206 | self.parse()
2014-08-25 15:44:14.209 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/readers/__init__.py", line 78, in parse
2014-08-25 15:44:14.220 | self.parser.parse(self.input, document)
2014-08-25 15:44:14.224 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/__init__.py", line 172, in parse
2014-08-25 15:44:14.228 | self.statemachine.run(inputlines, document, inliner=self.inliner)
2014-08-25 15:44:14.229 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 170, in run
2014-08-25 15:44:14.235 | input_source=document['source'])
2014-08-25 15:44:14.237 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/statemachine.py", line 239, in run
2014-08-25 15:44:14.244 | context, state, transitions)
2014-08-25 15:44:14.250 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/statemachine.py", line 460, in check_line
2014-08-25 15:44:14.253 | return method(match, context, next_state)
2014-08-25 15:44:14.254 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2726, in underline
2014-08-25 15:44:14.269 | self.section(title, source, style, lineno - 1, messages)
2014-08-25 15:44:14.269 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 327, in section
2014-08-25 15:44:14.278 | self.new_subsection(title, lineno, messages)
2014-08-25 15:44:14.278 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 395, in new_subsection
2014-08-25 15:44:14.283 | node=section_node, match_titles=True)
2014-08-25 15:44:14.293 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 282, in nested_parse
2014-08-25 15:44:14.302 | node=node, match_titles=match_titles)
2014-08-25 15:44:14.303 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 195, in run
2014-08-25 15:44:14.307 | results = StateMachineWS.run(self, input_lines, input_offset)
2014-08-25 15:44:14.313 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/statemachine.py", line 239, in run
2014-08-25 15:44:14.317 | context, state, transitions)
2014-08-25 15:44:14.319 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/statemachine.py", line 460, in check_line
2014-08-25 15:44:14.322 | return method(match, context, next_state)
2014-08-25 15:44:14.324 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2299, in explicit_markup
2014-08-25 15:44:14.328 | nodelist, blank_finish = self.explicit_construct(match)
2014-08-25 15:44:14.330 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2311, in explicit_construct
2014-08-25 15:44:14.334 | return method(self, expmatch)
2014-08-25 15:44:14.335 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2054, in directive
2014-08-25 15:44:14.338 | directive_class, match, type_name, option_presets)
2014-08-25 15:44:14.340 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/docutils/parsers/rst/states.py", line 2103, in run_directive
2014-08-25 15:44:14.343 | result = directive_instance.run()
2014-08-25 15:44:14.345 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 1401, in run
2014-08-25 15:44:14.351 | documenter.generate(more_content=self.content)
2014-08-25 15:44:14.352 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 768, in generate
2014-08-25 15:44:14.357 | self.document_members(all_members)
2014-08-25 15:44:14.358 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 692, in document_members
2014-08-25 15:44:14.360 | check_module=members_check_module and not isattr)
2014-08-25 15:44:14.363 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 758, in generate
2014-08-25 15:44:14.370 | self.add_directive_header(sig)
2014-08-25 15:44:14.375 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/wsmeext/sphinxext.py", line 354, in add_directive_header
2014-08-25 15:44:14.390 | super(ServiceDocumenter, self).add_directive_header(sig)
2014-08-25 15:44:14.391 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 1051, in add_directive_header
2014-08-25 15:44:14.395 | Documenter.add_directive_header(self, sig)
2014-08-25 15:44:14.397 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py", line 436, in add_directive_header
2014-08-25 15:44:14.408 | name = self.format_name()
2014-08-25 15:44:14.413 | File "/home/jenkins/workspace/gate-ironic-docs/.tox/venv/local/lib/python2.7/site-packages/wsmeext/sphinxext.py", line 364, in format_name
2014-08-25 15:44:14.418 | return '/' + '/'.join(path)
2014-08-25 15:44:14.424 | TypeError

Revision history for this message
Ruby Loo (rloo) wrote :

I've seen this failing in 4 patches in the last hour. I saw this failing infrequently last Thursday (Aug 21) and now it seems to be failing a lot more.

Ruby Loo (rloo)
Changed in ironic:
importance: Critical → High
Dmitry Tantsur (divius)
Changed in ironic:
status: New → Triaged
Revision history for this message
Adam Gandelman (gandelman-a) wrote :

This appears to be related to the upgrade to tox 1.7.2 and the use of PYTHONHASHSEED=random. Not certain what the bug is in sphinx / wsme, but setting PYTHONHASHSEED=0 in tox.ini locally fixes the issue locally, where it was showing on ~75% of doc builds.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/116713

Changed in ironic:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/116713
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=2abea080f617928af6386074e121aba33db2fe33
Submitter: Jenkins
Branch: master

commit 2abea080f617928af6386074e121aba33db2fe33
Author: Adam Gandelman <email address hidden>
Date: Mon Aug 25 12:48:10 2014 -0700

    Set PYTHONHASHSEED for venv tox environment

    We're seeing frequent failures of the docs Jenkins job that appear
    to be caused by the tox 1.7.2 upgrade and the migration to using
    PYTHONHASHSEED=random. This overrides the environment in the venv
    testenv to set PYTHONHASHSEED=0 and allows docs to build
    successfully. Note that we want to run our tests with a random seed
    if possible, so this avoids disabling it for the base testenv and
    only uses non-random for the testenv used by Jenkins for doc builds.

    Change-Id: I665703c9a002500bc90b90cd268bd3ccff4e3534
    Closes-bug: 1361295

Changed in ironic:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in ironic:
milestone: none → juno-3
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ironic:
milestone: juno-3 → 2014.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.