From a1c1edf2855788bbd5db7b277aa314b300a90f68 Mon Sep 17 00:00:00 2001 From: Potuz Date: Fri, 25 Apr 2025 16:10:20 -0300 Subject: [PATCH] Fix deadlines (#15221) * Fix deadlines * use current slot in update duties --------- Co-authored-by: james-prysm <90280386+james-prysm@users.noreply.github.com> --- changelog/potuz_pass_parent_context.md | 3 +++ validator/client/runner.go | 4 ++-- validator/client/validator.go | 9 +++------ 3 files changed, 8 insertions(+), 8 deletions(-) create mode 100644 changelog/potuz_pass_parent_context.md diff --git a/changelog/potuz_pass_parent_context.md b/changelog/potuz_pass_parent_context.md new file mode 100644 index 0000000000..e54a48320d --- /dev/null +++ b/changelog/potuz_pass_parent_context.md @@ -0,0 +1,3 @@ +### Fixed + +- Pass parent context to update duties when dependent roots change diff --git a/validator/client/runner.go b/validator/client/runner.go index 76e08c4db0..16a4bcc253 100644 --- a/validator/client/runner.go +++ b/validator/client/runner.go @@ -91,8 +91,8 @@ func run(ctx context.Context, v iface.Validator) { // epoch transition in the beacon node's state. if err := v.UpdateDuties(slotCtx, slot); err != nil { handleAssignmentError(err, slot) - cancel() span.End() + cancel() continue } @@ -113,8 +113,8 @@ func run(ctx context.Context, v iface.Validator) { allRoles, err := v.RolesAt(slotCtx, slot) if err != nil { log.WithError(err).Error("Could not get validator roles") - cancel() span.End() + cancel() continue } performRoles(slotCtx, allRoles, v, slot, &wg, span) diff --git a/validator/client/validator.go b/validator/client/validator.go index af30e266c7..395c364946 100644 --- a/validator/client/validator.go +++ b/validator/client/validator.go @@ -520,7 +520,7 @@ func (v *validator) UpdateDuties(ctx context.Context, slot primitives.Slot) erro return nil } // Set deadline to end of epoch. - ss, err := slots.EpochStart(slots.ToEpoch(slot) + 1) + ss, err := slots.EpochStart(primitives.Epoch(slots.CurrentSlot(v.genesisTime) + 1)) if err != nil { return err } @@ -1158,11 +1158,8 @@ func (v *validator) checkDependentRoots(ctx context.Context, head *structs.HeadE if err != nil { return err } - deadline := v.SlotDeadline(slot) - slotCtx, cancel := context.WithDeadline(ctx, deadline) - defer cancel() if !bytes.Equal(prevDepedentRoot, v.duties.PrevDependentRoot) { - if err := v.UpdateDuties(slotCtx, currEpochStart); err != nil { + if err := v.UpdateDuties(ctx, currEpochStart); err != nil { return errors.Wrap(err, "failed to update duties") } log.Info("Updated duties due to previous dependent root change") @@ -1173,7 +1170,7 @@ func (v *validator) checkDependentRoots(ctx context.Context, head *structs.HeadE return errors.Wrap(err, "failed to decode current duty dependent root") } if !bytes.Equal(currDepedentRoot, v.duties.CurrDependentRoot) { - if err := v.UpdateDuties(slotCtx, currEpochStart); err != nil { + if err := v.UpdateDuties(ctx, currEpochStart); err != nil { return errors.Wrap(err, "failed to update duties") } log.Info("Updated duties due to current dependent root change")