← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1750672] [NEW] failure to generate Nova's doc in Python 3.6

 

Public bug reported:

When generating the sphinx doc in Debian Sid with Python 3.6 for the
Queens RC1 release of Nova, I get the below stack dump, though it passes
under Python 2.7. A fix would be more than welcome, cause I'm removing
all traces of Python 2.7, including sphinx stuff and all modules.

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sphinx/cmdline.py", line 306, in main
    app.build(opts.force_all, filenames)
  File "/usr/lib/python3/dist-packages/sphinx/application.py", line 339, in build
    self.builder.build_update()
  File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 329, in build_update
    'out of date' % len(to_build))
  File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 342, in build
    updated_docnames = set(self.env.update(self.config, self.srcdir, self.doctreedir))
  File "/usr/lib/python3/dist-packages/sphinx/environment/__init__.py", line 601, in update
    self._read_serial(docnames, self.app)
  File "/usr/lib/python3/dist-packages/sphinx/environment/__init__.py", line 621, in _read_serial
    self.read_doc(docname, app)
  File "/usr/lib/python3/dist-packages/sphinx/environment/__init__.py", line 758, in read_doc
    pub.publish()
  File "/usr/lib/python3/dist-packages/docutils/core.py", line 217, in publish
    self.settings)
  File "/usr/lib/python3/dist-packages/sphinx/io.py", line 74, in read
    self.parse()
  File "/usr/lib/python3/dist-packages/docutils/readers/__init__.py", line 78, in parse
    self.parser.parse(self.input, document)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/__init__.py", line 191, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 172, in run
    input_source=document['source'])
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2754, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 328, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
    node=section_node, match_titles=True)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
    node=node, match_titles=match_titles)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 197, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2754, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 328, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
    node=section_node, match_titles=True)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
    node=node, match_titles=match_titles)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 197, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2754, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 328, in section
    self.new_subsection(title, lineno, messages)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
    node=section_node, match_titles=True)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
    node=node, match_titles=match_titles)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 197, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
    context, state, transitions)
  File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
    return method(match, context, next_state)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2327, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2339, in explicit_construct
    return method(self, expmatch)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2082, in directive
    directive_class, match, type_name, option_presets)
  File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2131, in run_directive
    result = directive_instance.run()
  File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/doc/ext/versioned_notifications.py", line 56, in run
    return self._build_markup(notifications)
  File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/doc/ext/versioned_notifications.py", line 141, in _build_markup
    base_path=os.path.abspath(self.SAMPLE_ROOT))
  File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/nova/tests/json_ref.py", line 49, in resolve_refs
    obj_with_refs[key] = resolve_refs(value, base_path)
  File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/nova/tests/json_ref.py", line 42, in resolve_refs
    resolved_ref = _resolve_ref(ref, base_path)
  File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/nova/tests/json_ref.py", line 29, in _resolve_ref
    ref_value = jsonutils.load(f)
  File "/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py", line 268, in load
    return json.load(codecs.getreader(encoding)(fp), **kwargs)
  File "/usr/lib/python3/dist-packages/blockdiag/utils/compat.py", line 39, in <lambda>
    return lambda stream, *args: getreader(encoding)(stream.buffer, *args)
AttributeError: '_io.BufferedRandom' object has no attribute 'buffer'

** Affects: nova
     Importance: Undecided
         Status: New


** Tags: doc

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1750672

Title:
  failure to generate Nova's doc in Python 3.6

Status in OpenStack Compute (nova):
  New

