VIM compute plugin used before initialized
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
StarlingX |
Won't Fix
|
Low
|
Unassigned |
Bug Description
Brief Description
-----------------
In some cases, the VIM's compute plugin can be used before it has been initialized. This can cause exceptions which cause the VIM to restart. Although recovery is automatic, this behaviour should be cleaned up.
Severity
--------
Minor: This only happens at init time (when the stx-openstack application is installed) and recovery is automatic.
Steps to Reproduce
------------------
Install the stx-openstack application.
Expected Behavior
------------------
When the VIM is restarted after the installation of the stx-openstack application, it should not attempt to use the compute plugin until the plugin has been fully initialized. Initialization can be delayed, because this plugin requires the rabbitmq and nova pods to be running in order to initialize.
Actual Behavior
----------------
In some cases, the VIM will attempt to use the compute plugin before it has been initialized. This would normally be caused by one of the VIM's audits running before the initialization is complete. This will result in exceptions similar to the following:
2019-08-
Traceback (most recent call last):
File "/usr/lib64/
if self._host_
File "/usr/lib64/
(self.
AttributeError: 'NoneType' object has no attribute 'get_service_info'
2019-08-
Traceback (most recent call last):
File "/usr/lib64/
future.result = (yield)
Exception: AttributeError: 'NoneType' object has no attribute 'auth_uri'
2019-08-
2019-08-
2019-08-
2019-08-
2019-08-
Traceback (most recent call last):
File "/usr/lib64/
init_complete = process_
File "/usr/lib64/
if not nfvi.nfvi_
File "/usr/lib64/
_task_
File "/usr/lib64/
_compute_
File "/usr/lib64/
self.
File "/usr/lib64/
'notificati
File "/usr/lib64/
self._consumer = Consumer(
File "/usr/lib/
self.
File "/usr/lib/
channel = self.channel = maybe_channel(
File "/usr/lib/
return channel.
File "/usr/lib/
self.connection
File "/usr/lib/
self.
File "/usr/lib/
conn = self.transport.
File "/usr/lib/
conn.connect()
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
"failed to resolve broker hostname"))
timeout: timed out
Reproducibility
---------------
Intermittent
System Configuration
-------
Most likely to be seen on a one or two node system with high CPU load.
Branch/Pull Time/Commit
-------
Load from on or about August 12, 2019.
Last Pass
---------
N/A
Timestamp/Logs
--------------
See above.
Test Activity
-------------
Developer testing (found by Al Bailey)
Changed in starlingx: | |
assignee: | nobody → Bart Wensley (bartwensley) |
Changed in starlingx: | |
assignee: | Bart Wensley (bartwensley) → nobody |
Looking at the code, I think the solution is likely going to involve adding a new nfvi_compute_ plugin_ initialized function to nfv_vim/ nfvi/_nfvi_ compute_ module. py and using that to decide whether operations on this plugin should be attempted.