Comment #19 on issue 99 by [email protected]: Memcached 1.4.2 server
segmentation fault
http://code.google.com/p/memcached/issues/detail?id=99
Yes, I am still running this on gentoo, PHP 5.3.3 with a memcache 2.2.5
client (as reported by phpinfo()). Here is a backtrace under gdb:
gdb --args ./memcached-debug -l localhost -vvv
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) run
Starting program: /home/thom/memcached-memcached-fe2fb1d/memcached-debug -l
localhost -vvv
[Thread debugging using libthread_db enabled]
slab class 1: chunk size 80 perslab 13107
slab class 2: chunk size 104 perslab 10082
slab class 3: chunk size 136 perslab 7710
slab class 4: chunk size 176 perslab 5957
slab class 5: chunk size 224 perslab 4681
slab class 6: chunk size 280 perslab 3744
slab class 7: chunk size 352 perslab 2978
slab class 8: chunk size 440 perslab 2383
slab class 9: chunk size 552 perslab 1899
slab class 10: chunk size 696 perslab 1506
slab class 11: chunk size 872 perslab 1202
slab class 12: chunk size 1096 perslab 956
slab class 13: chunk size 1376 perslab 762
slab class 14: chunk size 1720 perslab 609
slab class 15: chunk size 2152 perslab 487
slab class 16: chunk size 2696 perslab 388
slab class 17: chunk size 3376 perslab 310
slab class 18: chunk size 4224 perslab 248
slab class 19: chunk size 5280 perslab 198
slab class 20: chunk size 6600 perslab 158
slab class 21: chunk size 8256 perslab 127
slab class 22: chunk size 10320 perslab 101
slab class 23: chunk size 12904 perslab 81
slab class 24: chunk size 16136 perslab 64
slab class 25: chunk size 20176 perslab 51
slab class 26: chunk size 25224 perslab 41
slab class 27: chunk size 31536 perslab 33
slab class 28: chunk size 39424 perslab 26
slab class 29: chunk size 49280 perslab 21
slab class 30: chunk size 61600 perslab 17
slab class 31: chunk size 77000 perslab 13
slab class 32: chunk size 96256 perslab 10
slab class 33: chunk size 120320 perslab 8
slab class 34: chunk size 150400 perslab 6
slab class 35: chunk size 188000 perslab 5
slab class 36: chunk size 235000 perslab 4
slab class 37: chunk size 293752 perslab 3
slab class 38: chunk size 367192 perslab 2
slab class 39: chunk size 458992 perslab 2
slab class 40: chunk size 573744 perslab 1
slab class 41: chunk size 717184 perslab 1
slab class 42: chunk size 1048576 perslab 1
[New Thread 0xb7eb66c0 (LWP 6457)]
[New Thread 0xb7e74b70 (LWP 6460)]
[New Thread 0xb7673b70 (LWP 6461)]
[New Thread 0xb6e72b70 (LWP 6462)]
[New Thread 0xb6671b70 (LWP 6463)]
[New Thread 0xb5e70b70 (LWP 6464)]
<34 server listening (auto-negotiate)
<35 send buffer was 107520, now 268435456
<35 server listening (udp)
<35 server listening (udp)
<35 server listening (udp)
<35 server listening (udp)
<36 new auto-negotiating client connection
36: going from conn_new_cmd to conn_waiting
36: going from conn_waiting to conn_read
36: going from conn_read to conn_parse_cmd
36: Client using the ascii protocol
<36 set test 0 10 524288
36: going from conn_parse_cmd to conn_nread
NOT FOUND test
36 STORED
36: going from conn_nread to conn_write
36: going from conn_write to conn_new_cmd
36: going from conn_new_cmd to conn_waiting
36: going from conn_waiting to conn_read
<37 new auto-negotiating client connection
36: going from conn_read to conn_closing
<36 connection closed.
37: going from conn_new_cmd to conn_waiting
37: going from conn_waiting to conn_read
37: going from conn_read to conn_parse_cmd
37: Client using the ascii protocol
<37 get test
FOUND KEY test
37 sending key test
37 END
37: going from conn_parse_cmd to conn_mwrite
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb7673b70 (LWP 6461)]
0xb802d1a1 in event_base_set () from /usr/lib/libevent-2.0.so.5
(gdb) backtrace
#0 0xb802d1a1 in event_base_set () from /usr/lib/libevent-2.0.so.5
#1 0x095f67c0 in ?? ()
#2 0x095f67c0 in ?? ()
#3 0x00000014 in ?? ()
#4 0x095f67d0 in ?? ()
#5 0x0804a26b in update_event (c=0xb802d0f7, new_flags=134579104)
at memcached.c:3353
#6 0x08059d25 in event_handler (fd=37, which=2, arg=0x95f67c0)
at memcached.c:3438
#7 0xb8030441 in event_base_loop () from /usr/lib/libevent-2.0.so.5
---
2 more additional backtraces only:
#0 0xb7ec41a1 in event_base_set () from /usr/lib/libevent-2.0.so.5
#1 0x0812dad0 in ?? ()
#2 0x0812dad0 in ?? ()
#3 0x00000014 in ?? ()
#4 0x0812dae0 in ?? ()
#5 0x0804a26b in update_event (c=0xb7ec40f7, new_flags=134579104)
at memcached.c:3353
#6 0x08059d25 in event_handler (fd=36, which=2, arg=0x812dad0)
at memcached.c:3438
#7 0xb7ec7441 in event_base_loop () from /usr/lib/libevent-2.0.so.5
---
#0 0xb7fcd1a1 in event_base_set () from /usr/lib/libevent-2.0.so.5
#1 0x0847e0a0 in ?? ()
#2 0x0847e0a0 in ?? ()
#3 0x00000014 in ?? ()
#4 0x0847e0b0 in ?? ()
#5 0x0804a26b in update_event (c=0xb7fcd0f7, new_flags=134579104)
at memcached.c:3353
#6 0x08059d25 in event_handler (fd=36, which=2, arg=0x847e0a0)
at memcached.c:3438
#7 0xb7fd0441 in event_base_loop () from /usr/lib/libevent-2.0.so.5
---
Seems to always be in the same spot, and I believe it is because the "base"
variable does not contain a valid address.
Thanks.