|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] That xenstored console leak...
Here's what I'm using to fix it in 3.1. Obviously too risky for 3.2 now,
and anyway, there's a much more serious problem in 3.2 - entire /vm/
entries are leaked on domU reboot! I haven't got round to debugging that
one yet since it's not present in 3.1, but it really should be fixed
regards
john
# HG changeset patch
# User john.levon@xxxxxxx
# Date 1200028523 28800
# Node ID 8a26f9a3f573a7c3b970f4349dd47fd4bf851df1
# Parent c594cafb7e427e3b1f732a37c4b521f1e98dd08d
Cleanup xenstore after console device teardown
After the changes in 13616:b111908dd70b, DevController was leaking
xenstore entries every time we took down a console device, as there was
no equivalent to 'xenstore-rm -t' used in the hotplug scripts for "real"
devices. Implement the moral equivalent whenever removal is forced.
Signed-off-by: John Levon <john.levon@xxxxxxx>
diff --git a/tools/python/xen/xend/server/DevController.py
b/tools/python/xen/xend/server/DevController.py
--- a/tools/python/xen/xend/server/DevController.py
+++ b/tools/python/xen/xend/server/DevController.py
@@ -231,11 +231,21 @@ class DevController:
self.writeBackend(dev, 'state', str(xenbusState['Closing']))
if force:
- frontpath = self.frontendPath(dev)
- backpath = xstransact.Read(frontpath, "backend")
- if backpath:
- xstransact.Remove(backpath)
- xstransact.Remove(frontpath)
+ try:
+ frontpath = self.frontendPath(dev)
+ t = xstransact()
+ backpath = t.read("%s/backend" % frontpath)
+ if backpath:
+ t.remove(backpath)
+ # tidy up empty directories
+ while not t.list(backpath):
+ t.remove(backpath)
+ backpath = os.path.dirname(backpath)
+ t.remove(frontpath)
+ t.commit()
+ except:
+ t.abort()
+ raise
self.vm._removeVm("device/%s/%d" % (self.deviceClass, dev))
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] That xenstored console leak...,
John Levon <=
|
|
|
|
|