Skip to content

Commit 38d687d

Browse files
fix: flaky test by checking ctx cancellation before racing I/O in protobuf reader/writer (#5591)
1 parent d350042 commit 38d687d

2 files changed

Lines changed: 9 additions & 0 deletions

File tree

pkg/p2p/libp2p/stream_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ func TestStreamVersion(t *testing.T) {
7979

8080
if v == nil {
8181
t.Fatal("expected version to be non-nil")
82+
return
8283
}
8384

8485
expected := semver.Version{Major: tc.wantMajor, Minor: tc.wantMinor}

pkg/p2p/protobuf/protobuf.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ func newReader(r ggio.Reader) Reader {
5656
}
5757

5858
func (r Reader) ReadMsgWithContext(ctx context.Context, msg proto.Message) error {
59+
if err := ctx.Err(); err != nil {
60+
return err
61+
}
62+
5963
errChan := make(chan error, 1)
6064
go func() {
6165
errChan <- r.ReadMsg(msg)
@@ -78,6 +82,10 @@ func newWriter(r ggio.Writer) Writer {
7882
}
7983

8084
func (w Writer) WriteMsgWithContext(ctx context.Context, msg proto.Message) error {
85+
if err := ctx.Err(); err != nil {
86+
return err
87+
}
88+
8189
errChan := make(chan error, 1)
8290
go func() {
8391
errChan <- w.WriteMsg(msg)

0 commit comments

Comments
 (0)