** Description changed:

+ == original bug report ==
  Kolla built containers with heat-engine fail with following logs:
  
https://f20bec36e3f198a9ccf9-fa78c758d05065ae4af77013f9d746d5.ssl.cf2.rackcdn.com/749469/2/check/kolla-ansible-ubuntu-binary/059e66f/primary/logs/kolla/heat/heat-engine.txt
  
  2020-09-02 10:50:52.676 6 CRITICAL heat-engine [-] Unhandled error: 
AttributeError: 'EntryPoint' object has no attribute 'module'
  2020-09-02 10:50:52.676 6 ERROR heat-engine Traceback (most recent call last):
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File 
"/usr/lib/python3/dist-packages/stevedore/extension.py", line 221, in 
_load_plugins
  2020-09-02 10:50:52.676 6 ERROR heat-engine     ext = 
self._load_one_plugin(ep,
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File 
"/usr/lib/python3/dist-packages/stevedore/enabled.py", line 77, in 
_load_one_plugin
  2020-09-02 10:50:52.676 6 ERROR heat-engine     ext = 
super(EnabledExtensionManager, self)._load_one_plugin(
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File 
"/usr/lib/python3/dist-packages/stevedore/extension.py", line 255, in 
_load_one_plugin
  2020-09-02 10:50:52.676 6 ERROR heat-engine     plugin = ep.load()
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File 
"/usr/lib/python3.8/importlib/metadata.py", line 77, in load
  2020-09-02 10:50:52.676 6 ERROR heat-engine     module = 
import_module(match.group('module'))
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File 
"/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
  2020-09-02 10:50:52.676 6 ERROR heat-engine     return 
_bootstrap._gcd_import(name[level:], package, level)
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File "<frozen 
importlib._bootstrap>", line 1014, in _gcd_import
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File "<frozen 
importlib._bootstrap>", line 991, in _find_and_load
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File "<frozen 
importlib._bootstrap>", line 975, in _find_and_load_unlocked
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File "<frozen 
importlib._bootstrap>", line 671, in _load_unlocked
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File "<frozen 
importlib._bootstrap_external>", line 783, in exec_module
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File "<frozen 
importlib._bootstrap>", line 219, in _call_with_frames_removed
  2020-09-02 10:50:52.676 6 ERROR heat-engine   File 
"/usr/lib/python3/dist-packages/heat/engine/clients/os/vitrage.py", line 16, in 
<module>
  2020-09-02 10:50:52.676 6 ERROR heat-engine     from vitrageclient import 
client as vitrage_client
  2020-09-02 10:50:52.676 6 ERROR heat-engine ModuleNotFoundError: No module 
named 'vitrageclient'
  
  Seems the culprit is missing python-vitrageclient package, which is part
  of heat requirements.txt - but not installed as a dependency when
  installing heat-engine from UCA
  (https://github.com/openstack/kolla/blob/master/docker/heat/heat-
  engine/Dockerfile.j2)
+ 
+ [Impact]
+ 
+ heat depends on stevedore to load client entry points. In the past,
+ stevedore would just give a warning if a client failed to load (ie. due
+ to an uninstalled Suggests dependency). Then stevedore changed code
+ to use importlib.metadata which no longer supports ep.load(require=False), 
and now the failure to load a client entry point will error hard along the 
lines of that described above (ModuleNotFoundError: No module named 
'vitrageclient'). In other words, all openstack clients that heat depends on 
must be installed or heat will fail hard. By getting python-vitrageclient into 
Ubuntu main, we can move it from Suggests to Depends and it will always be 
installed for heat binary packages.
+ 
+ [Testcase]
+ 
+ Taken from: https://bugs.launchpad.net/bugs/1958988 (Thanks to Francois
+ Michaut)
+ 
+ Installing heat with the following commands :
+ 
+ add-apt-repository cloud-archive:xena
+ apt update
+ apt-get install heat-api heat-api-cfn heat-engine
+ 
+ will reproduce the issue.
+ heat-engine service will crash and restart continuously, all heat-related 
commands will fail ("openstack stack list" will output (after a very long 
time): ERROR: Internal Error).
+ 
+ In heat-engine logs, we can see that a module named "vitrageclient" is
+ missing. Running "pip3 install python-vitrageclient" fixed the issue and
+ heat started working correctly.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1893935

Title:
  [MIR] python-vitrageclient

To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/+bug/1893935/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to