Skip to content

packages/rest's negative-path tests dump full stacks — 304 [sql-driver] DATABASE_ERROR lines carrying 665 at file://… frames, and no log level can reach them #15426

Description

@os-zhuang

Split out of #13517 by the triage seat (R+145). It is the one part of that card's remainder that its route could never reach.

What was measured

Across two independent readings of packages/rest's suite, its console-carried volume is not registry chatter: 304 [sql-driver] DATABASE_ERROR lines carrying 665 at file://… stack frames, produced by tests that are deliberately driving failure paths.

OS_REGISTRY_LOG cannot touch it, and neither can any other level knob: these are expected errors being reported at full verbosity because nothing distinguishes an expected failure from an unexpected one at the point of logging.

⚠️ packages/rest is also the one suite that drifted against #13517's original figures — +36.6% (2,902 → 3,963) while the other four landed within ~5% — so this share is growing, not static.

The judgement, named

Should a test that expects an error dump the error's full stack?

  • Keep — a stack is what you want the day the failure is not the expected one, and suppressing it trades debuggability for quiet.
  • Suppress at the seam — the negative-path tests know they expect the failure, so they could assert it without the driver reporting it as an incident.
  • Something narrower — e.g. keep the message, drop the frames, since it is the 665 frames rather than the 304 lines that dominate.

⛔ Why this is not in the decision box

Test output verbosity inside one package is lane discretion, not product semantics and not a published contract. Nothing here changes what the platform accepts, refuses, or promises. ⇒ The domain:cli seat picks a direction as part of doing it, and escalates only if the chosen shape turns out to change what packages/rest reports to a real caller rather than to a test runner.

⚠️ Establish first, before choosing: where the line is actually emitted. If it comes from the driver on every refused query, then "suppress in tests" means a seam the driver does not have today, and this becomes a larger card than it looks. If the tests themselves route it, it is local.

priority:p3

Zero correctness impact — this is CI log volume, the same axis #13517 carried throughout. Worth doing because it is now one of the largest remaining contributors after that card removed ~78% of the repo-wide total, and because the share is drifting upward.

Refs: #13517 (origin) · #13986 (the structured-logger half, a different population) · the per-suite figures in PR #13985 and PR #14016.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions