Re: Problems with flock functionality with fuse-2.7.0-gls3 and tls 450

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxx>
To: gluster-devel@xxxxxxxxxx
Cc: "Harris Landgarten" <harrisl@xxxxxxxxxxxxx>
Sent: Friday, August 10, 2007 2:30:37 PM (GMT-0500) America/New_York
Subject: Re: 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





[Index of Archives]     [Gluster Users]     [Ceph Users]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux