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 flaky banking stage tests #5160

Merged
merged 1 commit into from
Mar 6, 2025
Merged

Conversation

jstarry
Copy link

@jstarry jstarry commented Mar 5, 2025

Problem

Some banking stage tests try to process some transactions within the first block of a cluster with slow poh. If for some reason the transaction isn't included before poh ticks to the 2nd to last tick in the first block (takes about ~3.2s (8 * 400ms)), the test will never end because the poh loop stops recording transaction mixins.

Summary of Changes

  • Make slow poh even slower by increase ticks per slot by a factor of 1024 (blocks will be over 6min long)
  • Exit low power poh loop as soon as exit is set

Fixes #

@jstarry jstarry requested a review from apfitzge March 5, 2025 21:47
@jstarry
Copy link
Author

jstarry commented Mar 5, 2025

Here's the previous fix for what seems to be a similar issue: solana-labs#6251

Copy link

@apfitzge apfitzge left a comment

Choose a reason for hiding this comment

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

lgtm - aside from the ticks function, it was not really clear to me how the tick hack worked.
Longer slots should help if these tests were flaky due to poh reaching near tick-height.

CI passing, so it seems changing the poh service thread's functionality doesn't break anything!

@apfitzge
Copy link

apfitzge commented Mar 6, 2025

@jstarry jstarry added the v2.2 Backport to v2.2 branch label Mar 6, 2025
@jstarry jstarry merged commit 433f4ff into anza-xyz:master Mar 6, 2025
48 checks passed
Copy link

mergify bot commented Mar 6, 2025

Backports to the beta branch are to be avoided unless absolutely necessary for fixing bugs, security issues, and perf regressions. Changes intended for backport should be structured such that a minimum effective diff can be committed separately from any refactoring, plumbing, cleanup, etc that are not strictly necessary to achieve the goal. Any of the latter should go only into master and ride the normal stabilization schedule. Exceptions include CI/metrics changes, CLI improvements and documentation updates on a case by case basis.

mergify bot pushed a commit that referenced this pull request Mar 6, 2025
(cherry picked from commit 433f4ff)

# Conflicts:
#	core/src/banking_stage.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v2.2 Backport to v2.2 branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants