[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