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

tari-project / tari / 34353387950
76%

Build:
DEFAULT BRANCH: development
Ran 09 Sep 2026 01:42PM UTC
Jobs 1
Files 776
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

09 Sep 2026 12:50PM UTC coverage: 62.255% (-0.02%) from 62.274%
34353387950

push

github

web-flow
fix(base_node/grpc): honour get_blocks cancellation a (#7997)

`get_blocks` logged a cancellation warning when `tx.send` failed but
fell through and kept paging, so a client that disconnected left the
spawned task hydrating every remaining block from LMDB and discarding
it. It also paged the whole span between the lowest and highest
requested height and then filtered the results, so `heights = [100,
340000]` fully hydrated 339,900 blocks to return 2. Together these let
an ordinary client drive an archival node into a self-sustaining CPU/IO
spiral that only a restart cleared.

- Return from the streaming task on cancellation, matching `get_peers`,
`search_kernels`, `fetch_matching_utxos` and
`get_tokens_in_circulation`. Do the same in `search_utxos` for
consistency.
- Add `contiguous_runs` and `height_pages` to `grpc/blocks.rs`: the
sorted, deduplicated heights are grouped into maximal contiguous runs
and each run is paged individually, so the blocks fetched are bounded by
`heights.len() <= GET_BLOCKS_MAX_HEIGHTS`. A contiguous request produces
the same page sequence as before; the `heights.contains()` filter is
gone.
- Add `resolve_requested_heights`, which sorts and dedups before
truncating to `GET_BLOCKS_MAX_HEIGHTS` and reports a failed tip lookup
as `Status::internal` instead of leaving `heights` empty. Previously
that path panicked on `expect("unreachable")`; answering it with a
silent empty stream would have hidden a real node health problem from
the client.
- Move the streaming loop into `stream_blocks` so the cancellation
semantics can be regression-tested against a real
`LocalNodeCommsInterface` backed by a mock base node, without standing
up a full node.


<!-- greptile_comment -->

<!-- greptile_summary -->

<h2><a
href="https://app.greptile.com/api/retrigger?id=62068492"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://greptile-static-assets.s3.amazonaws.com/badges/RetriggerDark.svg?v=1"><source
media="(prefers-color-s... (continued)

84417 of 135598 relevant lines covered (62.26%)

259218.71 hits per line

Coverage Regressions

Lines Coverage ∆ File
7
73.03
-1.97% comms/core/src/protocol/messaging/protocol.rs
6
72.56
-0.51% comms/core/src/connectivity/manager.rs
6
92.18
-1.27% comms/dht/src/outbound/broadcast.rs
4
87.2
-0.73% comms/core/src/connection_manager/peer_connection.rs
4
82.34
-0.6% comms/core/src/noise/socket.rs
4
89.57
-2.45% comms/core/src/protocol/messaging/outbound.rs
3
81.25
-4.69% comms/core/src/pipeline/outbound.rs
3
87.98
-0.38% comms/dht/src/actor.rs
3
68.94
-0.47% comms/dht/src/connectivity/mod.rs
1
93.81
-0.19% base_layer/core/src/proof_of_work/monero_rx/merkle_tree.rs
1
78.72
-0.13% base_layer/wallet/src/storage/sqlite_db/wallet.rs
Jobs
ID Job ID Ran Files Coverage
1 34353387950.1 09 Sep 2026 01:42PM UTC 776
62.26
GitHub Action Run
Source Files on build 34353387950
  • Tree
  • List 776
  • Changed 18
  • Source Changed 0
  • Coverage Changed 18
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #34353387950
  • 59009d48 on github
  • Prev Build on development (#34224064744)
  • Next Build on development (#34484789822)
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