Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix ws halt #6981

Merged
merged 8 commits into from
Apr 23, 2024
Merged

Fix ws halt #6981

merged 8 commits into from
Apr 23, 2024

Conversation

jframe
Copy link
Contributor

@jframe jframe commented Apr 23, 2024

PR description

PR created on behalf of @matkt https://github.com/matkt/besu/tree/feature/try-fix-ws-halt branch.

It fixes a possible halting of the worldstate download during the initial sync.

  • Modified worldstate sync pipeline so it is notified when importing a new block. Before the pipeline got stuck in some cases
  • Added a timeout of 10s on tasks
  • Removed useless requests from retries. Old requests were accumulating before

Testing

  • Checkpoint sync on mainnet with 15 nodes. None had a worldstate halt with the PR. Before ~20% of nodes failed with ws halt.

Fixed Issue(s)

Fixes #6908

Thanks for sending a pull request! Have you done the following?

  • Checked out our contribution guidelines?
  • Considered documentation and added the doc-change-required label to this PR if updates are required.
  • Considered the changelog and included an update if required.
  • For database changes (e.g. KeyValueSegmentIdentifier) considered compatibility and performed forwards and backwards compatibility tests

Locally, you can run these tests to catch failures early:

  • unit tests: ./gradlew build
  • acceptance tests: ./gradlew acceptanceTest
  • integration tests: ./gradlew integrationTest
  • reference tests: ./gradlew ethereum:referenceTests:referenceTests

Copy link
Contributor

@macfarla macfarla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changes make sense. few nits on comments. could use a changelog entry.

@@ -111,7 +110,9 @@ public SnapWorldDownloadState(
this.blockchain = blockchain;
this.snapSyncState = snapSyncState;
this.metricsManager = metricsManager;
this.blockObserverId = OptionalLong.empty();
this.blockObserverId = blockchain.observeBlockAdded(createBlockchainObserver());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit - can the comment below go before this line

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or delete - it's not really adding anything, the line of code says the same thing

Copy link
Contributor Author

@jframe jframe Apr 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Removed it. Don't think it was adding anything

@@ -441,8 +437,7 @@ public BlockAddedObserver createBlockchainObserver() {
final boolean isBlockchainCaughtUp =
snapSyncState.isWaitingBlockchain() && !pivotBlockSelector.isBlockchainBehind();

if (isNewPivotBlockFound
|| isBlockchainCaughtUp) { // restart heal if we found a new pivot block or if close to
if (snapSyncState.isHealTrieInProgress() && (isNewPivotBlockFound || isBlockchainCaughtUp)) {
// head again
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the rest of this comment has been deleted - doesn't make sense by itself

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done. Removed it, don't think we need the comment

jframe and others added 3 commits April 23, 2024 15:02
…ync/snapsync/CompleteTaskStep.java

Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
@jframe jframe enabled auto-merge (squash) April 23, 2024 05:20
@jframe jframe merged commit e4e9f67 into hyperledger:main Apr 23, 2024
42 checks passed
@macfarla macfarla mentioned this pull request Apr 26, 2024
8 tasks
jflo pushed a commit to jflo/besu that referenced this pull request May 28, 2024
)

Signed-off-by: Karim Taam <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Justin Florentine <[email protected]>
matthew1001 pushed a commit to kaleido-io/besu that referenced this pull request Jun 7, 2024
)

Signed-off-by: Karim Taam <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
jflo pushed a commit to jflo/besu that referenced this pull request Jun 10, 2024
)

Signed-off-by: Karim Taam <[email protected]>
Signed-off-by: Jason Frame <[email protected]>
Co-authored-by: Sally MacFarlane <[email protected]>
Signed-off-by: Justin Florentine <[email protected]>
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.

Worldstate download halt
3 participants