← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1848499] [NEW] powervm driver tests fail with networkx 2.4: "AttributeError: 'DiGraph' object has no attribute 'node'"

 

Public bug reported:

https://c6fecb2db5c55fa0effa-
6229cc6450d9b491384804026d2fbd81.ssl.cf5.rackcdn.com/688980/1/gate
/openstack-tox-py36/71a8bdd/testr_results.html.gz

ft1.2: nova.tests.unit.virt.powervm.tasks.test_vm.TestVMTasks.test_power_on_revert_StringException: Traceback (most recent call last):
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/mock/mock.py", line 1330, in patched
    return func(*args, **keywargs)
  File "/home/zuul/src/opendev.org/openstack/nova/nova/tests/unit/virt/powervm/tasks/test_vm.py", line 90, in test_power_on_revert
    self.assertRaises(ValueError, tf_eng.run, flow)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 485, in assertRaises
    self.assertThat(our_callable, matcher)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 496, in assertThat
    mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 547, in _matchHelper
    mismatch = matcher.match(matchee)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 108, in match
    mismatch = self.exception_matcher.match(exc_info)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_higherorder.py", line 62, in match
    mismatch = matcher.match(matchee)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 475, in match
    reraise(*matchee)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise
    raise exc_obj.with_traceback(exc_tb)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 101, in match
    result = matchee()
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 1049, in __call__
    return self._callable_object(*self._args, **self._kwargs)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/helpers.py", line 162, in run
    engine.run()
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/engine.py", line 247, in run
    for _state in self.run_iter(timeout=timeout):
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/engine.py", line 271, in run_iter
    self.compile()
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/fasteners/lock.py", line 306, in wrapper
    return f(self, *args, **kwargs)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/engine.py", line 470, in compile
    self._runtime.compile()
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/runtime.py", line 143, in compile
    metadata['edge_deciders'] = tuple(deciders_it)
  File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/runtime.py", line 75, in _walk_edge_deciders
    u_node_kind = graph.node[u_node]['kind']
AttributeError: 'DiGraph' object has no attribute 'node'

Seems this is since networkx 2.4 was released 11 hours ago:

https://pypi.org/project/networkx/2.4/

And upper-constraints aren't being honored for some reason:

networkx===2.2;python_version=='2.7'
networkx===2.3;python_version=='3.4'
networkx===2.3;python_version=='3.5'
networkx===2.3;python_version=='3.6'
networkx===2.3;python_version=='3.7'

I guess maybe because they are a transitive dependency of taskflow which
the powervm driver depends on?

** Affects: nova
     Importance: Critical
         Status: Confirmed


** Tags: gate-failure

-- 
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/1848499

Title:
  powervm driver tests fail with networkx 2.4: "AttributeError:
  'DiGraph' object has no attribute 'node'"

Status in OpenStack Compute (nova):
  Confirmed

Bug description:
  https://c6fecb2db5c55fa0effa-
  6229cc6450d9b491384804026d2fbd81.ssl.cf5.rackcdn.com/688980/1/gate
  /openstack-tox-py36/71a8bdd/testr_results.html.gz

  ft1.2: nova.tests.unit.virt.powervm.tasks.test_vm.TestVMTasks.test_power_on_revert_StringException: Traceback (most recent call last):
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/mock/mock.py", line 1330, in patched
      return func(*args, **keywargs)
    File "/home/zuul/src/opendev.org/openstack/nova/nova/tests/unit/virt/powervm/tasks/test_vm.py", line 90, in test_power_on_revert
      self.assertRaises(ValueError, tf_eng.run, flow)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 485, in assertRaises
      self.assertThat(our_callable, matcher)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 496, in assertThat
      mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 547, in _matchHelper
      mismatch = matcher.match(matchee)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 108, in match
      mismatch = self.exception_matcher.match(exc_info)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_higherorder.py", line 62, in match
      mismatch = matcher.match(matchee)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 475, in match
      reraise(*matchee)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/_compat3x.py", line 16, in reraise
      raise exc_obj.with_traceback(exc_tb)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/matchers/_exception.py", line 101, in match
      result = matchee()
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/testtools/testcase.py", line 1049, in __call__
      return self._callable_object(*self._args, **self._kwargs)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/helpers.py", line 162, in run
      engine.run()
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/engine.py", line 247, in run
      for _state in self.run_iter(timeout=timeout):
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/engine.py", line 271, in run_iter
      self.compile()
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/fasteners/lock.py", line 306, in wrapper
      return f(self, *args, **kwargs)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/engine.py", line 470, in compile
      self._runtime.compile()
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/runtime.py", line 143, in compile
      metadata['edge_deciders'] = tuple(deciders_it)
    File "/home/zuul/src/opendev.org/openstack/nova/.tox/py36/lib/python3.6/site-packages/taskflow/engines/action_engine/runtime.py", line 75, in _walk_edge_deciders
      u_node_kind = graph.node[u_node]['kind']
  AttributeError: 'DiGraph' object has no attribute 'node'

  Seems this is since networkx 2.4 was released 11 hours ago:

  https://pypi.org/project/networkx/2.4/

  And upper-constraints aren't being honored for some reason:

  networkx===2.2;python_version=='2.7'
  networkx===2.3;python_version=='3.4'
  networkx===2.3;python_version=='3.5'
  networkx===2.3;python_version=='3.6'
  networkx===2.3;python_version=='3.7'

  I guess maybe because they are a transitive dependency of taskflow
  which the powervm driver depends on?

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


Follow ups