[Gluster-devel] brick stop responding (3.4.0qa8)

Emmanuel Dreyfus manu at netbsd.org
Mon Feb 4 09:34:52 UTC 2013

On Sun, Feb 03, 2013 at 02:13:40PM -0800, Anand Avati wrote:
> Yeah, a lot of threads are "missing"! Do the logs have anything unusual?

I understand the threads are here, but the process is corrupted enough
that gdb cannot figure them out. A kernel thread shows 15 threads operating
and they do not terminate before it stops responding.

Running with electric fence leads to an early crash. I am not sure
it is related, but it is probably worth a fix:

Program terminated with signal 11, Segmentation fault.
#0  slotForUserAddress (address=0x7f7ff2bafff4) at efence.c:648
648     efence.c: No such file or directory.
        in efence.c
(gdb) bt
#0  slotForUserAddress (address=0x7f7ff2bafff4) at efence.c:648
#1  free (address=0x7f7ff2bafff4) at efence.c:713
#2  0x00007f7ff744a31a in runner_end (runner=0x7f7ff1bfeef0) at run.c:370
#3  0x00007f7ff744ac9e in runner_run_generic (runner=0x7f7ff1bfeef0, 
    rfin=0x7f7ff744a2f6 <runner_end>) at run.c:386
#4  0x00007f7ff343ddb9 in glusterd_volume_start_glusterfs (
    volinfo=0x7f7ff370fae0, brickinfo=0x7f7ff37407a8, wait=_gf_true)
    at glusterd-utils.c:1337
#5  0x00007f7ff344366b in glusterd_brick_start (volinfo=0x7f7ff370fae0, 
    brickinfo=0x7f7ff37407a8, wait=_gf_true) at glusterd-utils.c:3961
#6  0x00007f7ff3447328 in glusterd_restart_bricks (conf=0x7f7ff73f2a98)
    at glusterd-utils.c:3991
#7  0x00007f7ff743c9c4 in synctask_wrap (old_task=<optimized out>)
    at syncop.c:129
#8  0x00007f7ff5e580a0 in swapcontext () from /usr/lib/libc.so.12

In runner_end():
368             if (runner->argv) {
369                     for (p = runner->argv; *p; p++)
370                             GF_FREE (*p);

Inspection of runner->argv shows it is not NULL terminated. electric-fence
with EF_PROTECT_BELOW  cause us to crash here:
0x7f7ff2ba7e00: 0xf2babfe4      0x00007f7f      0xf2badffc      0x00007f7f
0x7f7ff2ba7e10: 0xf2bafff4      0x00007f7f      0xf2bb1ff0      0x00007f7f
0x7f7ff2ba7e20: 0xf2bb3fe4      0x00007f7f      0xf2bb5ffc      0x00007f7f
0x7f7ff2ba7e30: 0xf2bb7fc4      0x00007f7f      0xf2bb9ffc      0x00007f7f
0x7f7ff2ba7e40: 0xf2bbbfcc      0x00007f7f      0xf2bbdff0      0x00007f7f
0x7f7ff2ba7e50: 0xf2bbfff0      0x00007f7f      0xf2bc1ffc      0x00007f7f
0x7f7ff2ba7e60: 0xf2bc3fcc      0x00007f7f      0xf2bc5ff0      0x00007f7f
0x7f7ff2ba7e70: 0xf2bc7fc4      0x00007f7f      0xf2bc9ff0      0x00007f7f
0x7f7ff2ba7e80: 0xf2bcbff8      0x00007f7f      0xf2bcdff0      0x00007f7f
0x7f7ff2ba7e90: 0xf2bcffe0      0x00007f7f      Cannot access memory at address 0x7f7ff2ba7e98

In case it helps, the last element:
(gdb) x/1s 0x00007f7ff2bcffe0
0x7f7ff2bcffe0:  "gfs33-server.listen-port=49152"

It is indeed the last one reported by ps:
626 ?     Ssl  0:00.34 /usr/local/sbin/glusterfsd -s localhost --volfile-id gfs33.hotstuff.export-wd1a -p /var/lib/glusterd/vols/gfs33/run/hotstuff-export-wd1a.pid -S /var/run/66fedc0377e53ff9d6523d0802a230d1.socket --brick-name /export/wd1a -l /usr/local/var/log/glusterfs/bricks/export-wd1a.log --xlator-option *-posix.glusterd-uuid=2dbb8fc1-c2ab-4992-b080-fdc8556d1e34 --brick-port 49152 --xlator-option gfs33-server.listen-port=49152

Emmanuel Dreyfus
manu at netbsd.org

More information about the Gluster-devel mailing list