feat: catchup to agave@1040553#437
Merged
ksn6 merged 108 commits intoanza-xyz:masterfrom Sep 6, 2025
Merged
Conversation
This was referenced Sep 5, 2025
AshwinSekar
added a commit
that referenced
this pull request
Sep 5, 2025
These commits have a lot of merge conflicts so cherry-picking separately from #437 --------- Co-authored-by: Andrew Fitzgerald <apfitzge@gmail.com>
… (#7143) tpu-client-next: improve logging by adding information about the peer --------- Co-authored-by: kirill lykov <lykov.kirill@gmail.com>
* Adding set_full_snapshot to snapshot_restore tests so they are compatible with obsolete accounts * Update test_accounts_clean_after_snapshot_restore
`calculate_stake_vote_rewards` was storing accumulated rewards per vote account in a `DashMap`, which then was used in a parallel iterator over all stake delegations. There are over 1,000,000 stake delegations and around 1,000 validators. Each thread processes one of the stake delegations and tries to acquire the lock on a `DashMap` shard corresponding to a validator. Given that the number of validators is disproportionally small and they have thousands of delegations, such solution results in high contention, with some threads spending the most of their time on waiting for lock. The time spent on these calculations was ~208.47ms: ``` redeem_rewards_us=208475i ``` Fix that by: * Removing the `DashMap` and instead using `fold` and `reduce` operations to build a regular `HashMap`. * Pre-allocating the `stake_rewards` vector and passing `&mut [MaybeUninit<PartitionedStakeReward>]` to the thread pool. * Pulling the optimization of `StakeHistory::get` in `solana-stake-interface`. solana-program/stake#81 ``` redeem_rewards_us=48781i ```
…(#7718) * Use explicit ReadWriteState for marking AppendVec as write/read-only * Update comments. * PR comments. * Fix spelling.
* build(deps): bump indexmap from 2.10.0 to 2.11.0 Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.10.0 to 2.11.0. - [Changelog](https://github.com/indexmap-rs/indexmap/blob/main/RELEASES.md) - [Commits](indexmap-rs/indexmap@2.10.0...2.11.0) --- updated-dependencies: - dependency-name: indexmap dependency-version: 2.11.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump memmap2 from 0.9.7 to 0.9.8 Bumps [memmap2](https://github.com/RazrFalcon/memmap2-rs) from 0.9.7 to 0.9.8. - [Changelog](https://github.com/RazrFalcon/memmap2-rs/blob/master/CHANGELOG.md) - [Commits](RazrFalcon/memmap2-rs@v0.9.7...v0.9.8) --- updated-dependencies: - dependency-name: memmap2 dependency-version: 0.9.8 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…(#6900)" (#7738) This reverts commit e752ae6.
* build(deps): bump bitflags from 2.9.1 to 2.9.3 Bumps [bitflags](https://github.com/bitflags/bitflags) from 2.9.1 to 2.9.3. - [Release notes](https://github.com/bitflags/bitflags/releases) - [Changelog](https://github.com/bitflags/bitflags/blob/main/CHANGELOG.md) - [Commits](bitflags/bitflags@2.9.1...2.9.3) --- updated-dependencies: - dependency-name: bitflags dependency-version: 2.9.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump serde_json from 1.0.142 to 1.0.143 Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.142 to 1.0.143. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](serde-rs/json@v1.0.142...v1.0.143) --- updated-dependencies: - dependency-name: serde_json dependency-version: 1.0.143 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Initializes R1 in the ledger-tool program subcommand as well.
refactor: remove unused additional_builtins param
Removing as part of legacy shred cleanup
* streamer testing fixture/example --------- Co-authored-by: kirill lykov <lykov.kirill@gmail.com>
Modify geyser test to avoid flushing the write cache
* Refactor ClientOption to solana-client crate * cargo.toml style
mark handle_chunks as non-async
* build(deps): bump solana-keypair from 3.0.0 to 3.0.1 Bumps [solana-keypair](https://github.com/anza-xyz/solana-sdk) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/anza-xyz/solana-sdk/releases) - [Commits](https://github.com/anza-xyz/solana-sdk/compare/sdk@v3.0.0...keypair@v3.0.1) --- updated-dependencies: - dependency-name: solana-keypair dependency-version: 3.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump solana-message from 3.0.0 to 3.0.1 Bumps [solana-message](https://github.com/anza-xyz/solana-sdk) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/anza-xyz/solana-sdk/releases) - [Commits](https://github.com/anza-xyz/solana-sdk/compare/sdk@v3.0.0...keypair@v3.0.1) --- updated-dependencies: - dependency-name: solana-message dependency-version: 3.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Problem
The biggest problem is that the cache lock is not actually being dropped when the function thinks it is dropping it because it is holding on to a mutable reference to an entry in the cache after calling drop. This probably isn't causing any correctness problems yet but the intend is properly implemented; could cause performance issues; or create correctness issues in the future.
Using meta.last_index.unwrap_or_default(); when meta.is_full() returns true. meta.last_index should not be None as this point. So in case of bugs or future code changes, using unwrap_or_default() might return a 0 which will cause us to work with nonsensical data.
unnecessary lifetimes and types
Summary of Changes
Uses scopes to ensure that the lock is dropped properly
uses meta.last_index.unwrap(). In future work, we could consider getting meta.is_full() to return the index to completely remove the use of unwrap here.
removes unnecessary lifetimes and types
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 5. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](actions/setup-node@v4...v5) --- updated-dependencies: - dependency-name: actions/setup-node dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Improve performance of inserting zero lamport accounts on startup with obsolete accounts enabled
* build(deps): bump log from 0.4.27 to 0.4.28 Bumps [log](https://github.com/rust-lang/log) from 0.4.27 to 0.4.28. - [Release notes](https://github.com/rust-lang/log/releases) - [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md) - [Commits](rust-lang/log@0.4.27...0.4.28) --- updated-dependencies: - dependency-name: log dependency-version: 0.4.28 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This reverts commit 0417f3d. Switching behavior based on whether debug assertions are enabled or not seems fragile, so we should take another approach to solving the problem this PR aimed to address
…… (#7869) * Modifying some tests to run with both obsolete accounts enabled and disabled and others to only run with obsolete accounts disabled
Run cargo fmt with format_strings = true in rustfmt.toml
clean remove broken bank benches
This PR fixes the problem that a user cannot create a custom scheduler implementation using provided components (Worker, WorkerCache, etc) because part of the functionality is private. To fix this, we mark them public with `agave-unstable-api` feature.
* use chained variant in test_find_missing_data_indexes_timeout * use chained variant in test_should_insert_data_shred * remove test_cases / use chained varian always in test_duplicate_slot
Co-authored-by: Tao Zhu <82401714+tao-stones@users.noreply.github.com>
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](actions/github-script@v7...v8) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump js-sys from 0.3.77 to 0.3.78 Bumps [js-sys](https://github.com/wasm-bindgen/wasm-bindgen) from 0.3.77 to 0.3.78. - [Release notes](https://github.com/wasm-bindgen/wasm-bindgen/releases) - [Changelog](https://github.com/wasm-bindgen/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/wasm-bindgen/wasm-bindgen/commits) --- updated-dependencies: - dependency-name: js-sys dependency-version: 0.3.78 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> * Update all Cargo files --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
wen-coding
approved these changes
Sep 6, 2025
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.
No description provided.