'CAPTURED ZERO GAME LINES' blames another module (N89) when the game is merely idle or blocked

Closed
#17 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
74/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
cpp
Domain
observability

Research direction

Start in src/runtime/log/builtin_filter.cpp at BuiltinLogFilter::MaybeEmitHealth and inspect how HookGuard records the CLog hook. Update the health warning so it states that no game lines were captured and does not assert N89 without HookGuard evidence; account for idle, blocked, or missing-login cases. Use the existing health interval behavior to verify the resulting diagnosis.

Written by the indexing model from the issue text.

Description

bug

BuiltinLogFilter (src/runtime/log/builtin_filter.cpp, MaybeEmitHealth) warns CAPTURED ZERO GAME LINES ... the CLog hook is installed but receiving nothing. Another module has almost certainly taken the target (N89) whenever a health interval sees no game lines.

That diagnosis is overconfident. Zero game lines also happens when the game is simply idle or blocked: a server waiting for a login that never arrives (see the bridge issue), or a game blocked on a modal dialog. In both cases the hook is fine and nothing took it. Observed on a real host: the warning fired while the actual problem was a missing login.

Proposed: say what is known ("no game lines in the last N seconds") and list the possible causes (hook taken by another module, game idle/blocked, waiting on a login), or gate the N89 wording on HookGuard evidence. Note the CLog hook is only recorded with HookGuard since b0bf393, so a clobber is now detectable and can be named.

Dominant language
C++
Stars
2
Forks
5
Avg merge
4h 59m
Merged PRs (30d)
916

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from EchoTools/nevr-runtime

All issues in EchoTools/nevr-runtime

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.