Closed ghost closed 9 years ago
we are using Hiredis client version of 0.10.0 we have active standby redis server setup . Whenever there is switch-over occasionally we find the following core-dump
(gdb) p cb $1 = {next = 0x0, fn = 0x7f4b4848668e <vz::CacheRedis::selectDbCallback(redisAsyncContext, void, void*)>, privdata = 0x0}
p *ac->c.reader $2 = {err = 0, errstr = '\000' <repeats 127 times>, buf = 0x7f4b37c59188 "+OK\r\n+OK\r\n", pos = 10, len = 10, maxbuf = 16384, rstack = {{type = 5, elements = -1, idx = -1, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}}, ridx = -1, reply = 0x0, fn = 0x7f4b40a28280, privdata = 0x0}
(gdb) p ac $1 = {c = {err = 0, errstr = '\000' <repeats 127 times>, fd = 22, flags = 2, obuf = 0x7f4b37c29b78 "", reader = 0x7f4b37ca2300}, err = 0, errstr = 0x7f4b37c173c4 "", data = 0x7f4b37c40900, ev = {data = 0x7f4b37c9b200, addRead = 0x7f4b48481d9c <redisLibevAddRead(void)>, delRead = 0x7f4b48481deb <redisLibevDelRead(void)>, addWrite = 0x7f4b48481e3a <redisLibevAddWrite(void)>, delWrite = 0x7f4b48481e89 <redisLibevDelWrite(void)>, cleanup = 0x7f4b48481ed8 <redisLibevCleanup(void)>}, onDisconnect = 0x7f4b48486d1e <vz::CacheRedis::disconnectCallback(redisAsyncContext const, int)>, onConnect = 0x7f4b484862fe <vz::CacheRedis::connectCallback(redisAsyncContext const, int)>, replies = {head = 0x0, tail = 0x0}, sub = {invalid = {head = 0x0, tail = 0x0}, channels = 0x7f4b37c0e9a0, patterns = 0x7f4b37c0e970}} (gdb) bt
at /home/skrishnamoorthy/repo/VISP/build/x86_64-unknown-linux-gnu/thirdparty/include/libev.h:23
The process crashes at asyn.c while asserting the following condition. assert((c->flags & REDIS_SUBSCRIBED || c->flags & REDIS_MONITORING))
Is this still relevant? If so, further input is needed. Closing for now.
we are using Hiredis client version of 0.10.0 we have active standby redis server setup . Whenever there is switch-over occasionally we find the following core-dump
(gdb) p cb $1 = {next = 0x0, fn = 0x7f4b4848668e <vz::CacheRedis::selectDbCallback(redisAsyncContext, void, void*)>, privdata = 0x0}
p *ac->c.reader $2 = {err = 0, errstr = '\000' <repeats 127 times>, buf = 0x7f4b37c59188 "+OK\r\n+OK\r\n", pos = 10, len = 10, maxbuf = 16384, rstack = {{type = 5, elements = -1, idx = -1, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}, {type = 0, elements = 0, idx = 0, obj = 0x0, parent = 0x0, privdata = 0x0}}, ridx = -1, reply = 0x0, fn = 0x7f4b40a28280, privdata = 0x0}
(gdb) p ac $1 = {c = {err = 0, errstr = '\000' <repeats 127 times>, fd = 22, flags = 2, obuf = 0x7f4b37c29b78 "", reader = 0x7f4b37ca2300}, err = 0, errstr = 0x7f4b37c173c4 "", data = 0x7f4b37c40900, ev = {data = 0x7f4b37c9b200, addRead = 0x7f4b48481d9c <redisLibevAddRead(void)>, delRead = 0x7f4b48481deb <redisLibevDelRead(void)>, addWrite = 0x7f4b48481e3a <redisLibevAddWrite(void)>, delWrite = 0x7f4b48481e89 <redisLibevDelWrite(void)>, cleanup = 0x7f4b48481ed8 <redisLibevCleanup(void)>}, onDisconnect = 0x7f4b48486d1e <vz::CacheRedis::disconnectCallback(redisAsyncContext const, int)>, onConnect = 0x7f4b484862fe <vz::CacheRedis::connectCallback(redisAsyncContext const, int)>, replies = {head = 0x0, tail = 0x0}, sub = {invalid = {head = 0x0, tail = 0x0}, channels = 0x7f4b37c0e9a0, patterns = 0x7f4b37c0e970}} (gdb) bt
0 0x00007f4b4317e425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
1 0x00007f4b43181b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
2 0x00007f4b431770ee in ?? () from /lib/x86_64-linux-gnu/libc.so.6
3 0x00007f4b43177192 in __assert_fail () from /lib/x86_64-linux-gnu/libc.so.6
4 0x00007f4b408258c7 in redisProcessCallbacks (ac=0x7f4b37c173c0) at async.c:436
5 0x00007f4b48481d6a in redisLibevReadEvent (loop=0x7f4b37c30100, watcher=0x7f4b37c9b218, revents=1)
6 0x00007f4b484d28cf in ev_invoke_pending (loop=0x7f4b37c30100) at src/ev/ev.cpp:3013
7 0x00007f4b484d3800 in ev_run (loop=0x7f4b37c30100, flags=0) at src/ev/ev.cpp:3413
8 0x00007f4b484d7636 in vz::EventLoop::start (this=0x7f4b4873c8c0) at src/EventLoopEv.cpp:104
9 0x00007f4b4812ae61 in vz::ServiceRunner::process (this=0x7f4b3cc36300) at src/ServiceRunner.cpp:142
10 0x00007f4b48468099 in vz::Thread::startPoint (arg=0x7f4b3cc36300) at src/ThreadPthread.cpp:222
11 0x00007f4b49c87e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
12 0x00007f4b4323bccd in clone () from /lib/x86_64-linux-gnu/libc.so.6
13 0x0000000000000000 in ?? ()
The process crashes at asyn.c while asserting the following condition. assert((c->flags & REDIS_SUBSCRIBED || c->flags & REDIS_MONITORING))