From 28a4cfd8c1dff1c162c60d0cc7895c599f41fcc3 Mon Sep 17 00:00:00 2001 From: Hitenjain14 Date: Thu, 20 Jun 2024 21:50:32 +0530 Subject: [PATCH 1/4] call status error callback --- zboxcore/sdk/multi_operation_worker.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/zboxcore/sdk/multi_operation_worker.go b/zboxcore/sdk/multi_operation_worker.go index ba4d3eb36..b23f2571a 100644 --- a/zboxcore/sdk/multi_operation_worker.go +++ b/zboxcore/sdk/multi_operation_worker.go @@ -198,13 +198,20 @@ func (mo *MultiOperation) Process() error { swg.Wait() if ctx.Err() != nil { - return context.Cause(ctx) + err := context.Cause(ctx) + for _, op := range mo.operations { + op.Error(mo.allocationObj, 0, err) + } + return err } // Check consensus if mo.operationMask.CountOnes() < mo.consensusThresh { majorErr := zboxutil.MajorError(errsSlice) if majorErr != nil { + for _, op := range mo.operations { + op.Error(mo.allocationObj, 0, majorErr) + } return errors.New("consensus_not_met", fmt.Sprintf("Multioperation failed. Required consensus %d got %d. Major error: %s", mo.consensusThresh, mo.operationMask.CountOnes(), majorErr.Error())) From ecae2fe284666955233afa57c914fb7964beb0cb Mon Sep 17 00:00:00 2001 From: Hitenjain14 Date: Fri, 21 Jun 2024 12:27:49 +0530 Subject: [PATCH 2/4] check map len when only 1 version --- zboxcore/sdk/rollback.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zboxcore/sdk/rollback.go b/zboxcore/sdk/rollback.go index 1a1c48d3c..104bf3cc4 100644 --- a/zboxcore/sdk/rollback.go +++ b/zboxcore/sdk/rollback.go @@ -291,7 +291,7 @@ func (a *Allocation) CheckAllocStatus() (AllocStatus, []BlobberStatus, error) { } wg.Wait() close(markerChan) - if a.ParityShards > 0 && errCnt > int32(a.ParityShards) { + if (a.ParityShards > 0 && errCnt > int32(a.ParityShards)) || (a.ParityShards == 0 && errCnt > 0) { return Broken, blobberRes, common.NewError("check_alloc_status_failed", markerError.Error()) } @@ -328,12 +328,12 @@ func (a *Allocation) CheckAllocStatus() (AllocStatus, []BlobberStatus, error) { versionMap[version] = append(versionMap[version], rb) } - if len(versionMap) < 2 { + req := a.DataShards + + if len(versionMap) < 2 && len(versionMap[latestVersion]) > req { return Commit, blobberRes, nil } - req := a.DataShards - if len(versionMap[latestVersion]) > req || len(versionMap[prevVersion]) > req { return Commit, blobberRes, nil } From d99245e0d7c4a676264a9425af7a9ed7fd8d378b Mon Sep 17 00:00:00 2001 From: Hitenjain14 Date: Fri, 21 Jun 2024 12:32:54 +0530 Subject: [PATCH 3/4] return commit if map len is 0 --- zboxcore/sdk/rollback.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zboxcore/sdk/rollback.go b/zboxcore/sdk/rollback.go index 104bf3cc4..e0e10dc2c 100644 --- a/zboxcore/sdk/rollback.go +++ b/zboxcore/sdk/rollback.go @@ -330,7 +330,7 @@ func (a *Allocation) CheckAllocStatus() (AllocStatus, []BlobberStatus, error) { req := a.DataShards - if len(versionMap) < 2 && len(versionMap[latestVersion]) > req { + if len(versionMap) == 0 { return Commit, blobberRes, nil } From b19fa8350f34d8a1f138d145a5bf18a6138f63c8 Mon Sep 17 00:00:00 2001 From: Hitenjain14 Date: Fri, 21 Jun 2024 14:42:53 +0530 Subject: [PATCH 4/4] rever sb changes --- zboxcore/sdk/multi_operation_worker.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/zboxcore/sdk/multi_operation_worker.go b/zboxcore/sdk/multi_operation_worker.go index b23f2571a..0ab370207 100644 --- a/zboxcore/sdk/multi_operation_worker.go +++ b/zboxcore/sdk/multi_operation_worker.go @@ -199,9 +199,6 @@ func (mo *MultiOperation) Process() error { if ctx.Err() != nil { err := context.Cause(ctx) - for _, op := range mo.operations { - op.Error(mo.allocationObj, 0, err) - } return err } @@ -209,9 +206,6 @@ func (mo *MultiOperation) Process() error { if mo.operationMask.CountOnes() < mo.consensusThresh { majorErr := zboxutil.MajorError(errsSlice) if majorErr != nil { - for _, op := range mo.operations { - op.Error(mo.allocationObj, 0, majorErr) - } return errors.New("consensus_not_met", fmt.Sprintf("Multioperation failed. Required consensus %d got %d. Major error: %s", mo.consensusThresh, mo.operationMask.CountOnes(), majorErr.Error()))