nova/nova/virt/libvirt
Dan Smith abacc290ca Avoid deadlock when stringifying NetworkInfo model
In the libvirt driver, we log information about the instance we're
about to generate XML for, which includes a NetworkInfo model. In
reality, this is a NetworkInfoAsyncWrapper which acquires a lock
on the model. Since we're in the middle of a log statement, we also
hold the logging lock. This happens right after we've fired off an
async request to update information about the instance, which first
acquired the network model lock and then acquired the logging lock
to make a seemingly innocuous log record.

The resulting deadlock is fixed by this patch by stringifying the
NetworkInfo object before making the log call in the libvirt
driver.

Change-Id: I81f35197ab7c74daa84fb51fbaa2df28c025da13
Closes-bug: 1276268
(cherry picked from commit 072e4ad20a)
2014-02-05 17:59:27 -05:00
..
__init__.py Fix IBM copyright strings 2013-03-01 14:18:23 -05:00
blockinfo.py Fix indentation in virt.libvirt.blockinfo module 2013-09-30 17:11:18 +02:00
config.py PCI passthrough Libvirt vm config 2013-09-04 12:13:03 -07:00
designer.py Adding VIF Driver to support Mellanox Plugin 2013-08-29 09:33:32 +03:00
driver.py Avoid deadlock when stringifying NetworkInfo model 2014-02-05 17:59:27 -05:00
firewall.py Remove old legacy network info model in libvirt driver 2013-08-09 11:51:37 +08:00
imagebackend.py ensure we don't boot oversized images 2013-10-31 17:03:08 +01:00
imagecache.py Remove the monkey patching of _ into the builtins 2013-07-26 07:31:17 -07:00
utils.py ensure we don't boot oversized images 2013-10-31 17:03:08 +01:00
vif.py Adding VIF Driver to support Mellanox Plugin 2013-08-29 09:33:32 +03:00
volume.py Libvirt: volume driver set correct device type 2013-09-12 17:32:52 +02:00