A guest occasionally fails to reboot. xend.log shows:
[2010-02-16 09:52:46 5413] ERROR (XendDomainInfo:2061) Failed to restart domain
82.
Traceback (most recent call last):
File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
2047, in _restart
new_dom.waitForDevices()
File "usr/lib64/python2.4/site-packages/xen/xend/XendDomainInfo.py", line
1068, in waitForDevices
self.getDeviceController(devclass).waitForDevices()
File "usr/lib64/python2.4/site-packages/xen/xend/server/DevController.py",
line 140, in waitForDevices
return map(self.waitForDevice, self.deviceIDs())
File "usr/lib64/python2.4/site-packages/xen/xend/server/DevController.py",
line 164, in waitForDevice
raise VmError("Device %s (%s) could not be connected. "
VmError: Device 51712 (tap) could not be connected. xenstore-read
backend/tap/82/51712/params failed.
The failure to read "backend/tap/<domid>/*" in the xenstore is a usual
case since the domain is gone after xenstore-ls command is executed.
The error should be ignored.
This patch should be applied to xen-3.4 too.
Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
diff -r 3a0bd7ca6b11 tools/hotplug/Linux/blktap
--- a/tools/hotplug/Linux/blktap Mon Feb 15 17:54:04 2010 +0000
+++ b/tools/hotplug/Linux/blktap Tue Feb 16 15:33:58 2010 +0900
@@ -23,7 +23,7 @@ check_blktap_sharing()
do
for dev in $(xenstore-list "$base_path/$dom")
do
- params=$(xenstore_read "$base_path/$dom/$dev/params" | cut -d: -f2)
+ params=$(xenstore_read_default "$base_path/$dom/$dev/params" "" |
cut -d: -f2)
if [ "$file" = "$params" ]
then
@@ -35,7 +35,7 @@ check_blktap_sharing()
return
fi
else
- local m=$(xenstore_read "$base_path/$dom/$dev/mode")
+ local m=$(xenstore_read_default
"$base_path/$dom/$dev/mode" "")
m=$(canonicalise_mode "$m")
if [ "$m" = 'w' ]
diff -r 3a0bd7ca6b11 tools/hotplug/Linux/block
--- a/tools/hotplug/Linux/block Mon Feb 15 17:54:04 2010 +0000
+++ b/tools/hotplug/Linux/block Tue Feb 16 15:33:58 2010 +0900
@@ -100,7 +100,7 @@ check_sharing()
return
fi
else
- local m=$(xenstore_read "$base_path/$dom/$dev/mode")
+ local m=$(xenstore_read_default "$base_path/$dom/$dev/mode" "")
m=$(canonicalise_mode "$m")
if [ "$m" = 'w' ]
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|