jeudi 14 novembre 2019

How to solve the dead-lock in the greeter_server application of GRPC

I have been trying to run the helloworld example of GRPC in C++ language. I end up in a dead-lock with the server (greeter_server application) although it builds successfully.

I tried to backtrace the issue using gdb. The logs are as follows.

(gdb) thread apply all where

Thread 3 (Thread 0x7ffff4894700 (LWP 10090)):
#0  0x00007ffff65b19f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555557a12a0) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5555557a1240, cond=0x5555557a1278) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x5555557a1278, mutex=0x5555557a1240) at pthread_cond_wait.c:655
#3  0x00007ffff7856b02 in gpr_cv_wait () from /usr/local/lib/libgpr.so.9
#4  0x00007ffff7b4fa60 in grpc_core::Executor::ThreadMain(void*) () from /usr/local/lib/libgrpc++.so.1
#5  0x00007ffff7858b16 in ?? () from /usr/local/lib/libgpr.so.9
#6  0x00007ffff65ab6db in start_thread (arg=0x7ffff4894700) at pthread_create.c:463
#7  0x00007ffff68e488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7ffff5095700 (LWP 10089)):
#0  0x00007ffff65b19f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5555557a1a40) at
../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5555557a19e0, cond=0x5555557a1a18) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x5555557a1a18, mutex=0x5555557a19e0) at pthread_cond_wait.c:655
#3  0x00007ffff7856b02 in gpr_cv_wait () from /usr/local/lib/libgpr.so.9
#4  0x00007ffff7b4fa60 in grpc_core::Executor::ThreadMain(void*) () from /usr/local/lib/libgrpc++.so.1
#5  0x00007ffff7858b16 in ?? () from /usr/local/lib/libgpr.so.9
#6  0x00007ffff65ab6db in start_thread (arg=0x7ffff5095700) at pthread_create.c:463
#7  0x00007ffff68e488f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7ffff7fd0840 (LWP 10085)):
#0  __strcmp_sse2_unaligned () at ../sysdeps/x86_64/multiarch/strcmp-sse2-unaligned.S:27
#1  0x00007ffff7b82734 in grpc_core::TraceFlagList::Set(char const*, bool) () from /usr/local/lib/libgrpc++.so.1
#2  0x00007ffff7b8285e in grpc_tracer_init() () from /usr/local/lib/libgrpc++.so.1
#3  0x00007ffff6011371 in grpc_init () from /usr/local/lib/libgrpc.so.9
#4  0x00005555555648f8 in grpc::GrpcLibraryCodegen::GrpcLibraryCodegen(bool) ()
#5  0x00007ffff7b03d60 in grpc_impl::ServerBuilder::BuildAndStart() () from /usr/local/lib/libgrpc++.so.1
#6  0x000055555557693e in RunServer() ()
#7  0x0000555555576aaa in main () (gdb) quit A debugging session is active.

It would be of a great help if somebody can give a pointer in solving this.

Aucun commentaire:

Enregistrer un commentaire