Lachim / redis

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

Crash if client forks and both processes issue commands #517

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What version of Redis you are using, in what kind of Operating System?

redis-2.2.4 on Mac OS X 10.5

What is the problem you are experiencing?

redis crashes

What steps will reproduce the problem?

Run redis-server and connect with the attached client program.

If it is a crash, can you please paste the stack trace that you can find in
the log file or on standard output? This is really useful for us!

Here is the output, including the stack trace:

[48073] 12 Apr 16:46:52 # Warning: no config file specified, using the default 
config. In order to specify a config file use 'redis-server /path/to/redis.conf'
[48073] 12 Apr 16:46:52 * Server started, Redis version 2.2.4
[48073] 12 Apr 16:46:52 * DB loaded from disk: 0 seconds
[48073] 12 Apr 16:46:52 * The server is now ready to accept connections on port 
6379
[48073] 12 Apr 16:46:53 - 0 clients connected (0 slaves), 420848 bytes in use
./try-to-trigger-bug
[48073] 12 Apr 16:46:57 - Accepted 127.0.0.1:61418
issuing reload command
getting x
[48073] 12 Apr 16:47:00 * DB saved on disk
[48073] 12 Apr 16:47:01 # === ASSERTION FAILED ===
[48073] 12 Apr 16:47:01 # ==> networking.c:700 'c->argc == 0' is not true
[48073] 12 Apr 16:47:01 # (forcing SIGSEGV in order to print the stack trace)
[48073] 12 Apr 16:47:01 # ======= Ooops! Redis 2.2.4 got signal: -11- =======
[48073] 12 Apr 16:47:01 # redis_version:2.2.4
redis_git_sha1:00000000
redis_git_dirty:0
arch_bits:32
multiplexing_api:select
process_id:48073
uptime_in_seconds:9
uptime_in_days:0
lru_clock:240697
used_cpu_sys:0.00
used_cpu_user:0.03
used_cpu_sys_childrens:0.00
used_cpu_user_childrens:0.00
connected_clients:1
connected_slaves:0
client_longest_output_list:0
client_biggest_input_buf:20
blocked_clients:0
used_memory:428864
used_memory_human:418.81K
used_memory_rss:831488
mem_fragmentation_ratio:1.94
use_tcmalloc:0
loading:1
aof_enabled:0
changes_since_last_save:0
bgsave_in_progress:0
last_save_time:1302641220
bgrewriteaof_in_progress:0
total_connections_received:1
total_commands_processed:0
expired_keys:0
evicted_keys:0
keyspace_hits:0
keyspace_misses:0
hash_max_zipmap_entries:512
hash_max_zipmap_value:64
pubsub_channels:0
pubsub_patterns:0
vm_enabled:0
role:master
loading_start_time:1302641221
loading_total_bytes:10
loading_loaded_bytes:9
loading_loaded_perc:90.00
loading_eta_seconds:1
alloc
[48073] 12 Apr 16:47:02 # 1   redis-server                        0x0002a024 
_redisAssert + 100
[48073] 12 Apr 16:47:02 # 2   ???                                 0xffffffff 
0x0 + 4294967295
[48073] 12 Apr 16:47:02 # 3   redis-server                        0x0001105e 
processMultibulkBuffer + 590
[48073] 12 Apr 16:47:02 # 4   redis-server                        0x0001118a 
processInputBuffer + 106
[48073] 12 Apr 16:47:02 # 5   redis-server                        0x000112ad 
readQueryFromClient + 157
[48073] 12 Apr 16:47:02 # 6   redis-server                        0x0000303a 
aeProcessEvents + 522
[48073] 12 Apr 16:47:02 # 7   redis-server                        0x00017096 
rdbLoad + 662
[48073] 12 Apr 16:47:02 # 8   redis-server                        0x0002a718 
debugCommand + 296
[48073] 12 Apr 16:47:02 # 9   redis-server                        0x0000616d 
call + 45
[48073] 12 Apr 16:47:02 # 10  redis-server                        0x00007f25 
processCommand + 613
[48073] 12 Apr 16:47:02 # 11  redis-server                        0x0001119d 
processInputBuffer + 125
[48073] 12 Apr 16:47:02 # 12  redis-server                        0x000112ad 
readQueryFromClient + 157
[48073] 12 Apr 16:47:02 # 13  redis-server                        0x0000303a 
aeProcessEvents + 522
[48073] 12 Apr 16:47:02 # 14  redis-server                        0x0000329f 
aeMain + 63
[48073] 12 Apr 16:47:02 # 15  redis-server                        0x0000892c 
main + 268
[48073] 12 Apr 16:47:02 # 16  redis-server                        0x00002336 
start + 54
[1]+  Segmentation fault      ./src/redis-server
Bus error

Please provide any additional information below.

I got this crash by forking a client and writing to the server with both of 
them over the same socket. Maybe this is something no one would ever do, but 
the fact that this crash can happen seems at least somewhat troubling.
My example uses 'debug reload', but I don't think that's critical for this 
crash to happen.

Original issue reported on code.google.com by elnatan...@gmail.com on 12 Apr 2011 at 9:03

Attachments: