[Gluster-devel] Problems with flock functionality with fuse-2.7.0-gls3 and tls 450
Harris Landgarten
harrisl at lhjonline.com
Fri Aug 10 20:11:59 UTC 2007
Kevan,
There is a typo in my email it should read
$ ruby ./testlock.rb /mnt/glusterfs/test/testfile 60
When another instance was started:
$ ruby ./testlock.rb /mnt/glusterfs/test/testfile
opening /mnt/glusterfs/test/testfile and locking
./testlock.rb:6:in `initialize': No such file or directory - /mnt/glusterfs/test/testfile (Errno::ENOENT)
from ./testlock.rb:6:in `open'
from ./testlock.rb:6:in `open_locked'
from ./testlock.rb:24
The script attempts to open a file in "w" mode and get a LOCK_EX on it before writing. Therefore it either creates or recreates the file. The second instance should block until the LOCK_UN is requested by the first instance. It instead reports ENOENT. Rerunning the second instance once the first instance releases the lock succeeds with another LOCK_EX being granted. BTW, you must be running fuse-2.7.0-gls3 and recompile glusterfs with the libfuse.so from that for this the work because flock support was just added by the Gluster team. Stock fuse does not support flock yet.
Harris
----- Original Message -----
From: "Kevan Benson" <kbenson at a-1networks.com>
To: gluster-devel at nongnu.org
Cc: "Harris Landgarten" <harrisl at lhjonline.com>
Sent: Friday, August 10, 2007 2:30:37 PM (GMT-0500) America/New_York
Subject: Re: [Gluster-devel] Problems with flock functionality with fuse-2.7.0-gls3 and tls 450
On Thursday 09 August 2007 19:13, Harris Landgarten wrote:
> $ ruby ./testlock.rb /mnt/glusterfs/testfile 60
>
> When another instance was started:
>
> $ ruby ./testlock.rb /mnt/glusterfs/test/testfile
> opening /mnt/glusterfs/test/testfile and locking
> ./testlock.rb:6:in `initialize': No such file or directory -
> /mnt/glusterfs/test/testfile (Errno::ENOENT) from ./testlock.rb:6:in `open'
> from ./testlock.rb:6:in `open_locked'
> from ./testlock.rb:24
>
> Glusterfs is reporting the LOCK_EX file as ENOENT when another LOCK_EX is
> requested instead of blocking.
Actually, I think you had a typo in the path. Instance 1 was
on /mnt/glusterfs/testfile and instance 2 was
on /mnt/glusterfs/test/testfile, which if it didn't exuist would result in
the error "No such file or directory" which you got.
--
- Kevan Benson
- A-1 Networks
More information about the Gluster-devel
mailing list