Skip to content

Drain pending Gloas data columns for our own proposed block#17059

Open
potuz wants to merge 5 commits into
developfrom
receive-self-columns
Open

Drain pending Gloas data columns for our own proposed block#17059
potuz wants to merge 5 commits into
developfrom
receive-self-columns

Conversation

@potuz

@potuz potuz commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Our own proposed block is imported via the RPC path (ProposeBeaconBlock -> ReceiveBlock) and never re-enters the gossip/by-root ingest paths that drain pending Gloas columns. Columns peers reconstruct and gossip back to us arrive before our local import, get queued as "block not yet seen", and are never drained -- so the payload's data columns are declared unavailable at slot end.

Subscribe sync to the statefeed BlockProcessed event (which fires on every import path, including our own block) and drain the pending Gloas columns for the processed root. Gated on regular sync to avoid needless work on the initial-sync batch path.

@potuz potuz force-pushed the receive-self-columns branch from 61a99e7 to f2294bb Compare June 30, 2026 13:52
Our own proposed block is imported via the RPC path (ProposeBeaconBlock ->
ReceiveBlock) and never re-enters the gossip/by-root ingest paths that drain
pending Gloas columns. Columns peers reconstruct and gossip back to us arrive
before our local import, get queued as "block not yet seen", and are never
drained -- so the payload's data columns are declared unavailable at slot end.

Subscribe sync to the statefeed BlockProcessed event (which fires on every
import path, including our own block) and drain the pending Gloas columns for
the processed root. Gated on regular sync to avoid needless work on the
initial-sync batch path.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@potuz potuz force-pushed the receive-self-columns branch from f2294bb to 1338ba3 Compare June 30, 2026 14:00
james-prysm
james-prysm previously approved these changes Jun 30, 2026
if s.cfg.initialSync != nil && s.cfg.initialSync.Syncing() {
continue
}
s.processPendingGloasColumns(s.ctx, data.BlockRoot, data.SignedBlock)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Use a go routine here? (we do in other places as well)
reason being state feed send blocks until it drains (its size is 1), if this takes longer, I dont know what other things this may be blocking

@potuz potuz enabled auto-merge June 30, 2026 15:08
@potuz potuz added this pull request to the merge queue Jul 1, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 1, 2026
@james-prysm james-prysm enabled auto-merge July 1, 2026 18:00
@github-project-automation github-project-automation Bot moved this to Unassigned in Gloas Jul 1, 2026
@james-prysm james-prysm added this pull request to the merge queue Jul 2, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Unassigned

Development

Successfully merging this pull request may close these issues.

4 participants