Skip to content

Comments

fix(exex): prevent ExExManager deadlock when buffer clears after being full#21135

Merged
mattsse merged 3 commits intoparadigmxyz:mainfrom
op-rs:arun/fix/exex-manager-deadlock
Jan 16, 2026
Merged

fix(exex): prevent ExExManager deadlock when buffer clears after being full#21135
mattsse merged 3 commits intoparadigmxyz:mainfrom
op-rs:arun/fix/exex-manager-deadlock

Conversation

@dhyaniarun1993
Copy link
Contributor

Description

This PR fixes a deadlock scenario in the ExExManager where the manager could stop processing new notifications permanently after its internal buffer filled up and subsequently cleared.

Closes #19665

@github-project-automation github-project-automation bot moved this to Backlog in Reth Tracker Jan 16, 2026
@dhyaniarun1993 dhyaniarun1993 changed the title fix(exex): prevent ExExManager deadlock when buffer clears after bein… fix(exex): prevent ExExManager deadlock when buffer clears after being full Jan 16, 2026
Copy link
Collaborator

@mattsse mattsse left a comment

Choose a reason for hiding this comment

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

very nice find, tysm

this should do it

Comment on lines +540 to +544
// If the buffer was full and we made space, we need to wake up to accept new notifications
if buffer_full && this.buffer.len() < this.max_capacity {
debug!(target: "exex::manager", "Buffer has space again, waking up senders");
cx.waker().wake_by_ref();
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

right because we have

while this.buffer.len() < this.max_capacity {

in front of the poll loop -.-

@github-project-automation github-project-automation bot moved this from Backlog to In Progress in Reth Tracker Jan 16, 2026
@mattsse mattsse added this pull request to the merge queue Jan 16, 2026
@mattsse mattsse added C-bug An unexpected or incorrect behavior A-op-reth Related to Optimism and op-reth labels Jan 16, 2026
Merged via the queue into paradigmxyz:main with commit a164654 Jan 16, 2026
44 checks passed
@github-project-automation github-project-automation bot moved this from In Progress to Done in Reth Tracker Jan 16, 2026
meyer9 pushed a commit to meyer9/reth that referenced this pull request Jan 16, 2026
@dhyaniarun1993 dhyaniarun1993 deleted the arun/fix/exex-manager-deadlock branch January 19, 2026 04:18
@mattsse mattsse added the M-changelog This change should be included in the changelog label Jan 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-op-reth Related to Optimism and op-reth C-bug An unexpected or incorrect behavior M-changelog This change should be included in the changelog

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

ExEx stops receiving notifications if not processed fast enough

2 participants