37 lines
1.4 KiB
Diff
37 lines
1.4 KiB
Diff
|
changeset: 26079:b3b03536789a
|
||
|
user: Olaf Hering <olaf@aepfle.de>
|
||
|
date: Thu Oct 18 09:35:01 2012 +0100
|
||
|
files: tools/hotplug/Linux/locking.sh
|
||
|
description:
|
||
|
hotplug/Linux: close lockfd after lock attempt
|
||
|
|
||
|
When a HVM guest is shutdown some of the 'remove' events can not claim
|
||
|
the lock for some reason. Instead they try to grab the lock in a busy
|
||
|
loop, until udev reaps the xen-hotplug-cleanup helper.
|
||
|
After analyzing the resulting logfile its not obvious what the cause is.
|
||
|
The only explanation is that bash (?) gets confused if the same lockfd
|
||
|
is opened again and again. Closing it in each iteration seem to fix the
|
||
|
issue.
|
||
|
|
||
|
This was observed with sles11sp2 (bash 3.2) and 4.2 xend.
|
||
|
|
||
|
Signed-off-by: Olaf Hering <olaf@aepfle.de>
|
||
|
Acked-by: Ian Campbell <Ian.campbell@citrix.com>
|
||
|
[ ijc -- added the comment ]
|
||
|
Committed-by: Ian Campbell <ian.campbell@citrix.com>
|
||
|
|
||
|
|
||
|
diff -r 019ca95dfa34 -r b3b03536789a tools/hotplug/Linux/locking.sh
|
||
|
--- a/tools/hotplug/Linux/locking.sh Thu Oct 18 09:35:00 2012 +0100
|
||
|
+++ b/tools/hotplug/Linux/locking.sh Thu Oct 18 09:35:01 2012 +0100
|
||
|
@@ -59,6 +59,9 @@ claim_lock()
|
||
|
print "y\n" if $fd_inum eq $file_inum;
|
||
|
' "$_lockfile" )
|
||
|
if [ x$rightfile = xy ]; then break; fi
|
||
|
+ # Some versions of bash appear to be buggy if the same
|
||
|
+ # $_lockfile is opened repeatedly. Close the current fd here.
|
||
|
+ eval "exec $_lockfd<&-"
|
||
|
done
|
||
|
}
|
||
|
|