diff --git a/src/core/surface/server.c b/src/core/surface/server.c index 351ed5b7586aa1bd8a3cee064225f2ce9d603106..d75af7291bbccd7002709043b73255febe8c43aa 100644 --- a/src/core/surface/server.c +++ b/src/core/surface/server.c @@ -427,6 +427,8 @@ static void server_on_recv(void *ptr, int success) { grpc_iomgr_add_callback(kill_zombie, elem); } else if (calld->state == PENDING) { call_list_remove(calld, PENDING_START); + calld->state = ZOMBIED; + grpc_iomgr_add_callback(kill_zombie, elem); } gpr_mu_unlock(&chand->server->mu); break;