WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] Break out the hotplug cleanup code into xen-hotplug-clea

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] Break out the hotplug cleanup code into xen-hotplug-cleanup. Claim the block
From: Xen patchbot -3.0-testing <patchbot-3.0-testing@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 10 Mar 2006 19:48:15 +0000
Delivery-date: Fri, 10 Mar 2006 19:49:08 +0000
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User emellor@xxxxxxxxxxxxxxxxxxxxxx
# Node ID 2d1aaebcbdf7c33e73540128bc4fcd0e0b347d42
# Parent  3cfd8150da41166875bffc360ef67f3e63d95da3
Break out the hotplug cleanup code into xen-hotplug-cleanup. Claim the block
script's lock before doing the cleanup, to avoid a race that causes the message
"xenstore-list: could not list path backend/vbd/40" in /var/log/hotplug.log,
with a subsequent refusal to create the domain, after a domain reboot.

This is equivalent to xen-unstable changeset 9003:b30564f40914 (though it's been
rebased to 3.0-testing).

Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx>

diff -r 3cfd8150da41 -r 2d1aaebcbdf7 tools/examples/Makefile
--- a/tools/examples/Makefile   Sun Feb 26 15:48:51 2006
+++ b/tools/examples/Makefile   Wed Mar  8 22:56:37 2006
@@ -27,6 +27,7 @@
 XEN_SCRIPTS += block
 XEN_SCRIPTS += block-enbd block-nbd
 XEN_SCRIPTS += vtpm
+XEN_SCRIPTS += xen-hotplug-cleanup
 XEN_SCRIPT_DATA = xen-script-common.sh
 XEN_SCRIPT_DATA += xen-hotplug-common.sh xen-network-common.sh vif-common.sh
 XEN_SCRIPT_DATA += block-common.sh vtpm-common.sh
diff -r 3cfd8150da41 -r 2d1aaebcbdf7 tools/examples/xen-backend.agent
--- a/tools/examples/xen-backend.agent  Sun Feb 26 15:48:51 2006
+++ b/tools/examples/xen-backend.agent  Wed Mar  8 22:56:37 2006
@@ -18,12 +18,7 @@
   add)
     ;;
   remove)
-    # remove device frontend store entries
-    xenstore-rm -t $(xenstore-read "$XENBUS_PATH/frontend") || true
-
-    # remove device backend store entries
-    xenstore-rm -t "$XENBUS_PATH"       || true
-    xenstore-rm -t "error/$XENBUS_PATH" || true
+    /etc/xen/scripts/xen-hotplug-cleanup
     ;;
   online)
     ;;
diff -r 3cfd8150da41 -r 2d1aaebcbdf7 tools/examples/xen-backend.rules
--- a/tools/examples/xen-backend.rules  Sun Feb 26 15:48:51 2006
+++ b/tools/examples/xen-backend.rules  Wed Mar  8 22:56:37 2006
@@ -2,6 +2,4 @@
 SUBSYSTEM=="xen-backend", KERNEL=="vtpm*", RUN+="/etc/xen/scripts/vtpm 
$env{ACTION}"
 SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="online", RUN+="$env{script} 
online"
 SUBSYSTEM=="xen-backend", KERNEL=="vif*", ACTION=="offline", 
RUN+="$env{script} offline"
-SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/bin/bash -c 
'/usr/bin/xenstore-rm -t $$(/usr/bin/xenstore-read $env{XENBUS_PATH}/frontend)'"
-SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/usr/bin/xenstore-rm -t 
$env{XENBUS_PATH}"
-SUBSYSTEM=="xen-backend", ACTION=="remove", RUN+="/usr/bin/xenstore-rm -t 
error/$env{XENBUS_PATH}"
+SUBSYSTEM=="xen-backend", ACTION=="remove", 
RUN+="/etc/xen/scripts/xen-hotplug-cleanup"
diff -r 3cfd8150da41 -r 2d1aaebcbdf7 tools/examples/xen-hotplug-cleanup
--- /dev/null   Sun Feb 26 15:48:51 2006
+++ b/tools/examples/xen-hotplug-cleanup        Wed Mar  8 22:56:37 2006
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+dir=$(dirname "$0")
+. "$dir/xen-hotplug-common.sh"
+
+# Claim the lock protecting /etc/xen/scripts/block.  This stops a race whereby
+# paths in the store would disappear underneath that script as it attempted to
+# read from the store checking for device sharing.
+# Any other scripts that do similar things will have to have their lock
+# claimed too.
+# This is pretty horrible, but there's not really a nicer way of solving this.
+claim_lock "block"
+
+# remove device frontend store entries
+xenstore-rm -t $(xenstore-read "$XENBUS_PATH/frontend") || true
+
+# remove device backend store entries
+xenstore-rm -t "$XENBUS_PATH"       || true
+xenstore-rm -t "error/$XENBUS_PATH" || true
+
+release_lock "block"

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Break out the hotplug cleanup code into xen-hotplug-cleanup. Claim the block, Xen patchbot -3 . 0-testing <=