-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[pipeline] fix observer #15764
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
[pipeline] fix observer #15764
Conversation
zekun000
commented
Jan 16, 2025
- tolerate the case when the parent block's future gets garbage collected (i.e. at epoch boundary)
- move pipeline creation to be exclusive with sync (either target or fallback)
⏱️ 1h 17m total CI duration on this PR
🚨 1 job on the last run was significantly faster/slower than expected
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks boss!
// Insert the ordered block into the pending blocks | ||
self.ordered_block_store | ||
.lock() | ||
.insert_ordered_block(ordered_block.clone()); | ||
|
||
// If state sync is not syncing to a commit, finalize the ordered blocks | ||
if !self.state_sync_manager.is_syncing_to_commit() { | ||
if !self.state_sync_manager.is_syncing_to_commit() | ||
&& !self.state_sync_manager.in_fallback_mode() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: this is probably not needed. When we enter fallback mode, we terminate all subscriptions, so we never process any CO network messages in fallback mode.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm i added this because i saw in logs that both fallback and pipeline are running
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Weird. Do you have a log trace? When we fallback, we terminate all subscriptions, so any messages received after that should be dropped. Wondering if there's a race condition or something else 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Boss, can you revert this? It shouldn't happen, and if it does, something much bigger is wrong, so I'd rather not hide it 😄
); | ||
return; | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@JoshLind there should be a return here iiuc? Otherwise, we are executing twice.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IIUC and this orders the blocks for execution, then yeah, we should return, otherwise, we'll call finalize_order
below and that will execute as well? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we send to buffer manager regardless of new pipeline enabled or not, it still relies on buffer manager to aggregate votes/cert. buffer manager inspects the pipelined block to know whether it's enabled or not
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Latest run looks good. 🚀 One node fell into state sync but looks unrelated (bottlenecked).
LGTM, but can we revert the finalize_ordered_block
branch check? 😄
// Insert the ordered block into the pending blocks | ||
self.ordered_block_store | ||
.lock() | ||
.insert_ordered_block(ordered_block.clone()); | ||
|
||
// If state sync is not syncing to a commit, finalize the ordered blocks | ||
if !self.state_sync_manager.is_syncing_to_commit() { | ||
if !self.state_sync_manager.is_syncing_to_commit() | ||
&& !self.state_sync_manager.in_fallback_mode() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Boss, can you revert this? It shouldn't happen, and if it does, something much bigger is wrong, so I'd rather not hide it 😄
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
✅ Forge suite
|