Skip to content

Commit d8f5e06

Browse files
committed
Return standard cancellation error
1 parent 777b678 commit d8f5e06

File tree

4 files changed

+24
-10
lines changed

4 files changed

+24
-10
lines changed

codex/download.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"encoding/json"
3131
"fmt"
3232
"io"
33+
"sync/atomic"
3334
"unsafe"
3435
)
3536

@@ -216,10 +217,12 @@ func (node CodexNode) DownloadStream(ctx context.Context, cid string, options Do
216217
defer close(done)
217218

218219
channelError := make(chan error, 1)
220+
var cancelled atomic.Bool
219221
go func() {
220222
select {
221223
case <-ctx.Done():
222224
channelError <- node.DownloadCancel(cid)
225+
cancelled.Store(true)
223226
case <-done:
224227
// Nothing to do, download finished
225228
}
@@ -236,7 +239,11 @@ func (node CodexNode) DownloadStream(ctx context.Context, cid string, options Do
236239

237240
if err != nil {
238241
if cancelError != nil {
239-
return fmt.Errorf("download canceled: %v, but failed to cancel download session: %v", ctx.Err(), cancelError)
242+
return fmt.Errorf("context canceled: %v, but failed to cancel download session: %v", ctx.Err(), cancelError)
243+
}
244+
245+
if cancelled.Load() {
246+
return context.Canceled
240247
}
241248

242249
return err

codex/download_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,11 +111,11 @@ func TestDownloadStreamCancelled(t *testing.T) {
111111
err := <-channelError
112112

113113
if err == nil {
114-
t.Fatal("UploadFile should have been canceled")
114+
t.Fatal("DownloadStream should have been canceled")
115115
}
116116

117-
if err.Error() != "Failed to stream file: Stream EOF!" {
118-
t.Fatalf("UploadFile returned unexpected error: %v", err)
117+
if err.Error() != context.Canceled.Error() {
118+
t.Fatalf("DownloadStream returned unexpected error: %v", err)
119119
}
120120
}
121121

codex/upload.go

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ import "C"
2828
import (
2929
"bytes"
3030
"context"
31-
"errors"
3231
"fmt"
3332
"io"
3433
"os"
34+
"sync/atomic"
3535
"unsafe"
3636
)
3737

@@ -187,7 +187,7 @@ func (node CodexNode) UploadReader(ctx context.Context, options UploadOptions, r
187187
if cancelErr := node.UploadCancel(sessionId); cancelErr != nil {
188188
return "", fmt.Errorf("upload canceled: %v, but failed to cancel upload session: %v", ctx.Err(), cancelErr)
189189
}
190-
return "", errors.New("upload canceled")
190+
return "", context.Canceled
191191
default:
192192
// continue
193193
}
@@ -313,10 +313,12 @@ func (node CodexNode) UploadFile(ctx context.Context, options UploadOptions) (st
313313
defer close(done)
314314

315315
channelError := make(chan error, 1)
316+
var cancelled atomic.Bool
316317
go func() {
317318
select {
318319
case <-ctx.Done():
319320
channelError <- node.UploadCancel(sessionId)
321+
cancelled.Store(true)
320322
case <-done:
321323
// Nothing to do, upload finished
322324
}
@@ -333,8 +335,13 @@ func (node CodexNode) UploadFile(ctx context.Context, options UploadOptions) (st
333335

334336
if err != nil {
335337
if cancelErr != nil {
336-
return "", fmt.Errorf("upload canceled: %v, but failed to cancel upload session: %v", ctx.Err(), cancelErr)
338+
return "", fmt.Errorf("context canceled: %v, but failed to cancel upload session: %v", ctx.Err(), cancelErr)
337339
}
340+
341+
if cancelled.Load() {
342+
return "", context.Canceled
343+
}
344+
338345
return "", err
339346
}
340347

codex/upload_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ func TestUploadReaderCancel(t *testing.T) {
6262
t.Fatal("UploadReader should have been canceled")
6363
}
6464

65-
if err.Error() != "upload canceled" {
66-
t.Fatalf("UploadReader returned unexpected error: %v", err)
65+
if err.Error() != context.Canceled.Error() {
66+
t.Fatalf("UploadReader returned unexpected error: %v expected %v", err, context.Canceled)
6767
}
6868
}
6969

@@ -134,7 +134,7 @@ func TestUploadFileCancel(t *testing.T) {
134134
t.Fatal("UploadFile should have been canceled")
135135
}
136136

137-
if err.Error() != "Failed to upload the file: Failed to stream the file: Stream Closed!" {
137+
if err.Error() != context.Canceled.Error() {
138138
t.Fatalf("UploadFile returned unexpected error: %v", err)
139139
}
140140
}

0 commit comments

Comments
 (0)