Skip to content

Conversation

@afck
Copy link
Contributor

@afck afck commented Nov 19, 2025

Motivation

#4978 revealed that the client fails to send the admin chain to validators that are missing a committee in some cases.

Proposal

Remove committees_for from storage. Return BlobsNotFound and EventsNotFound instead of ViewErrors.

Also remove some redundant code, and check height before epoch when handling a validated block.

I got stack overflows in some cases, so I also doubled the client's Tokio thread stack size.

Test Plan

CI

#4978 failed without this.

Release Plan

  • These changes should
    • be released in a new SDK,
    • be released in a validator hotfix.

Links

@afck afck requested review from bart-linera, deuszx and ma2bd November 19, 2025 10:15
@afck afck changed the title Fix missing committee blobs handling. [testnet] Fix missing committee blobs handling. Nov 19, 2025
builder
};

runtime.thread_stack_size(4 << 20);
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe a comment?

Comment on lines +824 to +829
let committee_blob = self
.context()
.extra()
.get_blob(blob_id)
.await?
.ok_or(ExecutionError::BlobsNotFound(vec![blob_id]))?;
Copy link
Contributor

Choose a reason for hiding this comment

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

Probably not introduced in this PR but maybe we can return all missing committee blobs at once? Then the client can choose whether to udpate one-by-one or in a single message.

@afck
Copy link
Contributor Author

afck commented Nov 19, 2025

Closing this for now. I will apply your comments on #4978 and backport once it's merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants