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), } }