Hi all, I upgraded from 1.4.0rc3 to 2.0.0rc1 in my test environment, and while the upgrade itself went smoothly, i appear to be having problems with the (posix-)locks feature. :( The feature is clearly declared in the server config file, and according to the DEBUG-level logs, it is loaded successfully at runtime ; however, when Gluster attempts to lock an object (for the purposes of AFR self-heal, for example), an error gets thrown. Server config : [root at dmatest02 glusterfs]# cat glusterfs-server.vol # dataspace volume test-ds type storage/posix option directory /opt/datadir end-volume # posix locks for test-ds volume test-ds-locks type features/locks # features/posix-locks gives same error option mandatory-locks on # on or off, same problem subvolumes test-ds end-volume # dataspace of test-ds on dmatest01 volume test-01-ds type protocol/client option transport-type tcp/client option remote-host 192.168.0.183 option remote-subvolume test-ds option transport-timeout 10 # as per avati at zresearch.com end-volume # automatic file replication translator for test dataspace volume test-ds-afr type cluster/afr #option read-subvolume test-ds-locks # enabled or not, same problem subvolumes test-ds-locks test-01-ds end-volume # the actual export volume export type performance/io-threads option thread-count 8 subvolumes test-ds-afr end-volume # server declaration volume server type protocol/server option transport-type tcp/server subvolumes export option auth.addr.export.allow 192.168.0.73,192.168.0.183,192.168.0.166,127.0.0.1 option auth.addr.test-ds.allow 192.168.0.73,192.168.0.183,192.168.0.166,127.0.0.1 end-volume EXCERPT FROM DEBUG-LEVEL LOG : 2009-01-14 15:09:36 D [xlator.c:551:xlator_init_rec] test-ds: Initialization done 2009-01-14 15:09:36 D [xlator.c:551:xlator_init_rec] test-ds-locks: Initialization done ERROR WHEN ATTEMPTING LOCK FOR SELF-HEAL : 2009-01-14 15:10:14 D [server-protocol.c:3288:server_lookup_resume] test-ds: LOOKUP '1/VERIFY_DIR' 2009-01-14 15:10:14 D [inode.c:323:__inode_retire] test-ds/inode: retiring inode(0) lru=2/1024 active=1 purge=1 2009-01-14 15:10:14 D [server-protocol.c:5712:server_entrylk_resume] test-ds: ENTRYLK '/ (1) ' 2009-01-14 15:10:14 C [posix.c:3189:posix_entrylk] test-ds: "features/posix-locks" translator is not loaded. You need to use it for proper functioning of GlusterFS 2009-01-14 15:10:14 E [server-protocol.c:3229:server_stub_resume] server: INODELK (/VERIFY_DIR) on test-ds returning error: -1 (2) Is the locks feature loaded differently in 2.0.0rc1 or something ? Also, the documentation for the locks feature on the wiki says : "Typically you'll want to load this on the server side, just above the POSIX storage translator." Does it mean to say "below", or should we actually load the locks feature before the posix translator, somehow ? Thanks. -- Daniel Maher <dma+gluster AT witbe DOT net>
Krishna Srinivas
2009-Jan-14 16:15 UTC
[Gluster-users] locks feature not loading ? (2.0.0rc1)
Daniel, # dataspace of test-ds on dmatest01 volume test-01-ds type protocol/client option transport-type tcp/client option remote-host 192.168.0.183 option remote-subvolume test-ds option transport-timeout 10 # as per avati at zresearch.com end-volume Here, shouldn't the remote subvol be "test-ds-locks" Krishna On Wed, Jan 14, 2009 at 8:52 PM, Daniel Maher <dma+gluster at witbe.net> wrote:> Hi all, > > I upgraded from 1.4.0rc3 to 2.0.0rc1 in my test environment, and while > the upgrade itself went smoothly, i appear to be having problems with > the (posix-)locks feature. :( The feature is clearly declared in the > server config file, and according to the DEBUG-level logs, it is loaded > successfully at runtime ; however, when Gluster attempts to lock an > object (for the purposes of AFR self-heal, for example), an error gets > thrown. > > > Server config : > [root at dmatest02 glusterfs]# cat glusterfs-server.vol > # dataspace > volume test-ds > type storage/posix > option directory /opt/datadir > end-volume > > # posix locks for test-ds > volume test-ds-locks > type features/locks # features/posix-locks gives same error > option mandatory-locks on # on or off, same problem > subvolumes test-ds > end-volume > > # dataspace of test-ds on dmatest01 > volume test-01-ds > type protocol/client > option transport-type tcp/client > option remote-host 192.168.0.183 > option remote-subvolume test-ds > option transport-timeout 10 # as per avati at zresearch.com > end-volume > > # automatic file replication translator for test dataspace > volume test-ds-afr > type cluster/afr > #option read-subvolume test-ds-locks # enabled or not, same problem > subvolumes test-ds-locks test-01-ds > end-volume > > # the actual export > volume export > type performance/io-threads > option thread-count 8 > subvolumes test-ds-afr > end-volume > > # server declaration > volume server > type protocol/server > option transport-type tcp/server > subvolumes export > option auth.addr.export.allow > 192.168.0.73,192.168.0.183,192.168.0.166,127.0.0.1 > option auth.addr.test-ds.allow > 192.168.0.73,192.168.0.183,192.168.0.166,127.0.0.1 > end-volume > > > > EXCERPT FROM DEBUG-LEVEL LOG : > 2009-01-14 15:09:36 D [xlator.c:551:xlator_init_rec] test-ds: > Initialization done > 2009-01-14 15:09:36 D [xlator.c:551:xlator_init_rec] test-ds-locks: > Initialization done > > > > ERROR WHEN ATTEMPTING LOCK FOR SELF-HEAL : > 2009-01-14 15:10:14 D [server-protocol.c:3288:server_lookup_resume] > test-ds: LOOKUP '1/VERIFY_DIR' > 2009-01-14 15:10:14 D [inode.c:323:__inode_retire] test-ds/inode: > retiring inode(0) lru=2/1024 active=1 purge=1 > 2009-01-14 15:10:14 D [server-protocol.c:5712:server_entrylk_resume] > test-ds: ENTRYLK '/ (1) ' > 2009-01-14 15:10:14 C [posix.c:3189:posix_entrylk] test-ds: > "features/posix-locks" translator is not loaded. You need to use it for > proper functioning of GlusterFS > 2009-01-14 15:10:14 E [server-protocol.c:3229:server_stub_resume] > server: INODELK (/VERIFY_DIR) on test-ds returning error: -1 (2) > > > > Is the locks feature loaded differently in 2.0.0rc1 or something ? > > > Also, the documentation for the locks feature on the wiki says : > > "Typically you'll want to load this on the server side, just above the > POSIX storage translator." > > Does it mean to say "below", or should we actually load the locks > feature before the posix translator, somehow ? > > > Thanks. > > > > -- > Daniel Maher <dma+gluster AT witbe DOT net> > > _______________________________________________ > Gluster-users mailing list > Gluster-users at gluster.org > http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users >
Keith Freedman
2009-Jan-14 16:18 UTC
[Gluster-users] locks feature not loading ? (2.0.0rc1)
At 07:22 AM 1/14/2009, Daniel Maher wrote:>I upgraded from 1.4.0rc3 to 2.0.0rc1 in my test environment, and whileI'm running 2.0.0rc1 and I don't have a problem with posix locks. I dont see anything wrong with your config. volume home1 type storage/posix option directory /gluster/home end-volume volume posix-locks-home1 type features/posix-locks option mandatory-locks on subvolumes home1 end-volume>Also, the documentation for the locks feature on the wiki says : > >"Typically you'll want to load this on the server side, just above the >POSIX storage translator." > >Does it mean to say "below", or should we actually load the locks >feature before the posix translator, somehow ?I think they mean above. the config file builds a stack. the "top" item in the config is the "bottom" brick in the stack. so the 2nd item in the config is put on TOP of the other brick. I believe this explains the terminology. I agree it's perhaps conter-intuitive, but only to non-programmers... people who know 'stacks' get it right away.
Keith Freedman
2009-Jan-14 16:18 UTC
[Gluster-users] locks feature not loading ? (2.0.0rc1)
At 07:22 AM 1/14/2009, Daniel Maher wrote:>I upgraded from 1.4.0rc3 to 2.0.0rc1 in my test environment, and whileI''m running 2.0.0rc1 and I don''t have a problem with posix locks. I dont see anything wrong with your config. volume home1 type storage/posix option directory /gluster/home end-volume volume posix-locks-home1 type features/posix-locks option mandatory-locks on subvolumes home1 end-volume>Also, the documentation for the locks feature on the wiki says : > >"Typically you''ll want to load this on the server side, just above the >POSIX storage translator." > >Does it mean to say "below", or should we actually load the locks >feature before the posix translator, somehow ?I think they mean above. the config file builds a stack. the "top" item in the config is the "bottom" brick in the stack. so the 2nd item in the config is put on TOP of the other brick. I believe this explains the terminology. I agree it''s perhaps conter-intuitive, but only to non-programmers... people who know ''stacks'' get it right away.
Keith Freedman wrote:>> Also, the documentation for the locks feature on the wiki says : >> >> "Typically you'll want to load this on the server side, just above the >> POSIX storage translator." >> >> Does it mean to say "below", or should we actually load the locks >> feature before the posix translator, somehow ? > > I think they mean above. > the config file builds a stack. the "top" item in the config is the > "bottom" brick in the stack. > so the 2nd item in the config is put on TOP of the other brick. > > I believe this explains the terminology. I agree it's perhaps > conter-intuitive, but only to non-programmers... people who know > 'stacks' get it right away.Ah, yes, if we're interpreting the documentation from the perspective of stacks that's fine ; however, i would humbly submit that the most obvious interpretation of "above" is "higher in position", which - in a plaintext configuration file - means "before". I suppose the greater questions is whether the documentation is meant for programmers explicitly, or for technically-minded people generally... -- Daniel Maher <dma+gluster AT witbe DOT net>