Skip to content

Commit 50f1601

Browse files
authored
Add context for errors in proposervm repairAcceptedChainByHeight (#3818)
Signed-off-by: Joshua Kim <20001595+joshua-kim@users.noreply.github.com>
1 parent 9371bff commit 50f1601

File tree

1 file changed

+18
-13
lines changed

1 file changed

+18
-13
lines changed

vms/proposervm/vm.go

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -192,15 +192,15 @@ func (vm *VM) Initialize(
192192
}
193193

194194
if err := vm.repairAcceptedChainByHeight(ctx); err != nil {
195-
return err
195+
return fmt.Errorf("failed to repair accepted chain by height: %w", err)
196196
}
197197

198198
if err := vm.setLastAcceptedMetadata(ctx); err != nil {
199-
return err
199+
return fmt.Errorf("failed to set last accepted metadata: %w", err)
200200
}
201201

202202
if err := vm.pruneOldBlocks(); err != nil {
203-
return err
203+
return fmt.Errorf("failed to prune old blocks: %w", err)
204204
}
205205

206206
forkHeight, err := vm.GetForkHeight()
@@ -216,7 +216,7 @@ func (vm *VM) Initialize(
216216
zap.String("state", "before fork"),
217217
)
218218
default:
219-
return err
219+
return fmt.Errorf("failed to get fork height: %w", err)
220220
}
221221

222222
vm.proposerBuildSlotGauge = prometheus.NewGauge(prometheus.GaugeOpts{
@@ -278,7 +278,7 @@ func (vm *VM) SetState(ctx context.Context, newState snow.State) error {
278278
// accepted block. If state sync has completed successfully, this call is a
279279
// no-op.
280280
if err := vm.repairAcceptedChainByHeight(ctx); err != nil {
281-
return err
281+
return fmt.Errorf("failed to repair accepted chain height: %w", err)
282282
}
283283
return vm.setLastAcceptedMetadata(ctx)
284284
}
@@ -443,11 +443,11 @@ func (vm *VM) LastAccepted(ctx context.Context) (ids.ID, error) {
443443
func (vm *VM) repairAcceptedChainByHeight(ctx context.Context) error {
444444
innerLastAcceptedID, err := vm.ChainVM.LastAccepted(ctx)
445445
if err != nil {
446-
return err
446+
return fmt.Errorf("failed to get inner last accepted: %w", err)
447447
}
448448
innerLastAccepted, err := vm.ChainVM.GetBlock(ctx, innerLastAcceptedID)
449449
if err != nil {
450-
return err
450+
return fmt.Errorf("failed to get inner last accepted block: %w", err)
451451
}
452452
proLastAcceptedID, err := vm.State.GetLastAccepted()
453453
if err == database.ErrNotFound {
@@ -456,11 +456,11 @@ func (vm *VM) repairAcceptedChainByHeight(ctx context.Context) error {
456456
return nil
457457
}
458458
if err != nil {
459-
return err
459+
return fmt.Errorf("failed to get last accepted: %w", err)
460460
}
461461
proLastAccepted, err := vm.getPostForkBlock(ctx, proLastAcceptedID)
462462
if err != nil {
463-
return err
463+
return fmt.Errorf("failed to get last accepted block: %w", err)
464464
}
465465

466466
proLastAcceptedHeight := proLastAccepted.Height()
@@ -482,14 +482,14 @@ func (vm *VM) repairAcceptedChainByHeight(ctx context.Context) error {
482482
// proposervm back.
483483
forkHeight, err := vm.State.GetForkHeight()
484484
if err != nil {
485-
return err
485+
return fmt.Errorf("failed to get fork height: %w", err)
486486
}
487487

488488
if forkHeight > innerLastAcceptedHeight {
489489
// We are rolling back past the fork, so we should just forget about all
490490
// of our proposervm indices.
491491
if err := vm.State.DeleteLastAccepted(); err != nil {
492-
return err
492+
return fmt.Errorf("failed to delete last accepted: %w", err)
493493
}
494494
return vm.db.Commit()
495495
}
@@ -503,9 +503,14 @@ func (vm *VM) repairAcceptedChainByHeight(ctx context.Context) error {
503503
}
504504

505505
if err := vm.State.SetLastAccepted(newProLastAcceptedID); err != nil {
506-
return err
506+
return fmt.Errorf("failed to set last accepted: %w", err)
507507
}
508-
return vm.db.Commit()
508+
509+
if err := vm.db.Commit(); err != nil {
510+
return fmt.Errorf("failed to commit db: %w", err)
511+
}
512+
513+
return nil
509514
}
510515

511516
func (vm *VM) setLastAcceptedMetadata(ctx context.Context) error {

0 commit comments

Comments
 (0)