fix: stop event-triggers Lagged handler from re-emitting via the same channel
Merge 1061 added a replay_current_pipeline_state() call to the broadcast::Lagged branch, but replay broadcasts one event per CRDT item (~997) into a 256-slot channel, deterministically re-overflowing it and triggering another Lagged. The loop pinned CPU and likely caused today's machine crash. Revert to the pre-1061 behaviour of logging and continuing. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -330,9 +330,8 @@ pub(crate) fn spawn_event_trigger_subscriber(
|
|||||||
Ok(f) => f,
|
Ok(f) => f,
|
||||||
Err(broadcast::error::RecvError::Lagged(n)) => {
|
Err(broadcast::error::RecvError::Lagged(n)) => {
|
||||||
crate::slog!(
|
crate::slog!(
|
||||||
"[event-triggers] Lagged {n} transition events; replaying pipeline state to recover"
|
"[event-triggers] Lagged {n} transition events; some triggers may have been skipped"
|
||||||
);
|
);
|
||||||
crate::pipeline_state::replay_current_pipeline_state();
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Err(broadcast::error::RecvError::Closed) => {
|
Err(broadcast::error::RecvError::Closed) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user