Bug 763251 (GLUSTER-1519)

Summary: gnfs crash in client_finodelk on CTRL-C on idle glusterfsd
Product: [Community] GlusterFS Reporter: Shehjar Tikoo <shehjart>
Component: protocolAssignee: Amar Tumballi <amarts>
Status: CLOSED DUPLICATE QA Contact:
Severity: medium Docs Contact:
Priority: low    
Version: 3.1-alphaCC: gluster-bugs, vraman
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: RTP Mount Type: nfs
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Shehjar Tikoo 2010-09-03 12:08:30 UTC
[root@centos5 shehjart]# /home/shehjart/glusterfsd-master/sbin/glusterfs -f /home/shehjart/volfiles/nfs-4repl-master.vol -L NONE -l /dev/stdout 
--no-daemon
Given volfile:
+------------------------------------------------------------------------------+
  1: volume centos5-70-e1
  2:    type protocol/client
  3:    option transport-type tcp
  4:    option remote-port 9989
  5:    option remote-host 192.168.1.77
  6:    option remote-subvolume export1-master
  7: end-volume
  8:
  9: volume ub8-71-e1
 10:    type protocol/client
 11:    option transport-type tcp
 12:    option remote-port 9989
 13:    option remote-host 192.168.1.78
 14:    option remote-subvolume export1-master
 15: end-volume
 16:
 17: volume ub10-72-e1
 18:    type protocol/client
 19:    option transport-type tcp
 20:    option remote-port 9989
 21:    option remote-host 192.168.1.79
 22:    option remote-subvolume export1-master
 23: end-volume
 24:
 25: volume rhel5-73-e1
 26:    type protocol/client
 27:    option transport-type tcp
 28:    option remote-port 9989
 29:    option remote-host 192.168.1.80
 30:    option remote-subvolume export1-master
 31: end-volume
 32:
 33: volume 4repl
 34:    type cluster/replicate
 35:    subvolumes centos5-70-e1 ub8-71-e1 ub10-72-e1 rhel5-73-e1
 36: end-volume
 37: volume 4repl-wb
 38:    type performance/write-behind
 39:    subvolumes 4repl 
 40: end-volume
 41:
 42: volume 4repl-wb-ra  
 43:    type performance/read-ahead
 44:    subvolumes 4repl-wb
 45: end-volume
 46:
 47: volume 4repl-wb-ra-ioc
 48:    type performance/io-cache
 49:    subvolumes 4repl-wb-ra
 50: end-volume
 51:
 52: volume 4repl-wb-ra-ioc-qr
 53:    type performance/quick-read
 54:    subvolumes 4repl-wb-ra-ioc
 55: end-volume
 56:
 57: volume 4repl-stage  
 58:    type performance/stat-prefetch
 59:    subvolumes 4repl-wb-ra-ioc-qr
 60: end-volume
 61:
 62: volume nfs
 63:    type nfs/server  
 64:    subvolumes 4repl-stage
 65:    option rpc-auth.addr.allow *
 66: end-volume


backtrace 1
dlfcn 1
fdatasync 1
libpthread 1
llistxattr 1
setfsid 1
spinlock 1
epoll.h 1
xattr.h 1
st_atim.tv_nsec 1
package-string: glusterfs 3.1.0git
/lib64/libc.so.6[0x32d5c302d0]
/home/shehjart/glusterfsd-master//lib/glusterfs/3.1.0git/xlator/protocol/client.so(client_finodelk+0x57)[0x2aaaaaab6647]
/home/shehjart/glusterfsd-master//lib/glusterfs/3.1.0git/xlator/cluster/replicate.so(afr_lock_blocking+0x655)[0x2aaaaad12b15]
/home/shehjart/glusterfsd-master//lib/glusterfs/3.1.0git/xlator/cluster/replicate.so[0x2aaaaad130f3]
/home/shehjart/glusterfsd-master//lib/glusterfs/3.1.0git/xlator/cluster/replicate.so[0x2aaaaad132e4]
/home/shehjart/glusterfsd-master//lib/glusterfs/3.1.0git/xlator/protocol/client.so(client3_1_finodelk_cbk+0xb4)[0x2aaaaaac2d24]
/home/shehjart/glusterfsd-master//lib/libgfrpc.so.0(saved_frames_unwind+0x192)[0x2ba16ca94792]
/home/shehjart/glusterfsd-master//lib/libgfrpc.so.0(saved_frames_destroy+0xe)[0x2ba16ca9480e]
/home/shehjart/glusterfsd-master//lib/libgfrpc.so.0(rpc_clnt_connection_cleanup+0x7e)[0x2ba16ca9489e]
/home/shehjart/glusterfsd-master//lib/libgfrpc.so.0(rpc_clnt_destroy+0x1d)[0x2ba16ca9490d]
/home/shehjart/glusterfsd-master//lib/glusterfs/3.1.0git/xlator/protocol/client.so(fini+0x25)[0x2aaaaaab4f45]
/home/shehjart/glusterfsd-master/sbin/glusterfs[0x4037b7]
/lib64/libc.so.6[0x32d5c302d0]
/lib64/libc.so.6(epoll_wait+0x58)[0x32d5cd4108]
/home/shehjart/glusterfsd-master//lib/libglusterfs.so.0[0x2ba16c858cb7]
/home/shehjart/glusterfsd-master/sbin/glusterfs(main+0x37d)[0x40471d]
/lib64/libc.so.6(__libc_start_main+0xf4)[0x32d5c1d994]
/home/shehjart/glusterfsd-master/sbin/glusterfs[0x402d09]
---------


