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

iotaledger / iota / 30869102903
70%

Build:
DEFAULT BRANCH: develop
Ran 04 Aug 2026 02:30AM UTC
Jobs 1
Files 1058
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

03 Aug 2026 02:56PM UTC coverage: 69.202% (+0.03%) from 69.175%
30869102903

push

github

web-flow
fix(typed-store): delete the last entry in schedule_delete_all (#12497)

# Description of change

Make `schedule_delete_all` clear the whole table, and compile it only
under the simulator, where its only remaining caller lives.

**The bug.** The range delete tombstone it wrote is half-open —
`DBBatch::schedule_delete_range` deletes `[from, to)` — but the upper
bound passed was the serialization of the last key itself, so that key
survived. Inserting `1, 2, 3` and calling `schedule_delete_all` left `3`
behind.

The upper bound is now the serialized last key with a zero byte
appended: the first byte string that sorts above it. This mirrors what
the inclusive-upper-bound arm of `iterator_bounds_with_range` does at
the maximum, and unlike incrementing the key it also works when the last
key serializes to all ones (`u64::MAX`, or `-1` for a signed key) —
there is nothing to increment there. It needs a byte-level bound, so
`DBBatch` gets `schedule_delete_range_raw`, taking already-serialized
bounds, which the typed `schedule_delete_range` now delegates to.

The lower bound is the empty key, which sorts below every key, so the
first key is not read at all — one iterator instead of two, and a
narrower race window: an entry inserted below the first key used to
survive as well, now only one above the last key can.

**Why it went unnoticed.** `TestDB::schedule_delete_all` is
`rows.clear()`, which does clear everything, so a test written against
`TestDB` passes either way. The regression tests use a RocksDB-backed
`DBMap` and cover: many entries, a single entry, an empty table, a last
key serializing to all ones, signed keys (where byte order differs from
numeric order), a unit key (empty serialization), variable-length keys,
entries already flushed to SST files, a sibling column family left
intact, and re-inserting the boundary key after the clear.

**Effect on existing behaviour.** Outside typed-store's own tests the
only caller is `#[cfg(msim)]` `delete_all_tr... (continued)

166311 of 240326 relevant lines covered (69.2%)

474133.69 hits per line

Coverage Regressions

Lines Coverage ∆ File
67
85.09
0.85% crates/iota-move-build/src/lib.rs
28
76.87
-0.46% crates/test-cluster/src/lib.rs
24
90.16
-0.66% crates/iota-protocol-config/src/lib.rs
15
89.29
2.85% crates/iota-move/src/build.rs
11
86.88
-1.81% crates/iota-transaction-builder/src/utils.rs
11
92.19
0.01% crates/iota-types/src/move_package.rs
10
66.72
-0.34% crates/iota-core/src/authority/authority_store.rs
10
85.41
-0.91% crates/iota-json-rpc/src/read_api.rs
8
57.2
-0.56% crates/iota-json-rpc-types/src/iota_object.rs
8
77.27
-1.75% crates/iota-sdk/src/wallet_context.rs
8
53.23
-6.45% crates/iota-transaction-builder/src/package.rs
7
87.91
-7.69% iota-execution/latest/iota-move-natives/src/transaction_context.rs
6
83.37
-0.18% crates/iota-core/src/authority.rs
6
72.11
-4.08% crates/iota-json-rpc-types/src/lib.rs
5
78.4
-0.69% crates/iota-core/src/traffic_controller/mod.rs
4
49.49
0.0% crates/iota-sdk/src/apis/read.rs
4
85.51
-5.8% crates/iota-types/src/quorum_driver_types.rs
4
82.51
-0.22% crates/iota-types/src/transaction.rs
3
89.0
0.0% crates/iota-core/src/connection_monitor.rs
3
91.45
-0.13% crates/iota-core/src/execution_cache/writeback_cache.rs
3
75.73
-2.91% crates/iota-grpc-server/src/server.rs
3
90.32
1.17% crates/iota-test-transaction-builder/src/lib.rs
3
97.96
-2.04% crates/iota-types/src/mock_checkpoint_builder.rs
3
95.45
-2.73% crates/starfish/config/src/committee.rs
2
28.95
-0.53% crates/iota-core/src/transaction_driver/error.rs
1
86.11
0.0% crates/iota-cluster-test/src/test_case/native_transfer_test.rs
1
81.69
-0.06% crates/iota-core/src/checkpoints/mod.rs
1
94.12
-1.88% crates/iota-json-rpc-types/src/iota_protocol.rs
1
95.65
-4.35% crates/iota-keys/src/random_names.rs
1
89.1
-0.14% crates/iota-network/src/discovery/mod.rs
1
93.62
-0.04% crates/starfish/core/src/authority_service.rs
1
83.93
0.42% crates/typed-store/src/database.rs
Jobs
ID Job ID Ran Files Coverage
1 nextest+simtest - 30869102903.1 04 Aug 2026 02:29AM UTC 1058
69.2
GitHub Action Run
Source Files on build 30869102903
  • Tree
  • List 1058
  • Changed 56
  • Source Changed 10
  • Coverage Changed 56
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #30869102903
  • 441767e9 on github
  • Prev Build on develop (#30777170739)
  • Next Build on develop (#30966684274)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc