From 4478a88ad92562a315267cfea8e6f3a29d1da654 Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Fri, 15 Sep 2017 14:25:35 -0700 Subject: [PATCH 1/4] More detailed error when double-scheduling a closure --- src/core/lib/iomgr/closure.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/core/lib/iomgr/closure.c b/src/core/lib/iomgr/closure.c index 7236e23cf70..2253604342e 100644 --- a/src/core/lib/iomgr/closure.c +++ b/src/core/lib/iomgr/closure.c @@ -167,7 +167,15 @@ void grpc_closure_sched(grpc_exec_ctx *exec_ctx, grpc_closure *c, GPR_TIMER_BEGIN("grpc_closure_sched", 0); if (c != NULL) { #ifndef NDEBUG - GPR_ASSERT(!c->scheduled); + if (c->scheduled) { + gpr_log(GPR_ERROR, + "Closure already scheduled. (closure: %p, created: [%s:%d], " + "previously scheduled at: [%s: %d] run?: %s", + closure, closure->file_created, closure->line_created, + closure->file_initiated, closure->line_initiated, + closure->run ? "true" : "false"); + abort(); + } c->scheduled = true; c->file_initiated = file; c->line_initiated = line; From 966bf49b9c7b916c4f4a2be1dc7a9e8dae07582d Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Mon, 18 Sep 2017 09:42:31 -0700 Subject: [PATCH 2/4] Add to closure_list_sched as well --- src/core/lib/iomgr/closure.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/core/lib/iomgr/closure.c b/src/core/lib/iomgr/closure.c index 2253604342e..bb9e437b08f 100644 --- a/src/core/lib/iomgr/closure.c +++ b/src/core/lib/iomgr/closure.c @@ -199,7 +199,15 @@ void grpc_closure_list_sched(grpc_exec_ctx *exec_ctx, grpc_closure_list *list) { while (c != NULL) { grpc_closure *next = c->next_data.next; #ifndef NDEBUG - GPR_ASSERT(!c->scheduled); + if (c->scheduled) { + gpr_log(GPR_ERROR, + "Closure already scheduled. (closure: %p, created: [%s:%d], " + "previously scheduled at: [%s: %d] run?: %s", + closure, closure->file_created, closure->line_created, + closure->file_initiated, closure->line_initiated, + closure->run ? "true" : "false"); + abort(); + } c->scheduled = true; c->file_initiated = file; c->line_initiated = line; From 31ad68a7e0d7f2bb6c3e6684782a88887b5190cc Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Mon, 18 Sep 2017 11:04:58 -0700 Subject: [PATCH 3/4] fix a bad typo --- src/core/lib/iomgr/closure.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/core/lib/iomgr/closure.c b/src/core/lib/iomgr/closure.c index bb9e437b08f..05401bc2bdc 100644 --- a/src/core/lib/iomgr/closure.c +++ b/src/core/lib/iomgr/closure.c @@ -171,9 +171,9 @@ void grpc_closure_sched(grpc_exec_ctx *exec_ctx, grpc_closure *c, gpr_log(GPR_ERROR, "Closure already scheduled. (closure: %p, created: [%s:%d], " "previously scheduled at: [%s: %d] run?: %s", - closure, closure->file_created, closure->line_created, - closure->file_initiated, closure->line_initiated, - closure->run ? "true" : "false"); + c, c->file_created, c->line_created, + c->file_initiated, c->line_initiated, + c->run ? "true" : "false"); abort(); } c->scheduled = true; @@ -203,9 +203,9 @@ void grpc_closure_list_sched(grpc_exec_ctx *exec_ctx, grpc_closure_list *list) { gpr_log(GPR_ERROR, "Closure already scheduled. (closure: %p, created: [%s:%d], " "previously scheduled at: [%s: %d] run?: %s", - closure, closure->file_created, closure->line_created, - closure->file_initiated, closure->line_initiated, - closure->run ? "true" : "false"); + c, c->file_created, c->line_created, + c->file_initiated, c->line_initiated, + c->run ? "true" : "false"); abort(); } c->scheduled = true; From 9667e8a57d0e4978f77a7fb35fab175dec2c9e10 Mon Sep 17 00:00:00 2001 From: Sree Kuchibhotla Date: Mon, 18 Sep 2017 11:19:54 -0700 Subject: [PATCH 4/4] clang format --- src/core/lib/iomgr/closure.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/core/lib/iomgr/closure.c b/src/core/lib/iomgr/closure.c index 05401bc2bdc..00edefc6ae4 100644 --- a/src/core/lib/iomgr/closure.c +++ b/src/core/lib/iomgr/closure.c @@ -171,9 +171,8 @@ void grpc_closure_sched(grpc_exec_ctx *exec_ctx, grpc_closure *c, gpr_log(GPR_ERROR, "Closure already scheduled. (closure: %p, created: [%s:%d], " "previously scheduled at: [%s: %d] run?: %s", - c, c->file_created, c->line_created, - c->file_initiated, c->line_initiated, - c->run ? "true" : "false"); + c, c->file_created, c->line_created, c->file_initiated, + c->line_initiated, c->run ? "true" : "false"); abort(); } c->scheduled = true; @@ -203,9 +202,8 @@ void grpc_closure_list_sched(grpc_exec_ctx *exec_ctx, grpc_closure_list *list) { gpr_log(GPR_ERROR, "Closure already scheduled. (closure: %p, created: [%s:%d], " "previously scheduled at: [%s: %d] run?: %s", - c, c->file_created, c->line_created, - c->file_initiated, c->line_initiated, - c->run ? "true" : "false"); + c, c->file_created, c->line_created, c->file_initiated, + c->line_initiated, c->run ? "true" : "false"); abort(); } c->scheduled = true;