[virt-tools-list] [PATCH] guestfs: As virt-manager is multithreaded, don't use an atexit handler.
Richard W.M. Jones
rjones at redhat.com
Mon Dec 16 17:47:30 UTC 2013
From: "Richard W.M. Jones" <rjones at redhat.com>
libguestfs adds an atexit handler to clean up handles on exit. This
is convenient in single-threaded programs, but causes problems in
multithreaded programs, for example:
https://bugzilla.redhat.com/show_bug.cgi?id=1043520
Disable the atexit handler for all guestfs handles created by
virt-manager.
Note this change requires libguestfs >= 1.20. However the change to
config.py should ensure that if an earlier version of libguestfs is
installed it should silently fall back to not using inspection.
---
virtManager/config.py | 2 +-
virtManager/inspection.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/virtManager/config.py b/virtManager/config.py
index e98597c..0b5f7ff 100644
--- a/virtManager/config.py
+++ b/virtManager/config.py
@@ -182,7 +182,7 @@ class vmmConfig(object):
try:
# Check we can open the Python guestfs module.
from guestfs import GuestFS # pylint: disable=F0401
- GuestFS()
+ GuestFS(close_on_exit = False)
return True
except:
return False
diff --git a/virtManager/inspection.py b/virtManager/inspection.py
index 3fefe6b..ef2a2f4 100644
--- a/virtManager/inspection.py
+++ b/virtManager/inspection.py
@@ -163,7 +163,7 @@ class vmmInspection(vmmGObject):
vm.get_name())
return None
- g = GuestFS()
+ g = GuestFS(close_on_exit = False)
prettyvm = conn.get_uri() + ":" + vm.get_name()
ignore = vmuuid
--
1.8.3.1
More information about the virt-tools-list
mailing list