Subject: | t/17-fork_friendliness.t does not halt with grpc-1.20 |
After upgrading grpc from 1.19.0 to 1.20.0, t/17-fork_friendliness.t test never halts.
Debugging shows that a child performs all calls and then blocks when destructing Grpc::XS::Server object. GDB points inside the grpc library:
#0 0x00007ff4d4e17555 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1 0x00007ff4d484c503 in gpr_cv_wait () from /lib64/libgrpc.so.7
#2 0x00007ff4d47c9550 in grpc_server_shutdown_and_notify () from /lib64/libgrpc.so.7
#3 0x00007ff4d48cd972 in ?? ()
#4 0x0000564110c872a0 in ?? ()
#5 0xffffffffffffff00 in ?? ()
#6 0x0000564110c872a0 in ?? ()
#7 0x0000000000000000 in ?? ()
I bisected grpc library and a first faulty change is this one:
commit cdd698810b99f2be1c67f05c28d031ebddb04cea (refs/bisect/bad)
Author: yang-g <yangg@google.com>
Date: Tue Nov 27 11:46:05 2018 -0800
Move grpc_shutdown internals to a detached thread