<p dir="ltr"></p>
<p dir="ltr">-Atin<br>
Sent from one plus one<br>
On Aug 10, 2015 10:34 PM, "Kingsley" <<a href="mailto:gluster@gluster.dogwind.com">gluster@gluster.dogwind.com</a>> wrote:<br>
><br>
> On Mon, 2015-08-10 at 22:22 +0530, Atin Mukherjee wrote:<br>
> [snip]<br>
><br>
>> strace output claims the command exited successfully. Are you sure ls got hung?<br>
><br>
><br>
> Not sure, but this one definitely hung. 'mkdir("test", 0777' was the last output, and it's been stuck here for about 7 minutes now:<br>
><br>
> [root@voicemail1b-1 14391.broken]# strace mkdir test<br>
> execve("/usr/bin/mkdir", ["mkdir", "test"], [/* 27 vars */]) = 0<br>
> brk(0) = 0x8db000<br>
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3468a89000<br>
><br>
> access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)<br>
> open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3<br>
> fstat(3, {st_mode=S_IFREG|0644, st_size=31874, ...}) = 0<br>
> mmap(NULL, 31874, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f3468a81000<br>
><br>
> close(3) = 0<br>
> open("/lib64/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3<br>
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240d\0\0\0\0\0\0"..., 832) = 832<br>
> fstat(3, {st_mode=S_IFREG|0755, st_size=147120, ...}) = 0<br>
> mmap(NULL, 2246784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3468644000<br>
> mprotect(0x7f3468665000, 2097152, PROT_NONE) = 0<br>
> mmap(0x7f3468865000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x21000) = 0x7f3468865000<br>
> mmap(0x7f3468867000, 6272, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3468867000<br>
><br>
> close(3) = 0<br>
> open("/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3<br>
> read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\34\2\0\0\0\0\0"..., 832) = 832<br>
> fstat(3, {st_mode=S_IFREG|0755, st_size=2107760, ...}) = 0<br>
> mmap(NULL, 3932736, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3468283000<br>
> mprotect(0x7f3468439000, 2097152, PROT_NONE) = 0<br>
> mmap(0x7f3468639000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b6000) = 0x7f3468639000<br>
> mmap(0x7f346863f000, 16960, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f346863f000<br>
><br>
> close(3) = 0<br>
> open("/lib64/libpcre.so.1", O_RDONLY|O_CLOEXEC) = 3<br>
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\25\0\0\0\0\0\0"..., 832) = 832<br>
> fstat(3, {st_mode=S_IFREG|0755, st_size=398272, ...}) = 0<br>
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3468a80000<br>
> mmap(NULL, 2490888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3468022000<br>
> mprotect(0x7f3468081000, 2097152, PROT_NONE) = 0<br>
> mmap(0x7f3468281000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5f000) = 0x7f3468281000<br>
><br>
> close(3) = 0<br>
> open("/lib64/liblzma.so.5", O_RDONLY|O_CLOEXEC) = 3<br>
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000/\0\0\0\0\0\0"..., 832) = 832<br>
> fstat(3, {st_mode=S_IFREG|0755, st_size=153184, ...}) = 0<br>
> mmap(NULL, 2245240, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3467dfd000<br>
> mprotect(0x7f3467e21000, 2093056, PROT_NONE) = 0<br>
> mmap(0x7f3468020000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x23000) = 0x7f3468020000<br>
><br>
> close(3) = 0<br>
> open("/lib64/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3<br>
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\320\16\0\0\0\0\0\0"..., 832) = 832<br>
> fstat(3, {st_mode=S_IFREG|0755, st_size=19512, ...}) = 0<br>
> mmap(NULL, 2109744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f3467bf9000<br>
> mprotect(0x7f3467bfc000, 2093056, PROT_NONE) = 0<br>
> mmap(0x7f3467dfb000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f3467dfb000<br>
><br>
> close(3) = 0<br>
> open("/lib64/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3<br>
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240l\0\0\0\0\0\0"..., 832) = 832<br>
> fstat(3, {st_mode=S_IFREG|0755, st_size=141616, ...}) = 0<br>
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3468a7f000<br>
> mmap(NULL, 2208864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f34679dd000<br>
> mprotect(0x7f34679f3000, 2097152, PROT_NONE) = 0<br>
> mmap(0x7f3467bf3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f3467bf3000<br>
> mmap(0x7f3467bf5000, 13408, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f3467bf5000<br>
> close(3) = 0<br>
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3468a7e000<br>
> mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3468a7c000<br>
> arch_prctl(ARCH_SET_FS, 0x7f3468a7c800) = 0<br>
> mprotect(0x7f3468639000, 16384, PROT_READ) = 0<br>
> mprotect(0x7f3467bf3000, 4096, PROT_READ) = 0<br>
> mprotect(0x7f3467dfb000, 4096, PROT_READ) = 0<br>
> mprotect(0x7f3468020000, 4096, PROT_READ) = 0<br>
> mprotect(0x7f3468281000, 4096, PROT_READ) = 0<br>
> mprotect(0x7f3468865000, 4096, PROT_READ) = 0<br>
> mprotect(0x611000, 4096, PROT_READ) = 0<br>
> mprotect(0x7f3468a8a000, 4096, PROT_READ) = 0<br>
> munmap(0x7f3468a81000, 31874) = 0<br>
> set_tid_address(0x7f3468a7cad0) = 24942<br>
> set_robust_list(0x7f3468a7cae0, 24) = 0<br>
> rt_sigaction(SIGRTMIN, {0x7f34679e3780, [], SA_RESTORER|SA_SIGINFO, 0x7f34679ec130}, NULL, 8) = 0<br>
> rt_sigaction(SIGRT_1, {0x7f34679e3810, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f34679ec130}, NULL, 8) = 0<br>
><br>
> rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0<br>
> getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0<br>
> statfs("/sys/fs/selinux", {f_type=0xf97cff8c, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0<br>
> statfs("/sys/fs/selinux", {f_type=0xf97cff8c, f_bsize=4096, f_blocks=0, f_bfree=0, f_bavail=0, f_files=0, f_ffree=0, f_fsid={0, 0}, f_namelen=255, f_frsize=4096}) = 0<br>
> stat("/sys/fs/selinux", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0<br>
> brk(0) = 0x8db000<br>
> brk(0x8fc000) = 0x8fc000<br>
> mkdir("test", 0777<br>
Can you also collect the statedump of all the brick processes when the command is hung?<br>
<br>
+ Ravi, could you check this?<br>
><br>
>> ><br>
>> ><br>
>> ><br>
>> ><br>
>> >> ><br>
>> >> > Then ... do I need to run something on one of the bricks while strace is<br>
>> >> > running?<br>
>> >> ><br>
>> >> > Cheers,<br>
>> >> > Kingsley.<br>
>> >> ><br>
>> >> ><br>
>> >> > > ><br>
>> >> > > > [root@gluster1b-1 ~]# gluster volume heal callrec info<br>
>> >> > > > Brick gluster1a-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > <gfid:164f888f-2049-49e6-ad26-c758ee091863><br>
>> >> > > > /recordings/834723/14391 - Possibly undergoing heal<br>
>> >> > > ><br>
>> >> > > > <gfid:e280b40c-d8b7-43c5-9da7-4737054d7a7f><br>
>> >> > > > <gfid:b1fbda4a-732f-4f5d-b5a1-8355d786073e><br>
>> >> > > > <gfid:edb74524-b4b7-4190-85e7-4aad002f6e7c><br>
>> >> > > > <gfid:9b8b8446-1e27-4113-93c2-6727b1f457eb><br>
>> >> > > > <gfid:650efeca-b45c-413b-acc3-f0a5853ccebd><br>
>> >> > > > Number of entries: 7<br>
>> >> > > ><br>
>> >> > > > Brick gluster1b-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > Number of entries: 0<br>
>> >> > > ><br>
>> >> > > > Brick gluster2a-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > <gfid:e280b40c-d8b7-43c5-9da7-4737054d7a7f><br>
>> >> > > > <gfid:164f888f-2049-49e6-ad26-c758ee091863><br>
>> >> > > > <gfid:650efeca-b45c-413b-acc3-f0a5853ccebd><br>
>> >> > > > <gfid:b1fbda4a-732f-4f5d-b5a1-8355d786073e><br>
>> >> > > > /recordings/834723/14391 - Possibly undergoing heal<br>
>> >> > > ><br>
>> >> > > > <gfid:edb74524-b4b7-4190-85e7-4aad002f6e7c><br>
>> >> > > > <gfid:9b8b8446-1e27-4113-93c2-6727b1f457eb><br>
>> >> > > > Number of entries: 7<br>
>> >> > > ><br>
>> >> > > > Brick gluster2b-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > Number of entries: 0<br>
>> >> > > ><br>
>> >> > > ><br>
>> >> > > > If I query each brick directly for the number of files/directories<br>
>> >> > > > within that, I get 1731 on gluster1a-1 and gluster2a-1, but 1737 on<br>
>> >> > > the<br>
>> >> > > > other two, using this command:<br>
>> >> > > ><br>
>> >> > > > # find /data/brick/callrec/recordings/834723/14391 -print | wc -l<br>
>> >> > > ><br>
>> >> > > > Cheers,<br>
>> >> > > > Kingsley.<br>
>> >> > > ><br>
>> >> > > > On Mon, 2015-08-10 at 11:05 +0100, Kingsley wrote:<br>
>> >> > > > > Sorry for the blind panic - restarting the volume seems to have<br>
>> >> > > fixed<br>
>> >> > > > > it.<br>
>> >> > > > ><br>
>> >> > > > > But then my next question - why is this necessary? Surely it<br>
>> >> > > undermines<br>
>> >> > > > > the whole point of a high availability system?<br>
>> >> > > > ><br>
>> >> > > > > Cheers,<br>
>> >> > > > > Kingsley.<br>
>> >> > > > ><br>
>> >> > > > > On Mon, 2015-08-10 at 10:53 +0100, Kingsley wrote:<br>
>> >> > > > > > Hi,<br>
>> >> > > > > ><br>
>> >> > > > > > We have a 4 way replicated volume using gluster 3.6.3 on CentOS<br>
>> >> > > 7.<br>
>> >> > > > > ><br>
>> >> > > > > > Over the weekend I did a yum update on each of the bricks in<br>
>> >> > > turn, but<br>
>> >> > > > > > now when clients (using fuse mounts) try to access the volume,<br>
>> >> > > it hangs.<br>
>> >> > > > > > Gluster itself wasn't updated (we've disabled that repo so that<br>
>> >> > > we keep<br>
>> >> > > > > > to 3.6.3 for now).<br>
>> >> > > > > ><br>
>> >> > > > > > This was what I did:<br>
>> >> > > > > ><br>
>> >> > > > > > * on first brick, "yum update"<br>
>> >> > > > > > * reboot brick<br>
>> >> > > > > > * watch "gluster volume status" on another brick and wait<br>
>> >> > > for it<br>
>> >> > > > > > to say all 4 bricks are online before proceeding to<br>
>> >> > > update the<br>
>> >> > > > > > next brick<br>
>> >> > > > > ><br>
>> >> > > > > > I was expecting the clients might pause 30 seconds while they<br>
>> >> > > notice a<br>
>> >> > > > > > brick is offline, but then recover.<br>
>> >> > > > > ><br>
>> >> > > > > > I've tried re-mounting clients, but that hasn't helped.<br>
>> >> > > > > ><br>
>> >> > > > > > I can't see much data in any of the log files.<br>
>> >> > > > > ><br>
>> >> > > > > > I've tried "gluster volume heal callrec" but it doesn't seem to<br>
>> >> > > have<br>
>> >> > > > > > helped.<br>
>> >> > > > > ><br>
>> >> > > > > > What shall I do next?<br>
>> >> > > > > ><br>
>> >> > > > > > I've pasted some stuff below in case any of it helps.<br>
>> >> > > > > ><br>
>> >> > > > > > Cheers,<br>
>> >> > > > > > Kingsley.<br>
>> >> > > > > ><br>
>> >> > > > > > [root@gluster1b-1 ~]# gluster volume info callrec<br>
>> >> > > > > ><br>
>> >> > > > > > Volume Name: callrec<br>
>> >> > > > > > Type: Replicate<br>
>> >> > > > > > Volume ID: a39830b7-eddb-4061-b381-39411274131a<br>
>> >> > > > > > Status: Started<br>
>> >> > > > > > Number of Bricks: 1 x 4 = 4<br>
>> >> > > > > > Transport-type: tcp<br>
>> >> > > > > > Bricks:<br>
>> >> > > > > > Brick1: gluster1a-1:/data/brick/callrec<br>
>> >> > > > > > Brick2: gluster1b-1:/data/brick/callrec<br>
>> >> > > > > > Brick3: gluster2a-1:/data/brick/callrec<br>
>> >> > > > > > Brick4: gluster2b-1:/data/brick/callrec<br>
>> >> > > > > > Options Reconfigured:<br>
>> >> > > > > > performance.flush-behind: off<br>
>> >> > > > > > [root@gluster1b-1 ~]#<br>
>> >> > > > > ><br>
>> >> > > > > ><br>
>> >> > > > > > [root@gluster1b-1 ~]# gluster volume status callrec<br>
>> >> > > > > > Status of volume: callrec<br>
>> >> > > > > > Gluster process Port<br>
>> >> > > Online Pid<br>
>> >> > > > > ><br>
>> >> > > ------------------------------------------------------------------------------<br>
>> >> > > > > > Brick gluster1a-1:/data/brick/callrec 49153<br>
>> >> > > Y 6803<br>
>> >> > > > > > Brick gluster1b-1:/data/brick/callrec 49153<br>
>> >> > > Y 2614<br>
>> >> > > > > > Brick gluster2a-1:/data/brick/callrec 49153<br>
>> >> > > Y 2645<br>
>> >> > > > > > Brick gluster2b-1:/data/brick/callrec 49153<br>
>> >> > > Y 4325<br>
>> >> > > > > > NFS Server on localhost 2049<br>
>> >> > > Y 2769<br>
>> >> > > > > > Self-heal Daemon on localhost N/A<br>
>> >> > > Y 2789<br>
>> >> > > > > > NFS Server on gluster2a-1 2049<br>
>> >> > > Y 2857<br>
>> >> > > > > > Self-heal Daemon on gluster2a-1 N/A<br>
>> >> > > Y 2814<br>
>> >> > > > > > NFS Server on 88.151.41.100 2049<br>
>> >> > > Y 6833<br>
>> >> > > > > > Self-heal Daemon on 88.151.41.100 N/A<br>
>> >> > > Y 6824<br>
>> >> > > > > > NFS Server on gluster2b-1 2049<br>
>> >> > > Y 4428<br>
>> >> > > > > > Self-heal Daemon on gluster2b-1 N/A<br>
>> >> > > Y 4387<br>
>> >> > > > > ><br>
>> >> > > > > > Task Status of Volume callrec<br>
>> >> > > > > ><br>
>> >> > > ------------------------------------------------------------------------------<br>
>> >> > > > > > There are no active volume tasks<br>
>> >> > > > > ><br>
>> >> > > > > > [root@gluster1b-1 ~]#<br>
>> >> > > > > ><br>
>> >> > > > > ><br>
>> >> > > > > > [root@gluster1b-1 ~]# gluster volume heal callrec info<br>
>> >> > > > > > Brick gluster1a-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > > > /to_process - Possibly undergoing heal<br>
>> >> > > > > ><br>
>> >> > > > > > Number of entries: 1<br>
>> >> > > > > ><br>
>> >> > > > > > Brick gluster1b-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > > > Number of entries: 0<br>
>> >> > > > > ><br>
>> >> > > > > > Brick gluster2a-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > > > /to_process - Possibly undergoing heal<br>
>> >> > > > > ><br>
>> >> > > > > > Number of entries: 1<br>
>> >> > > > > ><br>
>> >> > > > > > Brick gluster2b-1.dns99.co.uk:/data/brick/callrec/<br>
>> >> > > > > > Number of entries: 0<br>
>> >> > > > > ><br>
>> >> > > > > > [root@gluster1b-1 ~]#<br>
>> >> > > > > ><br>
>> >> > > > > ><br>
>> >> > > > > > _______________________________________________<br>
>> >> > > > > > Gluster-users mailing list<br>
>> >> > > > > > <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
>> >> > > > > > <a href="http://www.gluster.org/mailman/listinfo/gluster-users">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
>> >> > > > > ><br>
>> >> > > > ><br>
>> >> > > > > _______________________________________________<br>
>> >> > > > > Gluster-users mailing list<br>
>> >> > > > > <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
>> >> > > > > <a href="http://www.gluster.org/mailman/listinfo/gluster-users">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
>> >> > > > ><br>
>> >> > > ><br>
>> >> > > > _______________________________________________<br>
>> >> > > > Gluster-users mailing list<br>
>> >> > > > <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
>> >> > > > <a href="http://www.gluster.org/mailman/listinfo/gluster-users">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
>> >> > ><br>
>> >> > ><br>
>> >> ><br>
>> >><br>
>> >><br>
>><br>
>><br>
>><br>
>> _______________________________________________<br>
>> Gluster-users mailing list<br>
>> <a href="mailto:Gluster-users@gluster.org">Gluster-users@gluster.org</a><br>
>> <a href="http://www.gluster.org/mailman/listinfo/gluster-users">http://www.gluster.org/mailman/listinfo/gluster-users</a><br>
</p>