grpc crash when I register NotifyOnStateChange callback on channel

218 views
Skip to first unread message

haiya...@dejero.com

unread,
Aug 19, 2016, 11:46:42 AM8/19/16
to grpc.io
It seems I am making trouble when register NotifyOnStateChange() callback on Channel. It happen when I try to close the channel, but the assert statement in completion_queue.c will abort the program.

client service shutdown completed
E0819 11:40:07.060754939   15617 completion_queue.c:189]     assertion failed: cc->completed_head.next == (uintptr_t)&cc->completed_head

Program received signal SIGABRT, Aborted.
0x00007ffff69d5c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
(gdb) bt
#0  0x00007ffff69d5c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00007ffff69d9028 in __GI_abort () at abort.c:89
#2  0x00007ffff6209355 in grpc_cq_internal_unref () from /usr/local/lib/libgrpc.so.0
#3  0x000000000174800f in grpc::CompletionQueue::~CompletionQueue() ()

However, if I don't register this callback, everything is fine. Is there something this NotifyOnStateChange will create special job in completion queue that can prevent completion_queue to shut down properly ?

Thanks for any advice.

Reply all
Reply to author
Forward
0 new messages