fix: chunkwriter hangs on cancel (#239)

* fix: chunkwriter hangs on cancel

* fix: chunkwriter hangs on cancel

Co-authored-by: David Gustafson <davigust@github.com>
This commit is contained in:
Mohit Sharma 2021-08-17 23:58:25 +05:30 коммит произвёл GitHub
Родитель 66275612aa
Коммит 4977a5b42d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 10 добавлений и 1 удалений

Просмотреть файл

@ -40,6 +40,8 @@ func newFakeBlockWriter() *fakeBlockWriter {
func (f *fakeBlockWriter) StageBlock(ctx context.Context, blockID string, r io.ReadSeeker, cond LeaseAccessConditions, md5 []byte, cpk ClientProvidedKeyOptions) (*BlockBlobStageBlockResponse, error) {
n := atomic.AddInt32(&f.block, 1)
if n == f.errOnBlock {
// simulate activity
time.Sleep(100 * time.Millisecond)
return nil, io.ErrNoProgress
}
@ -220,6 +222,13 @@ func TestCopyFromReader(t *testing.T) {
ctx: context.Background(),
fileSize: _1MiB + 500*1024,
},
{
desc: "Send file(12 MiB) with default UploadStreamToBlockBlobOptions and a write error",
ctx: context.Background(),
fileSize: 12 * _1MiB,
uploadErr: true,
err: true,
},
{
desc: "Send file(1.5 MiB) with 2 writers",
ctx: context.Background(),

Просмотреть файл

@ -314,7 +314,7 @@ func (b BlobURL) StartCopyFromURL(ctx context.Context, source url.URL, metadata
nil,
// immutability policy
nil, BlobImmutabilityPolicyModeNone, nil,
)
)
}
// AbortCopyFromURL stops a pending copy that was previously started and leaves a destination blob with 0 length and metadata.