• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

iotaledger / iota / 26378894697
67%

Build:
DEFAULT BRANCH: develop
Ran 25 May 2026 02:37AM UTC
Jobs 1
Files 1076
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 May 2026 03:21PM UTC coverage: 66.911% (+0.003%) from 66.908%
26378894697

push

github

web-flow
fix(typed-store,starfish-core): port upstream storage iterator and VecDeque fixes (#11610)

# Description of change

Ports three upstream correctness fixes touching storage iterators and
consensus block scanning. Each commit corresponds to a separate upstream
PR.

## Upstream PRs ported

- **`fix(starfish-core): handle VecDeque wraparound …`** — port of
MystenLabs/sui#24745. `scan_last_blocks_by_author` in `MemStore` and
`RocksDBStore` used `VecDeque::as_slices().0`, which only covers the
first contiguous segment of the ring buffer; when the deque storage
wraps, the trailing `BlockRef`s are silently dropped. Calls
`make_contiguous()` before slicing. Public API and ordering unchanged.

- **`fix(typed-store): exclude max key when safe_range_iter lower bound
is Excluded`** — port of MystenLabs/sui#26469.
`iterator_bounds_with_range`'s `Bound::Excluded(lower_bound)` arm called
`big_endian_saturating_add_one`, which is a no-op when the encoded key
is all `0xFF`. RocksDB then receives the unchanged max key as its
(inclusive) lower bound and yields the entry the caller asked to
exclude. Mirrors the `is_max` short-circuit already used on the
upper-bound arm: appends a zero byte so the bound is lexicographically
greater than any same-length stored key. Includes regression tests for
`(Excluded(MAX), Unbounded)` and `(Excluded(MAX), Included(MAX))`.

- **`test(typed-store): add regression coverage for safe_range_iter
inclusive upper bound at max`** — test-only port of
MystenLabs/sui#26456. The upstream PR also fixed a `util.rs` bug in the
`Bound::Included(upper_bound)` arm; IOTA's existing port of this code
was already correct (the `if is_max { None } else { Some(...) }`
short-circuit was there from the start), so only the regression tests
are imported.

## IOTA-specific note on the bound symmetry

- **Upper bound (`Bound::Included` at max key):** the original upstream
code (April 2025) was buggy. IOTA's port (March 2026) was written as `if
!is_max { ...Some... ... (continued)

11 of 14 new or added lines in 3 files covered. (78.57%)

30 existing lines in 14 files now uncovered.

152195 of 227460 relevant lines covered (66.91%)

465573.69 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
96.34
0.0% crates/typed-store/src/util.rs

Coverage Regressions

Lines Coverage ∆ File
5
89.95
0.0% crates/starfish/core/src/storage/mem_store.rs
4
89.42
-0.96% crates/iota-types/src/base_types.rs
4
81.87
-0.78% crates/starfish/core/src/network/tonic_network.rs
3
93.63
0.0% crates/starfish/core/src/storage/rocksdb_store.rs
2
89.35
0.0% crates/iota-core/src/connection_monitor.rs
2
91.98
-0.84% crates/iota-http/src/lib.rs
2
74.82
0.29% crates/iota-network/src/randomness/mod.rs
2
91.78
-0.05% crates/starfish/core/src/header_synchronizer.rs
1
98.62
-0.28% crates/iota-core/src/signature_verifier.rs
1
89.08
-0.11% crates/iota-network/src/state_sync/mod.rs
1
86.47
-0.75% crates/iota-network-stack/src/grpc_timeout.rs
1
88.88
-0.11% crates/starfish/core/src/commit_syncer/fast.rs
1
96.48
-0.03% crates/starfish/core/src/dag_state.rs
1
93.48
-0.07% crates/starfish/core/src/transactions_synchronizer.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 26378894697.1 25 May 2026 02:37AM UTC 1076
66.91
GitHub Action Run
Source Files on build 26378894697
  • Tree
  • List 1076
  • Changed 17
  • Source Changed 0
  • Coverage Changed 17
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26378894697
  • fd45315b on github
  • Prev Build on develop (#26348771894)
  • Next Build on develop (#26427363945)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc