From 54a8fe784b9033ed2c9e3269f4a88c29ae81e602 Mon Sep 17 00:00:00 2001 From: bruce-riley <96066700+bruce-riley@users.noreply.github.com> Date: Mon, 6 Nov 2023 14:16:43 -0600 Subject: [PATCH] CCQ: Query server response channel too small (#3502) --- node/cmd/ccq/p2p.go | 7 ++++++- node/cmd/ccq/pending_request.go | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/node/cmd/ccq/p2p.go b/node/cmd/ccq/p2p.go index a7284b5ef..5cbf18f3f 100644 --- a/node/cmd/ccq/p2p.go +++ b/node/cmd/ccq/p2p.go @@ -175,7 +175,12 @@ func runP2P(ctx context.Context, priv crypto.PrivKey, port uint, networkID, boot Signatures: responses[requestSignature][digest], } delete(responses, requestSignature) - pendingResponse.ch <- s + select { + case pendingResponse.ch <- s: + logger.Debug("forwarded query response") + default: + logger.Error("failed to write query response to channel, dropping it") + } } } else { logger.Warn("received observation by unknown guardian - is our guardian set outdated?", diff --git a/node/cmd/ccq/pending_request.go b/node/cmd/ccq/pending_request.go index ecc0063f3..85c4386e8 100644 --- a/node/cmd/ccq/pending_request.go +++ b/node/cmd/ccq/pending_request.go @@ -26,7 +26,8 @@ type PendingResponses struct { func NewPendingResponses() *PendingResponses { return &PendingResponses{ - pendingResponses: make(map[string]*PendingResponse), + // Make this channel bigger than the number of responses we ever expect to get for a query. + pendingResponses: make(map[string]*PendingResponse, 100), } }