[Gluster-users] tailing active files
Andrew McGill
list2008 at lunch.za.net
Tue Jan 13 06:37:31 UTC 2009
Same on 1.3.12: tail -f doesn't -f :
glusterfs 1.3.12
Repository revision: glusterfs--mainline--2.5--patch-797
Here's something interesting though -- it is actually working, it is just
reading nulls instead of actual data. Here is the transition from '8', '9'
to '10', '11':
strace tail -f nums.txt # .......
nanosleep({1, 0}, NULL) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=422, ...}) = 0
read(3, "\0\0", 8192) = 2
read(3, "", 8192) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=422, ...}) = 0
write(1, "\0\0", 2) = 2
nanosleep({1, 0}, NULL) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=425, ...}) = 0
read(3, "\0\0\0", 8192) = 3
read(3, "", 8192) = 0
fstat64(3, {st_mode=S_IFREG|0644, st_size=425, ...}) = 0
write(1, "\0\0\0", 3) = 3
nanosleep({1, 0}, NULL) = 0
&:-)
On Tuesday 13 January 2009 05:04:53 Keith Freedman wrote:
> this is interesting.
>
> I'm running glusterfs--mainline--3.0--patch-840
>
> using AFR.
> I did your test
> on the local machine, running tail does exactly what you indicated...
> it acts like it was run without the -f.
> on the other replication server, lines show up 2 at a time.
> so it started at 9 or something
> then I got 10 & 11, 2 seconds later, 12, 13, etc...
> the same time tail -f on the server I was running the thing on sat
> there a while then produced some output.
>
> again, the afr machine updated more frequently, but the local machine
> just needed to get past some buffering
>
> what I saw was (you'll notice this faster if you remove the sleep)
> it would show some numbers, then jump and show another batch of
> numbers, then pause then show another batch.
> here's an output from tail -f
> Notice that at 63, there was some weirdness, like it was trying to
> print 1041 and 1860, I'm guessing
> then I got 1861 -.... and then I'd get a jump in numbers.. if I cat
> the file all the numbers are there.
>
> Also, in some of my tests I got input/output errors ---- I belive
> this was due to having tail -f running on the other afr server and
> this code you provided using > which truncates the file. seems AFR
> has a little bug there if a file is open for reading on the other
> server and is truncated. the io error went away when I killed the
> tail process on the other machine.
>
> 55
> 56
> 57
> 58
> 59
> 60
> 61
> 62
> 63
> 041
> 60
> 1861
> 1862
> 1863
> 1864
> 1865
> 1866
> 1867
> 1868
> 1869
> 1870
> 1871
> 1872
>
> I also noticed
>
> At 02:25 PM 1/12/2009, Bryan Talbot wrote:
> >I'm running 1.4rc7 (glusterfs--mainline--3.0--patch-814) and seeing
> >some odd behavior when tailing a file that is being written to by a
> >single process -- a log file in this case.
> >
> >The odd behaviors that I've noticed are that "tail -f" behaves like
> >"tail" and doesn't show any updates. In addition, /usr/bin/less
> >seems to show binary values (at least that's what I assume the "^@"
> >characters are supposed to be) when the bottom of the file "G"
> >accessed instead of the new data added to the file after less was started.
> >
> >Is this a known issue? Is there a work-around?
> >
> >Here's how I'm able to reproduce it. Run the script below and
> >direct the output to a gluster-hosted file. Then attempt to "tail
> >-f" or use /usr/bin/less on the file from another terminal.
> >
> >
> >$> num=0; while [ 1 ]; do echo $((num++)); sleep 1; done >
> >/mnt/gluster/nums.txt
> >
> >
> >The output from /usr/bin/less ends up looking like this:
> >...
> >301
> >302
> >303
> >304
> >305
> >306
> >307
> >308
> >309
> >310
> >311
> >^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
> >
> >
> >Gluster configs are very basic:
> >## Server
> >volume brick
> > type storage/posix
> > option directory /glusterfs/export
> >end-volume
> >
> >volume lock
> > type features/posix-locks
> > subvolumes brick
> >end-volume
> >
> >volume export
> > type performance/io-threads
> > subvolumes lock
> > option thread-count 4 # default value is 1
> >end-volume
> >
> >volume server
> > type protocol/server
> > option transport-type tcp
> > subvolumes export
> > option auth.addr.export.allow 10.10.10.*
> >end-volume
> >
> >
> >
> >## Client
> >volume volume1
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host 10.10.10.2
> > option remote-subvolume export
> >end-volume
> >
> >volume volume2
> > type protocol/client
> > option transport-type tcp/client
> > option remote-host 10.10.10.3
> > option remote-subvolume export
> >end-volume
> >
> >volume mirror1
> > type cluster/afr
> > subvolumes volume1 volume2
> >end-volume
> >
> >
> >
> >-Bryan
> >
> >
> >
> >
> >_______________________________________________
> >Gluster-users mailing list
> >Gluster-users at gluster.org
> >http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users
>
> _______________________________________________
> Gluster-users mailing list
> Gluster-users at gluster.org
> http://zresearch.com/cgi-bin/mailman/listinfo/gluster-users
More information about the Gluster-users
mailing list