Skip to content

Commit 17dd67f

Browse files
sync: coreth PR #1188: fix test aggregation goroutine leak (#1783)
Co-authored-by: Michael Kaplan <[email protected]>
1 parent 702287d commit 17dd67f

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

tests/warp/aggregator/aggregator.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ func (a *Aggregator) AggregateSignatures(ctx context.Context, unsignedMessage *a
6363
defer signatureFetchCancel()
6464

6565
// Fetch signatures from validators concurrently.
66-
signatureFetchResultChan := make(chan *signatureFetchResult)
66+
signatureFetchResultChan := make(chan *signatureFetchResult, len(a.validators))
6767
for i, validator := range a.validators {
6868
var (
6969
i = i
@@ -86,7 +86,10 @@ func (a *Aggregator) AggregateSignatures(ctx context.Context, unsignedMessage *a
8686
"err", err,
8787
"msgID", unsignedMessage.ID(),
8888
)
89-
signatureFetchResultChan <- nil
89+
select {
90+
case <-signatureFetchCtx.Done():
91+
case signatureFetchResultChan <- nil:
92+
}
9093
return
9194
}
9295

@@ -102,14 +105,20 @@ func (a *Aggregator) AggregateSignatures(ctx context.Context, unsignedMessage *a
102105
"index", i,
103106
"msgID", unsignedMessage.ID(),
104107
)
105-
signatureFetchResultChan <- nil
108+
select {
109+
case <-signatureFetchCtx.Done():
110+
case signatureFetchResultChan <- nil:
111+
}
106112
return
107113
}
108114

109-
signatureFetchResultChan <- &signatureFetchResult{
115+
select {
116+
case <-signatureFetchCtx.Done():
117+
case signatureFetchResultChan <- &signatureFetchResult{
110118
sig: signature,
111119
index: i,
112120
weight: validator.Weight,
121+
}:
113122
}
114123
}()
115124
}

0 commit comments

Comments
 (0)