Skip to content

Commit

Permalink
fix: migrate nil bucket
Browse files Browse the repository at this point in the history
  • Loading branch information
BarryTong65 committed May 14, 2024
1 parent 6dde132 commit ed882d9
Showing 1 changed file with 39 additions and 1 deletion.
40 changes: 39 additions & 1 deletion modular/manager/bucket_migrate_scheduler.go
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,13 @@ func (plan *BucketMigrateExecutePlan) sendCompleteMigrateBucketTx(migrateExecute
if err != nil {
return err
}
if bucket == nil {
log.Debugw("send complete migrate bucket has been deleted", "bucket_id", plan.bucketID)
if err = UpdateBucketMigrationProgress(plan.manager.baseApp, plan.bucketID, storetypes.BucketMigrationState_BUCKET_MIGRATION_STATE_MIGRATION_FINISHED); err != nil {
return err
}
return nil
}
var gvgMappings []*storagetypes.GVGMapping
for _, migrateGVGUnit := range plan.gvgUnitMap {
aggBlsSig, getBlsError := plan.getBlsAggregateSigForBucketMigration(context.Background(), migrateGVGUnit)
Expand Down Expand Up @@ -239,6 +246,13 @@ func (plan *BucketMigrateExecutePlan) rejectBucketMigration() error {
if err != nil {
return err
}
if bucket == nil {
log.Debugw("reject bucket migration has been deleted", "bucket_id", plan.bucketID)
if err = UpdateBucketMigrationProgress(plan.manager.baseApp, plan.bucketID, storetypes.BucketMigrationState_BUCKET_MIGRATION_STATE_MIGRATION_FINISHED); err != nil {
return err
}
return nil
}
rejectMigrateBucket := &storagetypes.MsgRejectMigrateBucket{Operator: plan.manager.baseApp.OperatorAddress(),
BucketName: bucket.BucketInfo.GetBucketName()}
txHash, txErr := plan.manager.baseApp.GfSpClient().RejectMigrateBucket(ctx, rejectMigrateBucket)
Expand Down Expand Up @@ -591,6 +605,23 @@ func (s *BucketMigrateScheduler) doneMigrateBucket(bucketID uint64) error {
return err
}

func (s *BucketMigrateScheduler) deleteMigrateBucket(bucketID uint64) error {
executePlan, err := s.getExecutePlanByBucketID(bucketID)
// 1) Received the CompleteEvents event for the first time.
// 2) Subsequently received the CompleteEvents event.
if err != nil {
log.Errorw("bucket migrate schedule received EventCompleteMigrationBucket, the event may already finished", "bucket_id", bucketID)
return err
}

s.deleteExecutePlanByBucketID(bucketID)
executePlan.stopSPSchedule()
err = s.manager.baseApp.GfSpDB().DeleteMigrateGVGUnitsByBucketID(bucketID)
log.Infow("succeed to delete migrate bucket", "bucket_id", bucketID, "error", err)

return err
}

func (s *BucketMigrateScheduler) cancelMigrateBucket(bucketID uint64, reject bool) error {
var (
executePlan *BucketMigrateExecutePlan
Expand Down Expand Up @@ -697,7 +728,14 @@ func (s *BucketMigrateScheduler) confirmCompleteTxEvents(ctx context.Context, ev
return
}
if bucket == nil {
log.Errorw("can not find bucket info", "bucket_id", bucketID)
if err = s.deleteMigrateBucket(bucketID); err != nil {
log.Errorw("failed to done migrate bucket", "EventMigrationBucket", event, "error", err)
return
}
if err = UpdateBucketMigrationProgress(s.manager.baseApp, bucketID, storetypes.BucketMigrationState_BUCKET_MIGRATION_STATE_MIGRATION_FINISHED); err != nil {
return
}
log.CtxInfow(ctx, "succeed to remove deleted bucket migrate event", "EventMigrationBucket", event)
return
}
if bucket.BucketInfo.GetBucketStatus() == storagetypes.BUCKET_STATUS_CREATED {
Expand Down

0 comments on commit ed882d9

Please sign in to comment.