Bug description:
  When generating the sphinx doc in Debian Sid with Python 3.6 for the
  Queens RC1 release of Nova, I get the below stack dump, though it
  passes under Python 2.7. A fix would be more than welcome, cause I'm
  removing all traces of Python 2.7, including sphinx stuff and all
  modules.

  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/sphinx/cmdline.py", line 306, in main
      app.build(opts.force_all, filenames)
    File "/usr/lib/python3/dist-packages/sphinx/application.py", line 339, in build
      self.builder.build_update()
    File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 329, in build_update
      'out of date' % len(to_build))
    File "/usr/lib/python3/dist-packages/sphinx/builders/__init__.py", line 342, in build
      updated_docnames = set(self.env.update(self.config, self.srcdir, self.doctreedir))
    File "/usr/lib/python3/dist-packages/sphinx/environment/__init__.py", line 601, in update
      self._read_serial(docnames, self.app)
    File "/usr/lib/python3/dist-packages/sphinx/environment/__init__.py", line 621, in _read_serial
      self.read_doc(docname, app)
    File "/usr/lib/python3/dist-packages/sphinx/environment/__init__.py", line 758, in read_doc
      pub.publish()
    File "/usr/lib/python3/dist-packages/docutils/core.py", line 217, in publish
      self.settings)
    File "/usr/lib/python3/dist-packages/sphinx/io.py", line 74, in read
      self.parse()
    File "/usr/lib/python3/dist-packages/docutils/readers/__init__.py", line 78, in parse
      self.parser.parse(self.input, document)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/__init__.py", line 191, in parse
      self.statemachine.run(inputlines, document, inliner=self.inliner)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 172, in run
      input_source=document['source'])
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
      context, state, transitions)
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
      return method(match, context, next_state)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2754, in underline
      self.section(title, source, style, lineno - 1, messages)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 328, in section
      self.new_subsection(title, lineno, messages)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
      node=section_node, match_titles=True)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
      node=node, match_titles=match_titles)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 197, in run
      results = StateMachineWS.run(self, input_lines, input_offset)
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
      context, state, transitions)
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
      return method(match, context, next_state)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2754, in underline
      self.section(title, source, style, lineno - 1, messages)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 328, in section
      self.new_subsection(title, lineno, messages)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
      node=section_node, match_titles=True)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
      node=node, match_titles=match_titles)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 197, in run
      results = StateMachineWS.run(self, input_lines, input_offset)
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
      context, state, transitions)
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
      return method(match, context, next_state)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2754, in underline
      self.section(title, source, style, lineno - 1, messages)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 328, in section
      self.new_subsection(title, lineno, messages)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 396, in new_subsection
      node=section_node, match_titles=True)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 283, in nested_parse
      node=node, match_titles=match_titles)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 197, in run
      results = StateMachineWS.run(self, input_lines, input_offset)
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 239, in run
      context, state, transitions)
    File "/usr/lib/python3/dist-packages/docutils/statemachine.py", line 460, in check_line
      return method(match, context, next_state)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2327, in explicit_markup
      nodelist, blank_finish = self.explicit_construct(match)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2339, in explicit_construct
      return method(self, expmatch)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2082, in directive
      directive_class, match, type_name, option_presets)
    File "/usr/lib/python3/dist-packages/docutils/parsers/rst/states.py", line 2131, in run_directive
      result = directive_instance.run()
    File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/doc/ext/versioned_notifications.py", line 56, in run
      return self._build_markup(notifications)
    File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/doc/ext/versioned_notifications.py", line 141, in _build_markup
      base_path=os.path.abspath(self.SAMPLE_ROOT))
    File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/nova/tests/json_ref.py", line 49, in resolve_refs
      obj_with_refs[key] = resolve_refs(value, base_path)
    File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/nova/tests/json_ref.py", line 42, in resolve_refs
      resolved_ref = _resolve_ref(ref, base_path)
    File "/home/zigo/sources/openstack/queens/services/nova/build-area/nova-17.0.0~rc1/nova/tests/json_ref.py", line 29, in _resolve_ref
      ref_value = jsonutils.load(f)
    File "/usr/lib/python3/dist-packages/oslo_serialization/jsonutils.py", line 268, in load
      return json.load(codecs.getreader(encoding)(fp), **kwargs)
    File "/usr/lib/python3/dist-packages/blockdiag/utils/compat.py", line 39, in <lambda>
      return lambda stream, *args: getreader(encoding)(stream.buffer, *args)
  AttributeError: '_io.BufferedRandom' object has no attribute 'buffer'

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1750672/+subscriptions


Follow ups