Skip to content

Don't return Pending node when fork choice reverts to justified block - #9962

Merged
mergify[bot] merged 2 commits into
sigp:unstablefrom
NikhilSharmaWe:fix/gloas-pending-head
Sep 9, 2026
Merged

Don't return Pending node when fork choice reverts to justified block#9962
mergify[bot] merged 2 commits into
sigp:unstablefrom
NikhilSharmaWe:fix/gloas-pending-head

Conversation

@NikhilSharmaWe

@NikhilSharmaWe NikhilSharmaWe commented Sep 2, 2026

Copy link
Copy Markdown

Closes #9544.

Description

  • find_head_walk was filtering virtual EMPTY/FULL children of a PENDING node against viable_nodes. Under deep non-finality the justified seed can be non-viable, so those children were dropped and get_head returned Pending, which breaks block production.
  • Skip the filter for PENDING heads. Viability filtering still applies to real block children from EMPTY/FULL nodes.
  • Adds pending_head_resolves_when_justified_subtree_non_viable in gloas_payload.rs.

Signed-off-by: Nikhil Sharma <nikhilsharma230303@gmail.com>
@michaelsproul michaelsproul changed the title Fix PENDING GLOAS head when justified subtree is non-viable Fix Pending Gloas head when justified subtree is non-viable Sep 9, 2026

@michaelsproul michaelsproul left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good, thanks.

We likely need this for fork choice compliance tests, and I've run into it while fuzzing block production.

@michaelsproul michaelsproul changed the title Fix Pending Gloas head when justified subtree is non-viable Don't return Pending node when fork choice reverts to justified block Sep 9, 2026
@mergify

mergify Bot commented Sep 9, 2026

Copy link
Copy Markdown

Queued — the merge queue status continues in this comment ↓.

@michaelsproul michaelsproul added consensus An issue/PR that touches consensus code, such as state_processing or block verification. gloas fork-choice ready-for-merge This PR is ready to merge. labels Sep 9, 2026
@mergify

mergify Bot commented Sep 9, 2026

Copy link
Copy Markdown

Merge Queue Status

This pull request spent 31 minutes 59 seconds in the queue, including 28 minutes 3 seconds running CI.

Required conditions to merge

@mergify mergify Bot added the queued label Sep 9, 2026
@mergify
mergify Bot merged commit f93875f into sigp:unstable Sep 9, 2026
38 checks passed
@mergify mergify Bot removed the queued label Sep 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consensus An issue/PR that touches consensus code, such as state_processing or block verification. fork-choice gloas ready-for-merge This PR is ready to merge.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants