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

nbari / mariadb_exporter / 35066479748
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: develop
DEFAULT BRANCH: main
Ran 16 Sep 2026 07:07AM UTC
Jobs 1
Files 78
Run time 1min
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

16 Sep 2026 07:01AM UTC coverage: 88.276% (+0.04%) from 88.237%
35066479748

push

github

nbari
Harden scrape-safety guards and fix audit findings for 0.9.0

A deep review of the unreleased 0.9.0 changeset found the production
code sound but the new structural test guards bypassable, plus a few
residual correctness gaps. Every fix carries a mutation-verified
regression test (seen red on the unfixed code, green after).

Guards (tests/collector_safety.rs):
- Replace substring scanning with a masking lexer (line/block comments,
  raw/byte/C strings, char-vs-lifetime, escape-aware, offset-preserving)
  so prose and literal contents can neither impersonate pinned code
  shapes nor corrupt delimiter depth.
- Offload-error guard: statement-bounded .await? detection plus deferred
  propagation via bound results (let r = offload(..).await; ...; r?),
  while a later unrelated .await? no longer false-positives.
- OS-read call graph now walks the whole crate (not just src/collectors),
  matches callees by word boundary, and learns plain-import leaf names —
  catching out-of-tree helpers and fn-value passing. Markers extended
  with procfs/std::process.
- Span guard pins the actual let scrape = scrape.instrument(...) rebinding
  before tokio::spawn; panic-profile guard requires [profile.release] to
  exist and also walks .cargo/config.toml for -Cpanic=abort rustflags.

Code fixes:
- scraper: epoch check, epoch update and outcome-gauge publication now
  happen under one lock (publish_outcome_if_current), so a stale abort
  cannot overwrite a newer scrape's success in any interleaving.
  Counters and durations stay unconditional.
- system umbrella: sub-collector work is constructed inside a per-sub
  catch_unwind, so even a synchronous panic in an overridden collect()
  degrades to warn-and-continue instead of failing the system collector.
- system.process: group membership is an exact name match (mariadbd,
  mysqld, mariadbd-safe, mysqld_safe); mysqldump and mysqld_exporter no
  longer leak into group="mariadb".

Tests:
- End-to-end 503 through the real serve... (continued)

771 of 884 new or added lines in 9 files covered. (87.22%)

4 existing lines in 3 files now uncovered.

10285 of 11651 relevant lines covered (88.28%)

7098.72 hits per line

Uncovered Changes

Lines Coverage ∆ File
75
78.48
5.75% tests/collector_safety.rs
15
92.33
-1.69% tests/exporter.rs
11
87.32
-4.44% src/collectors/system/mod.rs
6
95.32
0.03% src/collectors/exporter/scraper.rs
6
70.45
-0.56% tests/common/mod.rs

Coverage Regressions

Lines Coverage ∆ File
2
53.38
-1.5% tests/metrics_smoke.rs
1
78.48
5.75% tests/collector_safety.rs
1
83.92
-0.15% tests/testcontainers.rs
Jobs
ID Job ID Ran Files Coverage
1 35066479748.1 16 Sep 2026 07:07AM UTC 78
88.28
GitHub Action Run
Source Files on build 35066479748
  • Tree
  • List 78
  • Changed 11
  • Source Changed 8
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #35066479748
  • 6e687c4f on github
  • Prev Build on sandbox (#35051492575)
  • Next Build on sandbox (#35083603567)
  • 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