Repository navigation
Merge upstream v4.4.0-beta.1 - #21
Merged
Merged
Conversation
…rt of solana-labs#15617) (solana-labs#15622) validator: Swallow identity not found error during wait (solana-labs#15617) #### Problem The RPC leader schedule endpoint now returns an error if an identity is provided, but the identity doesn't exist in the leader schedule. The validator `wait-for-restart-window` command uses this to figure out if it's a good time to restart, but all validators use it, including non-voting validators, which causes them to fail exiting. #### Summary of changes Swallow the new error type. (cherry picked from commit c1f0521) Co-authored-by: Jon C <me@jonc.dev>
… of solana-labs#15529) (solana-labs#15608) SIMD-0123: Gate `clone_and_filter_for_vat` on feature (solana-labs#15529) #### Problem The Firedancer fuzzers don't work between v4.3 and v4.4 because v4.4 takes `pending_delegator_rewards` into account when figuring out how many lamports are available for a vote account. #### Summary of changes Gate the lamport check behavior on the feature gate. Since `pending_delegator_rewards` can't be incremented until the feature gate is enabled, the current code is safe. For the same reason, this PR doesn't actually change the behavior under the feature gate. However, the random data generated by the fuzzers creates a divergence in behavior between the two versions. (cherry picked from commit 7b0c0f3) Co-authored-by: Jon C <me@jonc.dev>
…solana-labs#15733) (solana-labs#15735) ci: use github app token to create version bump PRs (solana-labs#15733) (cherry picked from commit 03a9d5a) Co-authored-by: Yihau Chen <yihau.chen@icloud.com>
…backport of solana-labs#15682) (solana-labs#15792) ci: add bypass user list to the buildkite triggering pipeline (solana-labs#15682) (cherry picked from commit 2612b5c) Co-authored-by: Yihau Chen <yihau.chen@icloud.com>
…ort of solana-labs#15684) (solana-labs#15790) ci: url encode username in bulidkite triggering piepline (solana-labs#15684) (cherry picked from commit 8769cd3) Co-authored-by: Yihau Chen <yihau.chen@icloud.com>
…backport of solana-labs#15544) (solana-labs#15751) * Perf - Checks the ELF header of loader-v1/v2 programs earlier (solana-labs#15544) * Checks the ELF header of loader-v1/v2 programs earlier in get_program_deployment_slot(). * Review feeback by @buffalojoec * Review feedback by @bw-solana (cherry picked from commit affd9f1) # Conflicts: # svm/Cargo.toml * Fixes git merge conflicts. --------- Co-authored-by: Alexander Meißner <AlexanderMeissner@gmx.net>
… of solana-labs#15804) (solana-labs#15838) bigtable: don't upload past the blockstore's max root (solana-labs#15804) * bigtable: don't upload past the blockstore's max root Under Alpenglow, votor publishes a new root to the commitment cache (`update_commitment_cache`) a few milliseconds before the bank forks controller writes the root markers with `Blockstore::set_roots`. The upload service took the end of each pass from the commitment cache root. When every slot in a pass's range is still unrooted in the blockstore at that moment, as with the first block after a fully skipped leader window, `upload_confirmed_blocks` finds no rooted slots, logs "Ledger has no slots from A to B" and returns B as done. The service then moves past the block and never uploads it. A single new root doesn't hit this because the service waits until the range spans more than one slot, and by then the marker is written. Cap the end of each pass at `blockstore.max_root()`, which only advances after the root batch is written. Under TowerBFT the blockstore roots are written before the commitment cache root moves, so the cap changes nothing there. The range computation moves into `next_upload_end_slot` so a test can run the service's passes across the race. The test fails without the cap ("slot 156 was skipped"). * bigtable: drop the commitment cache from the upload bound With passes capped at `blockstore.max_root()`, the commitment cache root adds nothing. The cache was only a stand-in for the node's root here (solana-labs#21401). Under TowerBFT it never leads `blockstore.max_root()`, because replay writes the blockstore roots before it updates the commitment cache. Under Alpenglow it can lead, which is the race fixed in the previous commit. At startup `max_complete_transaction_status_slot` already starts at `blockstore.max_root()`. Bound each pass by `max_complete_transaction_status_slot` and `blockstore.max_root()` only, both of which describe what the blockstore holds. Drop the now-unused `block_commitment_cache` parameter from `BigTableUploadService::new` and `new_with_config`. The test now models the race as transaction statuses complete through the new root while its root marker isn't written yet. * bigtable: test `next_upload_end_slot` directly With the commitment cache gone, the race is fully described by `next_upload_end_slot`, so the test no longer needs to run a pass through `upload_confirmed_blocks` against an unconnected emulator client. Assert on the computed end slot instead, and cover the start-slot boundaries: a pass starting before the highest written root runs up to it, and one starting at that root waits for the next root. Also shorten the `next_upload_end_slot` doc comment. * bigtable: simplify the `next_upload_end_slot` doc comment Describe the bound in terms of the blockstore alone. --------- (cherry picked from commit 641770c) Co-authored-by: Justin Starry <justin@anza.xyz> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…lana-labs#15795) (solana-labs#15812) * vote-program: Disable `DepositDelegatorRewards` (solana-labs#15795) #### Problem The `DepositDelegatorRewards` instruction in its current form has issues, as outlined in this [SIMD Discussion](solana-foundation/solana-improvement-documents#686). #### Summary of changes Return an error from the instruction processor. Also, rekey SIMD-0123, since the behavior under its feature gate is changing. #### Testing New test to make sure error is always returned. (cherry picked from commit 70cbde8) # Conflicts: # runtime/src/bank/tests.rs * Update test hash --------- Co-authored-by: Jon C <me@jonc.dev>
…ana-labs#15752) gossip: reduce bufferbloat (solana-labs#15636) Confine ingress channel to 2 sigverify iterations Reduce sigverify iteration batch to <200ms Reduce post-sigverify consume channel to 4 rounds of sigverify. (cherry picked from commit 476e8d0) Co-authored-by: Alex Pyattaev <alex.pyattaev@anza.xyz>
…lana-labs#15810) runtime: ebpp relax relatch (solana-labs#15766) (cherry picked from commit 619625e) Co-authored-by: Joe Caulfield <joe.caulfield@anza.xyz>
…olana-labs#15811) (solana-labs#15833) program-runtime: extract: use rooted access slot (solana-labs#15811) (cherry picked from commit 3453d0f) Co-authored-by: Joe Caulfield <joe.caulfield@anza.xyz>
solana-labs#15886) (solana-labs#15891) * fix: make Alpenglow slot timing available on Windows (solana-labs#15886) (cherry picked from commit 53b462b) # Conflicts: # core/src/banking_stage/progress_tracker.rs * resolve conflicts --------- Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
vendor quinn-proto 0.11.18 and quinn 0.11.12
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
sduchesneau
marked this pull request as ready for review
October 14, 2026 15:52
UlysseCorbeil
approved these changes
Oct 14, 2026
release/4.x requires the dependency-review and check-secrets status checks.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges upstream
v4.4.0-beta.1intorelease/4.x(previouslyv4.4.0-beta.0), 15 upstream commits. The merge was clean. This PR also adds thedependency-reviewandcheck-secretsworkflows thatrelease/4.xrequires, so the fork-owned files go from four to six. Tagging the merge producesv4.4.0-beta.1-fh3.0.The Geyser plugin interface is unchanged (
agave-geyser-plugin-interface = "=5.0.0"); the plugin only needs to re-pin to 4.4.0-beta.1.block_revenue_sharing(SIMD-0123) is rekeyed toCrbnc267wkJvFhYakqwWWX57sx5bkrftJLekzy6yWKLT, not activated on mainnet or testnet.Merge with "Create a merge commit" (not squash or rebase) so the upstream parent is kept.
Testing
cargo check -p solana-geyser-plugin-manager -p agave-validator: passes.solana-battlefieldnot run.