From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhenzhong Duan Subject: Re: Is: Contention in block script when doing guest saving. Was:Re: an issue with 'xm save' Date: Fri, 28 Sep 2012 22:46:03 +0800 Message-ID: <5065B82B.8080003@oracle.com> References: <505C3647.1030003@oracle.com> <20120921143430.GA3522@phenom.dumpdata.com> <5062C16A.1020306@oracle.com> <20120926123534.GF7356@phenom.dumpdata.com> <5063EAFB.1070307@oracle.com> <20120927115918.GE8832@phenom.dumpdata.com> <50657D4B.9040303@oracle.com> <20120928140109.GA7483@localhost.localdomain> <20581.45245.846208.289785@mariner.uk.xensource.com> Reply-To: zhenzhong.duan@oracle.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------090605080908040808080902" Return-path: In-Reply-To: <20581.45245.846208.289785@mariner.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Jackson Cc: Konrad Rzeszutek Wilk , Dan Magenheimer , xen-devel , Feng Jin , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org This is a multi-part message in MIME format. --------------090605080908040808080902 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 2012-09-28 22:14, Ian Jackson wrote: > Konrad Rzeszutek Wilk writes ("Is: Contention in block script when doing guest saving. Was:Re: [Xen-devel] an issue with 'xm save'"): >> On Fri, Sep 28, 2012 at 06:34:51PM +0800, Zhenzhong Duan wrote: >>> After replace locking.sh with OVM's, it worked. >>> But xen-tools evolved to use flock based locking currently. We can't >>> revert back. >>> It seems changeset 25595:497e2fe49455 bring the issue. >>> Finally, I came with a small patch that workaround the issue. >> Ian, any thoughts on how this can be fixed properly? The locking >> is quite heavy and causes two scripts that do deal with blocks >> to spin for a long time. > The algorithm is not supposed to spin. If it spins there is a bug, I > think. > > Can you show me a transcript of the spinning happening with "set -x" > in force ? Hi Ian, Attachment is part of xen-hotplug.log that will show the spin. Original file is nearly 7G big. I fetch first 1000 lines. Below is steps I did: 1. delete xen-hotplug.log 2. reboot dom0 3. add "set -x" to head of block script. 4.create first PV guest 5. save guest 6. get first 1000 lines from xen-hotplug.log thanks zduan --------------090605080908040808080902 Content-Type: text/plain; charset=gb18030; name="xen-hotplug.log" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="xen-hotplug.log" [root@zhenzhong1 tmp]# head -n 1000 /var/log/xen/xen-hotplug.log +++ export PATH=/usr/bin:/usr/sbin:/usr/lib/xen/bin:/usr/lib/xen/bin:/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin +++ PATH=/usr/bin:/usr/sbin:/usr/lib/xen/bin:/usr/lib/xen/bin:/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin +++ export LANG=POSIX +++ LANG=POSIX ++++ set ++++ grep '^LC_' ++++ cut -d= -f1 +++ unset +++ trap sigerr ERR +++ log debug add XENBUS_PATH=backend/vbd/1/51712 +++ local level=debug +++ shift +++ logger -p daemon.debug -- /etc/xen/scripts/block: add XENBUS_PATH=backend/vbd/1/51712 ++ findCommand add ++ for arg in '"$@"' ++ expr index add = ++ command=add ++ return ++ '[' add '!=' add ']' ++ XENBUS_PATH=backend/vbd/1/51712 ++ xenstore_read_default backend/vbd/1/51712/type MISSING ++ xenstore-read backend/vbd/1/51712/type + t=file + case "$command" in ++ xenstore_read_default backend/vbd/1/51712/physical-device MISSING ++ xenstore-read backend/vbd/1/51712/physical-device ++ echo MISSING + phys=MISSING + '[' MISSING '!=' MISSING ']' + '[' -n file ']' ++ xenstore_read backend/vbd/1/51712/params +++ xenstore-read backend/vbd/1/51712/params ++ local v=/mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img ++ '[' /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img '!=' '' ']' ++ echo /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img + p=/mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img ++ xenstore_read backend/vbd/1/51712/mode +++ xenstore-read backend/vbd/1/51712/mode ++ local v=w ++ '[' w '!=' '' ']' ++ echo w + mode=w ++ xenstore_read backend/vbd/1/51712/frontend-id +++ xenstore-read backend/vbd/1/51712/frontend-id ++ local v=1 ++ '[' 1 '!=' '' ']' ++ echo 1 + FRONTEND_ID=1 ++ xenstore_read_default /local/domain/1/vm unknown ++ xenstore-read /local/domain/1/vm + FRONTEND_UUID=/vm/cc02077f-d327-cdf2-4876-91bb7ece8cc8 + case $t in ++ readlink -f /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img + file=/mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img + test -f /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img ++ canonicalise_mode w ++ local mode=w ++ expr index w w ++ expr index w '!' ++ echo w + mode=w + claim_lock block + mkdir -p /var/run/xen-hotplug + _setlockfd block + local i + (( i = 0 )) + (( i < 0 )) + _lockdict[$i]=block + let _lockfd=200+i + _lockfile=/var/run/xen-hotplug/block + local rightfile + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile=y + '[' xy = xy ']' + break ++ xenstore_read_default backend/vbd/1/51712/state unknown ++ xenstore-read backend/vbd/1/51712/state + xenbus_state=2 + '[' 2 '!=' 2 ']' + '[' w = w ']' + stat /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img -c %A + grep -q w + '[' xw '!=' 'x!' ']' ++ stat -c %i /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img + inode=835587 ++ stat -c %D /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img + dev=806 + '[' -z 835587 ']' + '[' -z 806 ']' ++ losetup -a ++ sed -n -e 's@^\([^:]\+\)\(:[[:blank:]]\[0*806\]:835587[[:blank:]](.*)\)@\1@p' + shared_list= ++ losetup -f + loopdev=/dev/loop0 + '[' /dev/loop0 = '' ']' + LANG=C + losetup -h + grep read-only + roflag=-w + roflag= + roflag= + do_or_die losetup /dev/loop0 /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img + losetup /dev/loop0 /mnt/sda6/OVM_OL5U7_X86_64_PVM_10GB/System.img + xenstore_write backend/vbd/1/51712/node /dev/loop0 + _xenstore_write backend/vbd/1/51712/node /dev/loop0 + log debug 'Writing backend/vbd/1/51712/node' '/dev/loop0 to xenstore.' + local level=debug + shift + logger -p daemon.debug -- /etc/xen/scripts/block: 'Writing backend/vbd/1/51712/node' '/dev/loop0 to xenstore.' + xenstore-write backend/vbd/1/51712/node /dev/loop0 + write_dev /dev/loop0 + local mm ++ device_major_minor /dev/loop0 ++ stat -L -c %t:%T /dev/loop0 + mm=7:0 + '[' -z 7:0 ']' + xenstore_write backend/vbd/1/51712/physical-device 7:0 + _xenstore_write backend/vbd/1/51712/physical-device 7:0 + log debug 'Writing backend/vbd/1/51712/physical-device' '7:0 to xenstore.' + local level=debug + shift + logger -p daemon.debug -- /etc/xen/scripts/block: 'Writing backend/vbd/1/51712/physical-device' '7:0 to xenstore.' + xenstore-write backend/vbd/1/51712/physical-device 7:0 + success + xenstore_write backend/vbd/1/51712/hotplug-status connected + _xenstore_write backend/vbd/1/51712/hotplug-status connected + log debug 'Writing backend/vbd/1/51712/hotplug-status' 'connected to xenstore.' + local level=debug + shift + logger -p daemon.debug -- /etc/xen/scripts/block: 'Writing backend/vbd/1/51712/hotplug-status' 'connected to xenstore.' + xenstore-write backend/vbd/1/51712/hotplug-status connected + release_lock block + _setlockfd block + local i + (( i = 0 )) + (( i < 5 )) + '[' -z block -o block = block ']' + break + _lockdict[$i]=block + let _lockfd=200+i + _lockfile=/var/run/xen-hotplug/block + rm /var/run/xen-hotplug/block + exit 0 +++ export PATH=/usr/bin:/usr/sbin:/usr/lib/xen/bin:/usr/lib/xen/bin:/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin +++ PATH=/usr/bin:/usr/sbin:/usr/lib/xen/bin:/usr/lib/xen/bin:/sbin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/bin:/usr/bin +++ export LANG=POSIX +++ LANG=POSIX ++++ cut -d= -f1 ++++ grep '^LC_' ++++ set +++ unset +++ trap sigerr ERR +++ log debug remove XENBUS_PATH=backend/vbd/1/51712 +++ local level=debug +++ shift +++ logger -p daemon.debug -- /etc/xen/scripts/block: remove XENBUS_PATH=backend/vbd/1/51712 ++ findCommand remove ++ for arg in '"$@"' ++ expr index remove = ++ command=remove ++ return ++ '[' remove '!=' add ']' ++ '[' remove '!=' remove ']' ++ XENBUS_PATH=backend/vbd/1/51712 ++ xenstore_read_default backend/vbd/1/51712/type MISSING ++ xenstore-read backend/vbd/1/51712/type + t=file + case "$command" in + case $t in + claim_lock block + mkdir -p /var/run/xen-hotplug + _setlockfd block + local i + (( i = 0 )) + (( i < 0 )) + _lockdict[$i]=block + let _lockfd=200+i + _lockfile=/var/run/xen-hotplug/block + local rightfile + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; print "y\n" if $fd_inum eq $file_inum; ' /var/run/xen-hotplug/block + rightfile= + '[' x = xy ']' + true + eval 'exec 200>>/var/run/xen-hotplug/block' ++ exec + flock -x 200 ++ perl -e ' open STDIN, "<&200" or die $!; my $fd_inum = (stat STDIN)[1]; die $! unless defined $fd_inum; my $file_inum = (stat $ARGV[0])[1]; [root@zhenzhong1 tmp]# --------------090605080908040808080902 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --------------090605080908040808080902--