From 11de074cbf952b9ed2084935a2e9421a1521f1e8 Mon Sep 17 00:00:00 2001 From: Nick Craig-Wood Date: Sat, 30 Aug 2025 10:29:45 +0100 Subject: [PATCH] Revert "azureblob: fix deadlock with --max-connections with InvalidBlockOrBlob errors" This reverts commit 0c1902cc6037d81eaf95e931172879517a25d529. This turns out not to be sufficient so we need a better approach --- backend/azureblob/azureblob.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/backend/azureblob/azureblob.go b/backend/azureblob/azureblob.go index 1a7e9a008..28df22206 100644 --- a/backend/azureblob/azureblob.go +++ b/backend/azureblob/azureblob.go @@ -2797,8 +2797,6 @@ func (o *Object) clearUncommittedBlocks(ctx context.Context) (err error) { blockList blockblob.GetBlockListResponse properties *blob.GetPropertiesResponse options *blockblob.CommitBlockListOptions - // Use temporary pacer as this can be called recursively which can cause a deadlock with --max-connections - pacer = fs.NewPacer(ctx, pacer.NewS3(pacer.MinSleep(minSleep), pacer.MaxSleep(maxSleep), pacer.DecayConstant(decayConstant))) ) properties, err = o.readMetaDataAlways(ctx) @@ -2810,7 +2808,7 @@ func (o *Object) clearUncommittedBlocks(ctx context.Context) (err error) { if objectExists { // Get the committed block list - err = pacer.Call(func() (bool, error) { + err = o.fs.pacer.Call(func() (bool, error) { blockList, err = blockBlobSVC.GetBlockList(ctx, blockblob.BlockListTypeAll, nil) return o.fs.shouldRetry(ctx, err) }) @@ -2852,7 +2850,7 @@ func (o *Object) clearUncommittedBlocks(ctx context.Context) (err error) { // Commit only the committed blocks fs.Debugf(o, "Committing %d blocks to remove uncommitted blocks", len(blockIDs)) - err = pacer.Call(func() (bool, error) { + err = o.fs.pacer.Call(func() (bool, error) { _, err := blockBlobSVC.CommitBlockList(ctx, blockIDs, options) return o.fs.shouldRetry(ctx, err) })