New issue 255 by dcoppa: Bus error on sparc64
http://code.google.com/p/redis/issues/detail?id=255
Hi,
I'm testing redis on OpenBSD-current. While the testsuite successfully runs
on i386 (all tests passed), redis crashes with a sigbus error on sparc64
during test #24 (SETNX will overwrite EXPIREing key). This is the gdb
output:
$ gdb ./redis-server
GNU gdb 6.3
Copyright 2004 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 "sparc64-unknown-openbsd4.7"...
(gdb) run
Starting program: /home/frogs/dcoppa/redis-2.0.0-rc1/redis-server
[31152] 10 Jun 12:50:50 # Warning: no config file specified, using the
default config. In order to specify a config file use 'redis-server
/path/to/redis.conf'
[31152] 10 Jun 12:50:50 * Server started, Redis version 1.3.14
[31152] 10 Jun 12:50:50 * The server is now ready to accept connections on
port 6379
[31152] 10 Jun 12:50:50 - 0 clients connected (0 slaves), 903728 bytes in
use
[31152] 10 Jun 12:50:54 - Accepted 127.0.0.1:31368
[31152] 10 Jun 12:50:54 - Client closed connection
[31152] 10 Jun 12:50:54 - Accepted 127.0.0.1:19980
[31152] 10 Jun 12:50:56 - DB 9: 5 keys (0 volatile) in 8 slots HT.
[31152] 10 Jun 12:50:56 - 1 clients connected (0 slaves), 5921752 bytes in
use
[31152] 10 Jun 12:51:01 - DB 9: 101 keys (0 volatile) in 128 slots HT.
[31152] 10 Jun 12:51:01 - 1 clients connected (0 slaves), 30781976 bytes in
use
[31152] 10 Jun 12:51:06 - DB 9: 101 keys (0 volatile) in 128 slots HT.
[31152] 10 Jun 12:51:06 - 1 clients connected (0 slaves), 30781936 bytes in
use
[31152] 10 Jun 12:51:11 - DB 9: 101 keys (0 volatile) in 128 slots HT.
[31152] 10 Jun 12:51:11 - 1 clients connected (0 slaves), 30781936 bytes in
use
[31152] 10 Jun 12:51:16 - DB 9: 101 keys (0 volatile) in 128 slots HT.
[31152] 10 Jun 12:51:16 - 1 clients connected (0 slaves), 30781976 bytes in
use
[31152] 10 Jun 12:51:21 - DB 9: 10101 keys (0 volatile) in 16384 slots HT.
[31152] 10 Jun 12:51:21 - 1 clients connected (0 slaves), 31792072 bytes in
use
Program received signal SIGBUS, Bus error.
0x000000000010b9fc in getLongFromObjectOrReply (c=Variable "c" is not
available.
) at redis.c:3354
3354 *target = value;
(gdb) bt
#0 0x000000000010b9fc in getLongFromObjectOrReply (c=Variable "c" is not
available.
) at redis.c:3354
#1 0x000000000010ba1c in expireGenericCommand (c=0x44d98208,
key=0x4da0fa48, param=0x4da0f828, offset=0) at redis.c:7390
#2 0x000000000010d1e4 in call (c=0x44d98208, cmd=0x327358) at redis.c:2255
#3 0x0000000000118748 in processCommand (c=0x44d98208) at redis.c:2439
#4 0x0000000000117328 in processInputBuffer (c=0x44d98208) at redis.c:2626
#5 0x0000000000118958 in readQueryFromClient (el=0x477e6008,
fd=Variable "fd" is not available.
) at redis.c:2686
#6 0x0000000000103248 in aeProcessEvents (eventLoop=0x477e6008, flags=3)
at ae.c:335
#7 0x000000000010349c in aeMain (eventLoop=0x477e6008) at ae.c:380
#8 0x000000000011c5f4 in main (argc=Variable "argc" is not available.
) at redis.c:10765
(gdb) bt full
#0 0x000000000010b9fc in getLongFromObjectOrReply (c=Variable "c" is not
available.
) at redis.c:3354
value = 10000
#1 0x000000000010ba1c in expireGenericCommand (c=0x44d98208,
key=0x4da0fa48, param=0x4da0f828, offset=0) at redis.c:7390
seconds = Variable "seconds" is not available.
(gdb)
I suspect this is caused by sparc64 strict alignment requirements, but I'm
not particularly skilled in this area...
Comment #1 on issue 255 by antirez: Bus error on sparc64
http://code.google.com/p/redis/issues/detail?id=255
Hello! in order to solve this I need shell access to such a box. Please can
you provide me with an access?
Thanks,
Salvatore
After your latest commit, now redis passes all the tests on OpenBSD/sparc64.
Thank you,
David
After your last commit, now redis passes all the tests on OpenBSD/sparc64.
Thank you,
David
Comment #4 on issue 255 by pcnoordhuis: Bus error on sparc64
http://code.google.com/p/redis/issues/detail?id=255
Great news! Closing.