Re: Feedback - Problem with the locks feature

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

 



----- "Samuel Hassine" <samuel.hassine@xxxxxxxxx> wrote:

> Hi all,
> 
> For the PHP script with little write/read accesses I will try to find
> it (I dont remember exactly the syntax), but for PHP Sessions, the bug
> could be easily reproduced.
> 
> I just test it on a new very simple GlusterFS partition with no trafic
> (juste me), and I reproduced it immediatly.
> 
> Explainations:
> - 2 servers Debian Lenny stable
> - GlusterFS 3.0.0 in distributed mode (one server and multiple
> clients)
> - Lighttpd / PHP5 Fast-CGI
> 
> I juste mount the GlusterFS partition on the /var/www directory.
> 
> First of all, the PHP script you can execute:
> 
> <?php
> session_save_path('.');
> //if you want to verify if it worked
> //echo session_save_path();
> session_start();
> ?>
> 
> Secondly, there are 2 configurations if GlusterFS and, of course, one
> works and one does not.
> The client configuration is the same in the both cases:
> 
> glusterfs.vol
> volume test-1
> type protocol/client
> option transport-type tcp
> option remote-host test
> option transport.socket.nodelay on
> option transport.remote-port 6996
> option remote-subvolume brick1
> end-volume
> 
> volume writebehind
> type performance/write-behind
> option cache-size 4MB
> subvolumes test-1
> end-volume
> 
> volume readahead
> type performance/read-ahead
> option page-count 4
> subvolumes writebehind
> end-volume
> 
> volume iocache
> type performance/io-cache
> option cache-size 1GB
> option cache-timeout 1
> subvolumes readahead
> end-volume
> 
> volume quickread
> type performance/quick-read
> option cache-timeout 1
> option max-file-size 64kB
> subvolumes iocache
> end-volume
> 
> volume statprefetch
> type performance/stat-prefetch
> subvolumes quickread
> end-volume
> 
> Now the server configuration:
> 
> glusterfsd.vol (this doesnt work)
> volume posix1
> type storage/posix
> option directory /data
> end-volume
> 
> volume locks1
> type features/locks
> subvolumes posix1
> end-volume
> 
> volume brick1
> type performance/io-threads
> option thread-count 8
> subvolumes locks1
> end-volume
> 
> volume server-tcp
> type protocol/server
> option transport-type tcp
> option auth.addr.brick1.allow *
> option transport.socket.listen-port 6996
> option transport.socket.nodelay on
> subvolumes brick1
> end-volume
> 
> glusterfsd.vol (this works)
> volume posix1
> type storage/posix
> option directory /data
> end-volume
> 
> #volume locks1
> # type features/locks
> # subvolumes posix1
> #end-volume
> 
> volume brick1
> type performance/io-threads
> option thread-count 8
> subvolumes posix1
> end-volume
> 
> volume server-tcp
> type protocol/server
> option transport-type tcp
> option auth.addr.brick1.allow *
> option transport.socket.listen-port 6996
> option transport.socket.nodelay on
> subvolumes brick1
> end-volume
> 
> So, with the locks translator, you can execute the script one time (it
> will be ok) but the second time the session file is on the file system
> but locked and nobody can access to it. PHP freezes and processes
> coult not be killed.
> 
> When it's happened, I have nothing in client-side logs but I have 2
> kinds of message in the server-side logs:
> When I execute the script:
> [2010-02-04 21:11:22] W [posix.c:246:posix_lstat_with_gen] posix1:
> Access to /data//.. (on dev 2049) is crossing device (64768)
> [2010-02-04 21:11:24] W [posix.c:246:posix_lstat_with_gen] posix1:
> Access to /data//.. (on dev 2049) is crossing device (64768)
> 
> When I try to umount -f (disconnect the gluster):
> [2010-02-04 21:13:45] E [server-protocol.c:339:protocol_server_reply]
> protocol/server: frame 20: failed to submit. op= 26, type= 4
> 
> As I said I will try to find the other PHP script.
> 
> I hope this will help you.

I tried to reproduce the problem with your exact configuration (only changing 'option remote-host') from 1 server and 2 clients. I was not able to hit the problem with the configuration which is breaking for you. I used v3.0.0 as well.

Can you please turn 'option trace on' in the locks translator and give us the server log when the php session hangs?

Thanks,
Avati




[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