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

Run full sync tests on Mainnet #1592

Closed
teor2345 opened this issue Jan 14, 2021 · 9 comments
Closed

Run full sync tests on Mainnet #1592

teor2345 opened this issue Jan 14, 2021 · 9 comments
Assignees
Labels
A-devops Area: Pipelines, CI/CD and Dockerfiles A-diagnostics Area: Diagnosing issues or monitoring performance A-infrastructure Area: Infrastructure changes C-testing Category: These are tests I-consensus Zebra breaks a Zcash consensus rule I-hang A Zebra component stops responding to requests I-panic Zebra panics with an internal error message

Comments

@teor2345
Copy link
Contributor

teor2345 commented Jan 14, 2021

Motivation

We want to avoid merging PRs if their changes break syncing to the tip.

Test Plan

Run a mainnet sync, and make sure they reach block X within N hours:

We should also check the logs to make sure Zebra stops syncing blocks, and activates the mempool.
(Implemented in #3543 and #3555.)

We need to run a full sync, and that takes a few hours, so we should do it on Google Cloud. (If we run a short sync, we won't catch slowness or hang issues with post-checkpoint syncs.)

Follow Up Work

TODO: create tickets for leftover work

As a follow-up, we could show sync speeds over time. This history will help us diagnose issues more reliably.

As another follow-up, we should run these tests on testnet. To run a reliable testnet sync, we need to deploy more testnet Zebra or zcashd instances, and make sure they appear in DNS seeders (#2380, #1904). So that's out of scope for now.

@teor2345 teor2345 added A-rust Area: Updates to Rust code C-enhancement Category: This is an improvement C-cleanup Category: This is a cleanup labels Jan 14, 2021
@teor2345 teor2345 added this to the 2021 Sprint 1 milestone Jan 14, 2021
@teor2345 teor2345 self-assigned this Jan 14, 2021
@teor2345 teor2345 added this to To Do in 🦓 via automation Jan 14, 2021
@teor2345 teor2345 added this to No Estimate in Effort Affinity Grouping via automation Jan 14, 2021
@teor2345 teor2345 moved this from No Estimate to M - 5 in Effort Affinity Grouping Jan 14, 2021
@mpguerra mpguerra modified the milestones: 2021 Sprint 1, 2021 Sprint 3 Jan 25, 2021
@mpguerra mpguerra modified the milestones: 2021 Sprint 3, 2021 Sprint 4 Feb 8, 2021
@teor2345 teor2345 modified the milestones: 2021 Sprint 4, 2021 Sprint 5 Feb 22, 2021
@teor2345

This comment was marked as resolved.

@mpguerra mpguerra removed this from the 2021 Sprint 5 milestone Mar 4, 2021
@teor2345 teor2345 changed the title Write tests for sync hangs Run full sync tests on Mainnet Dec 14, 2021
@teor2345 teor2345 added A-diagnostics Area: Diagnosing issues or monitoring performance A-infrastructure Area: Infrastructure changes C-testing Category: These are tests I-consensus Zebra breaks a Zcash consensus rule I-hang A Zebra component stops responding to requests I-panic Zebra panics with an internal error message P-Medium and removed A-rust Area: Updates to Rust code C-enhancement Category: This is an improvement C-cleanup Category: This is a cleanup labels Dec 14, 2021
@teor2345

This comment was marked as resolved.

@teor2345

This comment was marked as resolved.

@conradoplg

This comment was marked as resolved.

@teor2345

This comment was marked as resolved.

@teor2345
Copy link
Contributor Author

I've been using these command-lines to test #3543 and #3555:

FULL_SYNC_MAINNET_TIMEOUT_MINUTES=600 cargo test --release --test acceptance -- --nocapture --ignored full_sync_mainnet
FULL_SYNC_TESTNET_TIMEOUT_MINUTES=600 cargo test --release --test acceptance -- --nocapture --ignored full_sync_testnet

https://doc.rust-lang.org/rustc/tests/index.html#--nocapture

@jvff
Copy link
Contributor

jvff commented Feb 17, 2022

I'm not sure if this should be a new job in .github/workflows/test.yml or if I should change the existing test-stateful-sync job. @gustavovalverde, what do you think?

@teor2345
Copy link
Contributor Author

I'm not sure if this should be a new job in .github/workflows/test.yml or if I should change the existing test-stateful-sync job.

I'd like to keep test-stateful-sync, and make it a required job. It's quick, and it tells us if we've broken full validation on the first thousand post-canopy blocks.

(So it catches most full validation bugs.)

@gustavovalverde
Copy link
Member

Fixed by #3582

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-devops Area: Pipelines, CI/CD and Dockerfiles A-diagnostics Area: Diagnosing issues or monitoring performance A-infrastructure Area: Infrastructure changes C-testing Category: These are tests I-consensus Zebra breaks a Zcash consensus rule I-hang A Zebra component stops responding to requests I-panic Zebra panics with an internal error message
Projects
No open projects
Development

No branches or pull requests

5 participants