From e9bd059e51a11efeb12f6aeaad27fc90c4b501c7 Mon Sep 17 00:00:00 2001 From: Randy Stauner Date: Tue, 29 Jul 2025 10:04:36 -0700 Subject: [PATCH 1/2] Track the pid on the rb event queue --- src/ruby/ext/grpc/rb_event_thread.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c index 014dd2dcd8882..b5aa945519b8a 100644 --- a/src/ruby/ext/grpc/rb_event_thread.c +++ b/src/ruby/ext/grpc/rb_event_thread.c @@ -36,6 +36,7 @@ typedef struct grpc_rb_event { void* argument; struct grpc_rb_event* next; + static pid_t pid; } grpc_rb_event; typedef struct grpc_rb_event_queue { @@ -57,6 +58,7 @@ void grpc_rb_event_queue_enqueue(void (*callback)(void*), void* argument) { grpc_rb_event* event = gpr_malloc(sizeof(grpc_rb_event)); event->callback = callback; event->argument = argument; + event->pid = getpid(); event->next = NULL; gpr_mu_lock(&event_queue.mu); if (event_queue.tail == NULL) { @@ -81,6 +83,9 @@ static grpc_rb_event* grpc_rb_event_queue_dequeue() { event_queue.head = event_queue.head->next; } } + if (event->pid != getpid()) { + fprintf(stderr, "DEQUEUED EVENT PID %d != CURRENT PID %d\n", event->pid, getpid()); + } return event; } From d7fabaca6142d5ee8d0d242502ca040d0809d696 Mon Sep 17 00:00:00 2001 From: rwstauner <142719+rwstauner@users.noreply.github.com> Date: Tue, 29 Jul 2025 17:35:40 +0000 Subject: [PATCH 2/2] Automated change: Fix sanity tests --- src/ruby/ext/grpc/rb_event_thread.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c index b5aa945519b8a..b281e32beb91f 100644 --- a/src/ruby/ext/grpc/rb_event_thread.c +++ b/src/ruby/ext/grpc/rb_event_thread.c @@ -84,7 +84,8 @@ static grpc_rb_event* grpc_rb_event_queue_dequeue() { } } if (event->pid != getpid()) { - fprintf(stderr, "DEQUEUED EVENT PID %d != CURRENT PID %d\n", event->pid, getpid()); + fprintf(stderr, "DEQUEUED EVENT PID %d != CURRENT PID %d\n", event->pid, + getpid()); } return event; }