Skip to content

Op-Node: Fix divergence due to bad reset logic#3044

Merged
mergify[bot] merged 6 commits intodevelopfrom
jg/fix_divergence_rebased
Jul 17, 2022
Merged

Op-Node: Fix divergence due to bad reset logic#3044
mergify[bot] merged 6 commits intodevelopfrom
jg/fix_divergence_rebased

Conversation

@trianglesphere
Copy link
Contributor

Description
Fixes a divergence bug that occurred whenever the derivation pipeline was reset.
The progress of each stage was being set back in history correctly, but the safe head was not
properly updated. This caused a large step back in the L1 origin of L2 blocks & because the pipeline reset
occurred at any time, the nodes would reset at different times & diverge.

Additional context
The simpler version of this commit (without the batch queue reset fix) was tested for a day on goerli without a divergence (up to block 70k for all three replicas, up to block 120k for a pair of nodes).

I'm currently working on testing the change to the batch queue reset step.

Metadata

  • Fixes ENG-2313

@changeset-bot
Copy link

changeset-bot bot commented Jul 14, 2022

⚠️ No Changeset found

Latest commit: c5b2e46

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@mergify
Copy link
Contributor

mergify bot commented Jul 14, 2022

This PR changes implementation code, but doesn't include a changeset. Did you forget to add one?

@trianglesphere
Copy link
Contributor Author

FYI this is diverging from the fix that proto made (but does get the first block correct).

@trianglesphere
Copy link
Contributor Author

Ok, looked into this, on a reset this goes back to the end of a epoch & accidentally produces one more block than it should b/c of a weird interaction of sections 2b of the batch queue & the FillBatches code

@trianglesphere
Copy link
Contributor Author

Ok, I put the latest up as a bedrock goerli replica to test it. Currently seems like it's working.

@mergify
Copy link
Contributor

mergify bot commented Jul 17, 2022

This PR has been added to the merge queue, and will be merged soon.

@mergify
Copy link
Contributor

mergify bot commented Jul 17, 2022

This PR is next in line to be merged, and will be merged as soon as checks pass.

@mergify mergify bot merged commit aa707a4 into develop Jul 17, 2022
@mergify mergify bot deleted the jg/fix_divergence_rebased branch July 17, 2022 23:31
@mergify mergify bot removed the on-merge-train label Jul 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants