Skip to content

Commit e33d251

Browse files
hannahhowardrvagg
authored andcommitted
fix(responsemanager): fix flaky tests
1 parent 5c995fc commit e33d251

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

responsemanager/client.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,12 @@ func (rm *ResponseManager) GetUpdates(p peer.ID, requestID graphsync.RequestID,
224224

225225
// FinishTask marks a task from the task queue as done
226226
func (rm *ResponseManager) FinishTask(task *peertask.Task, err error) {
227-
rm.send(&finishTaskRequest{task, err}, nil)
227+
done := make(chan struct{}, 1)
228+
rm.send(&finishTaskRequest{task, err, done}, nil)
229+
select {
230+
case <-rm.ctx.Done():
231+
case <-done:
232+
}
228233
}
229234

230235
// CloseWithNetworkError closes a request due to a network error

responsemanager/messages.go

+5
Original file line numberDiff line numberDiff line change
@@ -85,10 +85,15 @@ func (rur *responseUpdateRequest) handle(rm *ResponseManager) {
8585
type finishTaskRequest struct {
8686
task *peertask.Task
8787
err error
88+
done chan struct{}
8889
}
8990

9091
func (ftr *finishTaskRequest) handle(rm *ResponseManager) {
9192
rm.finishTask(ftr.task, ftr.err)
93+
select {
94+
case <-rm.ctx.Done():
95+
case ftr.done <- struct{}{}:
96+
}
9297
}
9398

9499
type startTaskRequest struct {

responsemanager/responsemanager_test.go

+3
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,7 @@ func TestValidationAndExtensions(t *testing.T) {
291291
// request fails with base loader reading from block store that's missing data
292292
responseManager.ProcessRequests(td.ctx, td.p, td.requests)
293293
td.assertCompleteRequestWith(graphsync.RequestFailedContentNotFound)
294+
td.taskqueue.WaitForNoActiveTasks()
294295

295296
err := td.peristenceOptions.Register("chainstore", td.persistence)
296297
require.NoError(t, err)
@@ -632,6 +633,8 @@ func TestValidationAndExtensions(t *testing.T) {
632633
td.verifyNResponses(blockCount)
633634
td.assertPausedRequest()
634635

636+
td.taskqueue.WaitForNoActiveTasks()
637+
635638
// send update
636639
responseManager.ProcessRequests(td.ctx, td.p, td.updateRequests)
637640

0 commit comments

Comments
 (0)