Segmentation fault (core dumped)



Backtrace:

Core was generated by `/home/shehjart/glusterfsd-master/sbin/glusterfs -f /home/shehjart/volfiles/nfs-'.
Program terminated with signal 11, Segmentation fault.
#0  client_finodelk (frame=0x2ba16d740bb8, this=0xf1fbc08, volume=0xf1fc9a8 "4repl", fd=0x2aaaae6e5bf0, cmd=7, lock=0x7fff70a30b20)
    at client.c:1249
1249            if (!conf->fops)
(gdb) bt
#0  client_finodelk (frame=0x2ba16d740bb8, this=0xf1fbc08, volume=0xf1fc9a8 "4repl", fd=0x2aaaae6e5bf0, cmd=7, lock=0x7fff70a30b20)
    at client.c:1249
#1  0x00002aaaaad12b15 in afr_lock_blocking (frame=0x2ba16d73c0b8, this=0xf1fcb08, child_index=3) at afr-lk-common.c:1002
#2  0x00002aaaaad130f3 in afr_lock_cbk (frame=0x2ba16d73c0b8, cookie=<value optimized out>, this=0xf1fcb08, op_ret=-1, op_errno=107)
    at afr-lk-common.c:751
#3  0x00002aaaaad132e4 in afr_blocking_inodelk_cbk (frame=0x2ba16d73c0b8, cookie=0x2, this=0xf1fcb08, op_ret=-1, op_errno=107)
    at afr-lk-common.c:765
#4  0x00002aaaaaac2d24 in client3_1_finodelk_cbk (req=<value optimized out>, iov=<value optimized out>, count=<value optimized out>,
    myframe=0x2ba16d73f338) at client3_1-fops.c:1103
#5  0x00002ba16ca94792 in saved_frames_unwind (saved_frames=0xf20e068) at rpc-clnt.c:337
#6  0x00002ba16ca9480e in saved_frames_destroy (frames=0xf20e068) at rpc-clnt.c:353
#7  0x00002ba16ca9489e in rpc_clnt_connection_cleanup (conn=0xf20d978) at rpc-clnt.c:500
#8  0x00002ba16ca9490d in rpc_clnt_destroy (rpc=0xf20d948) at rpc-clnt.c:1389
#9  0x00002aaaaaab4f45 in fini (this=<value optimized out>) at client.c:1810
#10 0x00000000004037b7 in cleanup_and_exit (signum=<value optimized out>) at glusterfsd.c:664
#11 <signal handler called>
#12 0x00000032d5cd4108 in epoll_wait () from /lib64/libc.so.6
#13 0x00002ba16c858cb7 in event_dispatch_epoll (event_pool=0xf1f3b08) at event.c:859
#14 0x000000000040471d in main (argc=8, argv=0x7fff70a31808) at glusterfsd.c:1394
(gdb) p conf
$1 = (clnt_conf_t *) 0x0
(gdb) list
1244            clnt_conf_t *conf = NULL;
1245            rpc_clnt_procedure_t *proc = NULL;
1246            clnt_args_t  args = {0,};
1247
1248            conf = this->private;
1249            if (!conf->fops)
1250                    goto out;
1251
1252            args.fd     = fd;
1253            args.cmd    = cmd;
(gdb) p this
$2 = (xlator_t *) 0xf1fbc08
(gdb) p *this
$3 = {name = 0xf1fbaa8 "rhel5-73-e1", type = 0xf1fc608 "protocol/client", next = 0xf1fad08, prev = 0xf1fcb08, parents = 0xf1fdd58,
  children = 0x0, options = 0xf1fc568, dlhandle = 0xf1f9280, fops = 0x2aaaaacd7b60, cbks = 0x2aaaaacd7b40, dumpops = 0x2aaaaacd7e00,
  volume_options = {next = 0xf1fc6c8, prev = 0xf1fc6c8}, fini = 0x2aaaaaab4f20 <fini>, init = 0x2aaaaaab53f0 <init>,
  mem_acct_init = 0x2aaaaaab50b0 <mem_acct_init>, notify = 0x2aaaaaab5520 <notify>, loglevel = GF_LOG_NONE, latencies = {{min = 0, max = 0,
      total = 0, std = 0, mean = 0, count = 0} <repeats 45 times>}, ctx = 0xf1f2010, graph = 0xf1f43a8, itable = 0x0,
  init_succeeded = 1 '\001', private = 0x0, mem_acct = {num_types = 80, rec = 0xf20a550}}
(gdb) p *this->private
Attempt to dereference a generic pointer.
(gdb) p this->private
$4 = (void *) 0x0

Comment 1 Amar Tumballi 2010-09-03 23:04:01 UTC
This is happening because 'finodelk()' is called in client from 'fini()'.. issue is proper cleanup..

Comment 2 Amar Tumballi 2010-09-07 03:32:50 UTC
should be fixed from this patch  : http://patches.gluster.com/patch/4576/

Comment 3 Shehjar Tikoo 2010-09-07 03:50:16 UTC

*** This bug has been marked as a duplicate of bug 1517 ***