djveremix / redis

Automatically exported from code.google.com/p/redis
0 stars 0 forks source link

Bus error on sparc64 #255

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
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...

Original issue reported on code.google.com by dco...@gmail.com on 10 Jun 2010 at 10:58

GoogleCodeExporter commented 9 years ago
Hello! in order to solve this I need shell access to such a box. Please can you 
provide me with an access?

Thanks,
Salvatore

Original comment by anti...@gmail.com on 30 Aug 2010 at 10:53

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
After your last commit, now redis passes all the tests on OpenBSD/sparc64.

Thank you,
David

Original comment by dco...@gmail.com on 8 Oct 2010 at 11:59

GoogleCodeExporter commented 9 years ago
Great news! Closing.

Original comment by pcnoordh...@gmail.com on 8 Oct 2010 at 12:11