Skip to content

refactor(driver): route diagnostics through tracing; trim README#13

Merged
houseme merged 1 commit into
mainfrom
fix/uring-log-facade
Jul 11, 2026
Merged

refactor(driver): route diagnostics through tracing; trim README#13
houseme merged 1 commit into
mainfrom
fix/uring-log-facade

Conversation

@houseme

@houseme houseme commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

Observability follow-up to the 0.2.0 audit hardening (rustfs/backlog#1160).

Changes

  • tracing (was eprintln!): the driver's runtime diagnostics (submit-error, CQ-overflow, bounded-drain, shutdown-timeout) now emit tracing::warn! with structured fields (error, in_flight, overflow, consecutive_errors). This unifies with the RustFS tracing pipeline — ecstore already emits structured tracing for the io_uring latch/fallback — so the host controls level/routing and the events are filterable, no logtracing bridge needed. The panic-abort barrier keeps its direct stderr write, since a subscriber may not flush before abort().
  • README: trimmed to a lean front page — the per-invariant rationale lives inline in the module/function docs, no longer duplicated in prose.

tracing is pulled lean: default-features = false, features = ["std"] (no attributes proc-macro).

Testing

run-docker.sh both legs pass: leg 1 (seccomp-blocked) degrades gracefully with every test skipping; leg 2 (seccomp=unconfined) runs real io_uring with 16 cancel-safety + 5 fault-injection tests green.

🤖 Generated with Claude Code

Production observability follow-up to the 0.2.0 audit hardening:

- Route the driver's runtime diagnostics (submit-error, CQ-overflow,
  bounded-drain, shutdown-timeout) through `tracing` with structured fields
  (error, in_flight, overflow, consecutive_errors) instead of `eprintln!`, so
  they unify with the RustFS tracing pipeline (ecstore already emits structured
  tracing) — the host controls level/routing and the events are filterable. The
  panic-abort barrier keeps its direct `stderr` write, since a subscriber may
  not flush before `abort()`.
- Trim the README to a lean front page: the per-invariant rationale lives inline
  in the module/function docs, no longer duplicated in prose.

Verified: run-docker.sh both legs pass (leg 1 degrades gracefully, leg 2 runs
real io_uring) with 16 cancel-safety + 5 fault-injection tests green.

Co-Authored-By: heihutu <heihutu@gmail.com>
@houseme houseme force-pushed the fix/uring-log-facade branch from e5b9e7b to 4620bbf Compare July 11, 2026 11:03
@houseme houseme changed the title refactor(driver): log facade for diagnostics; trim README refactor(driver): route diagnostics through tracing; trim README Jul 11, 2026
@houseme houseme merged commit bcbc9d5 into main Jul 11, 2026
3 checks passed
@houseme houseme deleted the fix/uring-log-facade branch July 11, 2026 11:11
houseme added a commit that referenced this pull request Jul 11, 2026
Cut 0.2.1 from the single unreleased commit since 0.2.0 (#13): the driver's
runtime diagnostics now route through `tracing` with structured fields instead
of `eprintln!`, and the README was rewritten from the current public API. No
public API change; the read path and the cancel-safety ownership model are
untouched, so this is a patch release.

- bump the crate version 0.2.0 -> 0.2.1
- promote the CHANGELOG [Unreleased] section to [0.2.1] - 2026-07-11, attach the
  #13 reference to both entries, keep an empty [Unreleased], and add the
  0.2.1 compare links
- update the README install snippet to 0.2.1

Co-authored-by: heihutu <heihutu@gmail.com>
houseme added a commit to rustfs/rustfs that referenced this pull request Jul 11, 2026
chore(deps): bump rustfs-uring to 0.2.1 from crates.io

rustfs-uring 0.2.1 routes the driver's runtime diagnostics through `tracing`
with structured fields instead of `eprintln!` (rustfs/uring#13). No public API
change — UringDriver::probe_and_start_sharded, read_at, and read_at_direct keep
their signatures — and the read path / cancel-safety ownership model are
untouched, so this is a drop-in patch bump of the version requirement plus the
lockfile entry.

0.2.1 adds a `tracing` dependency; it is recorded in the rustfs-uring lock
entry. tracing is already in the workspace graph, so nothing new is pulled in.

The Cargo.lock change is scoped to the rustfs-uring package only; unrelated
lockfile drift is left for its own change.

Co-authored-by: heihutu <heihutu@gmail.com>
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.

1 participant