Skip to content

scheduler: gate retry on slot#5268

Closed
apfitzge wants to merge 5 commits into
anza-xyz:masterfrom
apfitzge:slot_gated_retry
Closed

scheduler: gate retry on slot#5268
apfitzge wants to merge 5 commits into
anza-xyz:masterfrom
apfitzge:slot_gated_retry

Conversation

@apfitzge
Copy link
Copy Markdown

Problem

  • scheduler may retry transactions in the same slot unnecessarily. in edge case this could potentially lead to attempting same transactions many times

Summary of Changes

  • track most recent slot attempted processing
  • wait at least until next slot to retry

Fixes #

@apfitzge apfitzge marked this pull request as ready for review March 12, 2025 21:14
@apfitzge apfitzge requested review from jstarry and tao-stones March 12, 2025 21:14
|_| PreLockFilterAction::AttemptToSchedule // no pre-lock filter for now
|state| {
if state.last_tried_slot() == Some(bank_start.working_bank.slot()) {
PreLockFilterAction::SkipAndRetain
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

to clarify, what are the cases worker would send back tx for retry? Wondering if all retry cases are not suitable for current slot

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

  1. block limits exceeded
  2. poh recording failed (slot ended)
  3. account locks taken (shouldn't happen due to scheduling logic)
    • ugh this does happen because of jito though...
  4. bank failed to become available in 50ms (in this case None is returned for the slot)

@apfitzge
Copy link
Copy Markdown
Author

Think we cannot do this because of the jito scheduler rugging - it'll fuck jito validators.

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.

2 participants