All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: Zhigang Wang <zhigang.x.wang@oracle.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	"xen.org" <ian.jackson@eu.citrix.com>
Subject: Re: [xen-unstable test] 13461: regressions - FAIL
Date: Thu, 5 Jul 2012 10:28:35 +0100	[thread overview]
Message-ID: <20120705092834.GE13884@redhat.com> (raw)
In-Reply-To: <1341467373.14447.9.camel@dagon.hellion.org.uk>

On Thu, Jul 05, 2012 at 06:49:33AM +0100, Ian Campbell wrote:
> On Thu, 2012-07-05 at 05:23 +0100, xen.org wrote:
> > flight 13461 xen-unstable real [real]
> > http://www.chiark.greenend.org.uk/~xensrcts/logs/13461/
> > 
> > Regressions :-(
> > 
> > Tests which did not succeed and are blocking,
> > including tests which could not be run:
> >  test-amd64-i386-pv           18 leak-check/check          fail REGR. vs. 13459
> >  test-amd64-amd64-pv          18 leak-check/check          fail REGR. vs. 13459
> 
> http://www.chiark.greenend.org.uk/~xensrcts/logs/13461/test-amd64-amd64-xl/18.ts-leak-check.log:
> 2012-07-05 01:45:13 Z LEAKED [file /var/run/xen-hotplug/iptables] file: 465271    0 -rw-r--r--   1 root     root            0 Jul  5 02:37 /var/run/xen-hotplug/iptables
> 2012-07-05 01:45:13 Z LEAKED [file /var/run/xen-hotplug/block] file: 465252    0 -rw-r--r--   1 root     root            0 Jul  5 02:38 /var/run/xen-hotplug/block
> 
> This is obviously as a result of the "hotplug/Linux: use flock based
> locking" changes.
> 
> However it isn't clear to me that this isn't a feature of the way flock
> based locking works, since it locks on (I guess) the underlying inode
> not the path, such that cleaning up these files in release_lock would be
> incorrect because two invocations would end up effectively taking
> different locks despite using the same path:
> 
> 	Thread A	Thread B	Thread C
> 	claim /foo
> 			claim /foo
> 			blocks
> 	release /foo
> 	rm /foo
> 			unblock
> 					claim /foo
> 					new /foo -- doesn't block!
> 
> Both B and C have "the" lock.
> 
> Is that correct?

Yes, as you say flock() operates on the inode, so if something deletes
and recreates the file, future flocks will operate differently. Ideally
you should just never rm the files at all.

If you need to 'rm' them, then to avoid this, you must do two things

 - Only 'rm /foo' while holding the lock on /foo
 - Record the inode before acquiring the lock. After acquiring the
   lock check whether the inode on disk is the same. If not,
   release the lock & repeat.


Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

  reply	other threads:[~2012-07-05  9:28 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-05  4:23 [xen-unstable test] 13461: regressions - FAIL xen.org
2012-07-05  5:49 ` Ian Campbell
2012-07-05  9:28   ` Daniel P. Berrange [this message]
2012-07-05  9:31     ` Ian Campbell
2012-07-05 10:40     ` Ian Jackson
2012-07-05 10:46       ` Daniel P. Berrange
2012-07-05 10:54         ` Ian Jackson
2012-07-05 10:57           ` Daniel P. Berrange
2012-07-05 10:57       ` Ian Campbell
2012-07-05 11:00         ` Roger Pau Monne
2012-07-05 11:03           ` Ian Campbell
2012-07-05 11:21         ` Ian Jackson
2012-07-05 11:32           ` Ian Campbell
2012-07-05 11:34           ` Ian Campbell
2012-07-05 11:43             ` [xen-unstable test] 13461: regressions - FAIL [and 1 more messages] Ian Jackson
2012-07-05 11:53           ` [xen-unstable test] 13461: regressions - FAIL Roger Pau Monne
2012-07-05 11:57             ` Ian Campbell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120705092834.GE13884@redhat.com \
    --to=berrange@redhat.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=zhigang.x.wang@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.