From 6e863e9a060301f24543699aa1546d292dc0bd3d Mon Sep 17 00:00:00 2001 From: Ekaterina Pavlova Date: Fri, 15 Nov 2024 02:18:13 +0300 Subject: [PATCH 1/3] cli: fix fetchLatestMissingBlockIndex in `upload-bin` command Close #3667 Signed-off-by: Ekaterina Pavlova --- cli/util/upload_bin.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/util/upload_bin.go b/cli/util/upload_bin.go index 4d5e387ce..390f670ed 100644 --- a/cli/util/upload_bin.go +++ b/cli/util/upload_bin.go @@ -185,7 +185,7 @@ type searchResult struct { func fetchLatestMissingBlockIndex(ctx context.Context, p *pool.Pool, containerID cid.ID, priv *keys.PrivateKey, attributeKey string, currentHeight int, maxParallelSearches, maxRetries int) (int, error) { var ( wg sync.WaitGroup - numBatches = currentHeight/searchBatchSize + 1 + numBatches = currentHeight / searchBatchSize emptyBatchFound bool ) @@ -228,12 +228,12 @@ func fetchLatestMissingBlockIndex(ctx context.Context, p *pool.Pool, containerID if results[i].err != nil { return 0, fmt.Errorf("blocks search failed for batch with indexes from %d to %d: %w", results[i].startIndex, results[i].endIndex-1, results[i].err) } - if results[i].numOIDs < searchBatchSize { + if results[i].numOIDs == 0 { emptyBatchFound = true continue } if emptyBatchFound || (batch == numBatches && i == len(results)-1) { - return results[i].startIndex + searchBatchSize, nil + return results[i].startIndex, nil } } } From 380d1125995056be293b59e91c19dcff3e4a1e5a Mon Sep 17 00:00:00 2001 From: Ekaterina Pavlova Date: Fri, 15 Nov 2024 11:35:39 +0300 Subject: [PATCH 2/3] cli: fix stopping of uploadIndexFiles in `upload-bin` The expected count of index files should be counted based on the already uploaded object number. Close #3669 Signed-off-by: Ekaterina Pavlova --- cli/util/upload_bin.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cli/util/upload_bin.go b/cli/util/upload_bin.go index 390f670ed..5e6092bff 100644 --- a/cli/util/upload_bin.go +++ b/cli/util/upload_bin.go @@ -148,7 +148,7 @@ func uploadBin(ctx *cli.Context) error { } } - err = uploadIndexFiles(ctx, p, containerID, acc, signer, uint(currentBlockHeight), attr, homomorphicHashingDisabled, maxParallelSearches, maxRetries) + err = uploadIndexFiles(ctx, p, containerID, acc, signer, uint(oldestMissingBlockIndex), attr, homomorphicHashingDisabled, maxParallelSearches, maxRetries) if err != nil { return cli.Exit(fmt.Errorf("failed to upload index files: %w", err), 1) } @@ -325,7 +325,7 @@ func uploadBlocks(ctx *cli.Context, p *pool.Pool, rpc *rpcclient.Client, signer } // uploadIndexFiles uploads missing index files to the container. -func uploadIndexFiles(ctx *cli.Context, p *pool.Pool, containerID cid.ID, account *wallet.Account, signer user.Signer, currentHeight uint, blockAttributeKey string, homomorphicHashingDisabled bool, maxParallelSearches, maxRetries int) error { +func uploadIndexFiles(ctx *cli.Context, p *pool.Pool, containerID cid.ID, account *wallet.Account, signer user.Signer, oldestMissingBlockIndex uint, blockAttributeKey string, homomorphicHashingDisabled bool, maxParallelSearches, maxRetries int) error { attributeKey := ctx.String("index-attribute") indexFileSize := ctx.Uint("index-file-size") fmt.Fprintln(ctx.App.Writer, "Uploading index files...") @@ -346,7 +346,7 @@ func uploadIndexFiles(ctx *cli.Context, p *pool.Pool, containerID cid.ID, accoun } existingIndexCount := uint(len(objectIDs)) - expectedIndexCount := currentHeight / indexFileSize + expectedIndexCount := (oldestMissingBlockIndex - 1) / indexFileSize if existingIndexCount >= expectedIndexCount { fmt.Fprintf(ctx.App.Writer, "Index files are up to date. Existing: %d, expected: %d\n", existingIndexCount, expectedIndexCount) return nil From 375b095f786f1319553efc98a33cfc782ac304a2 Mon Sep 17 00:00:00 2001 From: Ekaterina Pavlova Date: Fri, 15 Nov 2024 11:40:33 +0300 Subject: [PATCH 3/3] cli: add details to the logs in `upload-bin` Signed-off-by: Ekaterina Pavlova --- cli/util/upload_bin.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cli/util/upload_bin.go b/cli/util/upload_bin.go index 5e6092bff..187f77e10 100644 --- a/cli/util/upload_bin.go +++ b/cli/util/upload_bin.go @@ -351,7 +351,7 @@ func uploadIndexFiles(ctx *cli.Context, p *pool.Pool, containerID cid.ID, accoun fmt.Fprintf(ctx.App.Writer, "Index files are up to date. Existing: %d, expected: %d\n", existingIndexCount, expectedIndexCount) return nil } - + fmt.Fprintf(ctx.App.Writer, "Current index files count: %d, expected: %d\n", existingIndexCount, expectedIndexCount) var ( buffer = make([]byte, indexFileSize*oidSize) doneCh = make(chan struct{})