[Gluster-devel] posix-locks: running ls on file (or directory containing file) while file is being written causes failure

Kevan Benson kbenson at a-1networks.com
Tue Sep 25 03:40:11 UTC 2007


Can anyone corroborate or refute?  It seems like a fairly major bug, I'd 
be interested in whether anyone else can reproduce it or if it seems to 
be limited to my testing.

It should be fairly easy to test.  If you are using posix locks, try 
listing a file as it's being written.

Kevan Benson wrote:
>
> glusterfs 1.3.1 TLA 489 / Fuse 2.7.0 GLFS3
>
> When writing a file from a client, an operation that does a listing on 
> that file from another client while the file is being written causes 
> the write operation to fail when the posix-locks feature is used.
>
> I can replicate this with multiple config types, with AFR and Unify on 
> the server, or on the client, or in the simplest case, with absolutely 
> no special xlators besides posix-locks and a single server.  Here's 
> the configs for that case:
>
> Here's what it looks like:
> # dd if=/dev/zero of=/mnt/glusterfs/testfile.10MB bs=1k count=10k
> dd: writing `/mnt/glusterfs/testfile.10MB': Bad file descriptor
> 4006+0 records in
> 4005+0 records out
> dd: closing output file `/mnt/glusterfs/testfile.10MB': Bad file 
> descriptor
>
> On the other client I'm simply running this to cause the error:
> # ls /mnt/glusterfs/
>
> Here's the configs for the simplest case:
>
> # server.vol
> volume share
>        type storage/posix
>        option directory /exports/test
> end-volume
>
> volume brick
>        type features/posix-locks
>        subvolumes share
> end-volume
>
> volume server
>        type protocol/server
>        option transport-type tcp/server
>        option listen-port 6996
>        subvolumes brick
>        option auth.ip.brick.allow *
> end-volume
>
> volume trace
>        type debug/trace
>        subvolumes server
>        option debug on
> end-volume
>
>
> # client.vol
> volume brick
>        type protocol/client
>        option transport-type tcp/client
>        option remote-host 172.16.1.81
>        option remote-port 6996
>        option remote-subvolume brick
> end-volume
>
>
>
>
>
> _______________________________________________
> Gluster-devel mailing list
> Gluster-devel at nongnu.org
> http://lists.nongnu.org/mailman/listinfo/gluster-devel
> .
>






More information about the Gluster-devel mailing list