From 5344af465b0c4ad0a134c19170f38bc41fda37ac Mon Sep 17 00:00:00 2001 From: hailin Date: Sat, 6 Dec 2025 06:42:07 -0800 Subject: [PATCH] fix(server-party): fix context leak in GetPendingMessages acknowledgment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed the acknowledgment goroutine in GetPendingMessages to use parent context instead of context.Background(), preventing orphan goroutines that can't be cancelled. This completes all context bug fixes: - server-party-api event handler (commit 450163a) - server-party event handler (commit 99ff3ac) - message acknowledgment in SubscribeMessages (commit 450163a) - message acknowledgment in GetPendingMessages (this commit) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../server-party/adapters/output/grpc/message_router_client.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/mpc-system/services/server-party/adapters/output/grpc/message_router_client.go b/backend/mpc-system/services/server-party/adapters/output/grpc/message_router_client.go index 05241808..ad5aeacd 100644 --- a/backend/mpc-system/services/server-party/adapters/output/grpc/message_router_client.go +++ b/backend/mpc-system/services/server-party/adapters/output/grpc/message_router_client.go @@ -268,7 +268,8 @@ func (c *MessageRouterClient) GetPendingMessages( // Send acknowledgment for each received message go func(messageID, sessionIDStr, pID string) { - ackCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + // Use parent context to allow proper cancellation + ackCtx, cancel := context.WithTimeout(ctx, 5*time.Second) defer cancel() sid, _ := uuid.Parse(sessionIDStr) if err := c.AcknowledgeMessage(ackCtx, messageID, sid, pID, true, ""); err != nil {