[Gluster-devel] pre6 - SEGV on first try

August R. Wohlt glusterfs at isidore.net
Tue Jul 24 12:52:00 UTC 2007


Hello,

I downloaded pre6 today and compiled it. glusterfsd starts up successfully,
but if I connect to the socket then disconnect, it segfaults. It does this
every time. The server never segfaulted with pre5 on the same configuration,
though my clients did at random times after heavy load inside write-behind.
Hope this report helps:

Distro is CentOS 5 - stock kernel, latest yum updates, everything included
in installation.
 [emu at chai ~]$ uname -a
 Linux chai 2.6.18-8.1.8.el5xen #1 SMP Tue Jul 10 07:06:45 EDT 2007 x86_64
x86_64 x86_64 GNU/Linux

fuse: fuse-2.7.0 - built by hand with standard installation:
 ./configure
 make
 make install
 modprobe fuse

glusterfs downloaded, untarred and built like so:

 ./configure --prefix=/usr
 make CFLAGS='-g -O0'
 make install

started with this config:

volume test_ko
  type storage/posix
  option directory /home/vg_3ware1/test/ko
end-volume

volume test_op
  type storage/posix
  option directory /home/vg_3ware1/test/op
end-volume

### Add network serving capability to above brick.
volume server
  type protocol/server
  option transport-type tcp/server     # For TCP/IP transport
  option bind-address 192.168.2.5     # Default is to listen on all
interfaces
  subvolumes test_ko test_op
  option auth.ip.test_op.allow * # Allow access to "brick" volume
  option auth.ip.test_ko.allow * # Allow access to "brick" volume
end-volume


To produce the segfault, I simply telnet to the port and immediately
disconnect. Dumps every time:

 telnet 192.168.2.5 6996
 ^]quit

Backtrace from gdb shows:

 [emu at chai ~]$ sudo gdb glusterfsd
 GNU gdb Red Hat Linux (6.5-16.el5rh)
 Copyright (C) 2006 Free Software Foundation, Inc.
 GDB is free software, covered by the GNU General Public License, and you
are
 welcome to change it and/or distribute copies of it under certain
conditions.
 Type "show copying" to see the conditions.
 There is absolutely no warranty for GDB.  Type "show warranty" for details.
 This GDB was configured as "x86_64-redhat-linux-gnu"...(no debugging
symbols found)
 Using host libthread_db library "/lib64/libthread_db.so.1".

 (gdb) set args -N
 (gdb) run
 Starting program: /sbin/glusterfsd -N
 warning: Lowest section in system-supplied DSO at 0xffffe000 is .hash at
ffffe0b4
 (no debugging symbols found)
 (no debugging symbols found)
 [Thread debugging using libthread_db enabled]
 [New Thread 4160661184 (LWP 26983)]
 glusterfsd: WARNING: ignoring stale pidfile for PID 26972
 [New Thread 4160658320 (LWP 26986)]

 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 4160661184 (LWP 26983)]
 0x4a76f2a0 in pthread_mutex_lock () from //lib/libpthread.so.0
 (gdb) bt
 #0  0x4a76f2a0 in pthread_mutex_lock () from //lib/libpthread.so.0
 #1  0xf75dd895 in get_frame_for_transport (trans=0x8055ee0) at
server-protocol.c:5525
 #2  0xf75de225 in notify (this=0x8050f28, event=2, data=0x8055ee0) at
server-protocol.c:5638
 #3  0x47611c87 in transport_notify (this=0x0, event=0) at transport.c:152
 #4  0x476126f9 in sys_epoll_iteration (ctx=0xff89f348) at epoll.c:54
 #5  0x47611d5d in poll_iteration (ctx=0xff89f348) at transport.c:260
 #6  0x08049150 in main ()

and the logs show:

 2007-07-24 08:36:28 C [common-utils.c:208:gf_print_trace] debug-backtrace:
Got signal (11), printing backtrace
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
//lib/libglusterfs.so.0(gf_print_trace+0x2d) [0x476107ed]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
[0xffffe500]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
//lib/glusterfs/1.3.0-pre5.3/xlator/protocol/server.so [0xf75dd895]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
//lib/glusterfs/1.3.0-pre5.3/xlator/protocol/server.so(notify+0x1a5)
[0xf75de225]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
//lib/libglusterfs.so.0(transport_notify+0x37) [0x47611c87]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
//lib/libglusterfs.so.0(sys_epoll_iteration+0xd9) [0x476126f9]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
//lib/libglusterfs.so.0(poll_iteration+0x1d) [0x47611d5d]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
[glusterfsd] [0x8049150]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
//lib/libc.so.6(__libc_start_main+0xdc) [0x4a63edec]
 2007-07-24 08:36:28 C [common-utils.c:210:gf_print_trace] debug-backtrace:
[glusterfsd] [0x8048b91]
 2007-07-24 08:37:13 E [protocol.c:262:gf_block_unserialize_transport]
libglusterfs/protocol: full_read of  header failed: peer (192.168.2.5)

thanks for the great work!
-goose



More information about the Gluster-devel mailing list