Reviewed: https://review.openstack.org/339341 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=3a1ca56487c567ca5cd3d0206707465e0fa01e18 Submitter: Jenkins Branch: master
commit 3a1ca56487c567ca5cd3d0206707465e0fa01e18 Author: Xuanzhou Perry Dong <[email protected]> Date: Fri Jul 8 12:01:31 2016 +0800 Avoid multiple initializations of Host class nova.virt.libvirt.host.Host class manages nova interaction with libvirtd. During processing of HUP signal, object of this class could be initialized multiple times. This leads to resource leak (pipes and threads) and the following exception: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/poll.py", line 115, in wait listener.cb(fileno) File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 214, in main result = function(*args, **kwargs) File "/opt/stack/nova/nova/utils.py", line 1053, in context_wrapper return func(*args, **kwargs) File "/opt/stack/nova/nova/virt/libvirt/host.py", line 131, in _dispatch_thread self._dispatch_events() File "/opt/stack/nova/nova/virt/libvirt/host.py", line 236, in _dispatch_events This commit avoids multiple initializations of the same Host object. Thus it fixes the above problems. Change-Id: I9cfdbca4986ee6da1e8c42bc0b4477d7d0cb5041 Closes-bug: #1599688 Signed-off-by: Xuanzhou Perry Dong <[email protected]> ** Changed in: nova Status: In Progress => Fix Released -- 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/1599688 Title: host.py assertion error during NOVA handling of HUP signal Status in OpenStack Compute (nova): Fix Released Bug description: Description =========== During handling of HUP signal in nova, the following exception is generated: 2016-07-07 01:36:18.012 DEBUG nova.virt.libvirt.host [-] Starting green dispatch thread from (pid=30178) _init_events /op t/stack/nova/nova/virt/libvirt/host.py:341 Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/eventlet/hubs/poll.py", line 115, in wait listener.cb(fileno) File "/usr/local/lib/python2.7/dist-packages/eventlet/greenthread.py", line 214, in main result = function(*args, **kwargs) File "/opt/stack/nova/nova/utils.py", line 1053, in context_wrapper return func(*args, **kwargs) File "/opt/stack/nova/nova/virt/libvirt/host.py", line 131, in _dispatch_thread self._dispatch_events() File "/opt/stack/nova/nova/virt/libvirt/host.py", line 236, in _dispatch_events assert _c AssertionError Steps to reproduce ================== 1. Start a devstack with latest master branch. 2. Devstack doesn't start the nova-compute with daemon. So kill the nova-compute started by devstack and replace it with "nohup /usr/local/bin/nova-compute --config-file /etc/nova/nova.conf &" 3. Send a HUP signal to nova-compute process. Expected result =============== Expect the nova-compute reloads the configuration file and no exception is generated. Actual result ============= An exception is generated. Environment =========== 1. Nova version: vagrant@vagrant-ubuntu-trusty-64:/opt/stack/nova/nova$ git log -1 commit 2d5460d085895a577734547660a8bcfc53b04de2 Merge: 51fdeaf 40ea165 Author: Jenkins <[email protected]> Date: Wed Jun 22 06:18:23 2016 +0000 Merge "Publish proxy APIs deprecation in api ref doc" Logs & Configs ============== As above. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1599688/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

