Skip to content

feat: catchup to agave@1040553#437

Merged
ksn6 merged 108 commits intoanza-xyz:masterfrom
ksn6:catchup-to-agave-2
Sep 6, 2025
Merged

feat: catchup to agave@1040553#437
ksn6 merged 108 commits intoanza-xyz:masterfrom
ksn6:catchup-to-agave-2

Conversation

@ksn6
Copy link
Copy Markdown
Contributor

@ksn6 ksn6 commented Sep 5, 2025

No description provided.

@ksn6 ksn6 marked this pull request as ready for review September 5, 2025 02:25
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>
Swarna and others added 26 commits September 5, 2025 19:41
… (#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>
* 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>
akhi3030 and others added 26 commits September 5, 2025 20:08
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
* Revert "Resolving linter issue with keypair commenting (#7870)"

This reverts commit ea34d3b.

* Revert "fix: Show correct default path in signer error messages (#7849)"

This reverts commit 7c3e9e7.
* 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>
@ksn6 ksn6 changed the title feat: catchup to agave@ 4a3e05a feat: catchup to agave@1040553 Sep 5, 2025
@ksn6 ksn6 merged commit 0c0c6ff into anza-xyz:master Sep 6, 2025
7 checks passed
@ksn6 ksn6 deleted the catchup-to-agave-2 branch September 8, 2025 18:48
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.