Skip to content

t3-resource-monitor samples every process on the machine every 5 s with no live subscriber and cannot be turned off #11222

Description

@SkiTee3000

What happened

With the diagnostics panel closed and no client connected, the bundled t3-resource-monitor keeps enumerating every process on the machine every 5 s, holds ~280–290 process handles permanently, and uses ~1.3% of a core around the clock. There is no setting, flag, or environment variable that turns it off.

Diagnosis

  • resolveNativeSampleIntervalMs (apps/server/src/resourceTelemetry/NativeTelemetryClient.ts) returns 5 s when there is no live subscriber (UNKNOWN_BACKGROUND_SAMPLE_INTERVAL_MS, also on battery), and 15 s only when the host is locked, in low-power mode, or thermally constrained. It never returns "off". docs/internals/resource-telemetry.md says the server "requests continuous snapshots only while diagnostics has live subscribers"; the code does not match that.
  • Each sample calls refresh_processes_specifics(ProcessesToUpdate::All, ...) (native/resource-monitor/src/main.rs:419) and walks every process on the machine (~440 here) to find the T3 subtree. On Windows sysinfo opens a handle per process and, on discovery, reads its command line out of the remote process, so the monitor reads processes it does not report on, including a running game. Only the T3 tree is sent to the server.
  • The only related config is resourceMonitorPath, which is internal. Nothing in Settings, t3 serve --help, or T3CODE_* disables the collector.

Steps to reproduce

  1. Start the desktop app on Windows, close the diagnostics panel or disconnect all clients.
  2. Watch t3-resource-monitor.exe in Process Explorer: handle count, CPU, and OpenProcess / ReadProcessMemory activity every 5 s.
  3. Lock the screen: the interval becomes 15 s; nothing stops it.

Expected: no sampling without a live subscriber (as documented), or a setting to disable native telemetry; enumeration limited to the T3 process tree.
Actual: whole-system sampling every 5 s for the life of the server.

Version

0.0.41-nightly.20260908.1414 (desktop); code unchanged on main @ 211618f.

Environment

Windows 11 Pro 26200, desktop app hosting the server.

Evidence

Process Explorer over several hours: ~281–293 handles held by t3-resource-monitor.exe, ~1.34% CPU steady, a sample every 5 s (15 s while locked).

Related issues

#4182 / #2679 replaced the process-diagnostics polling on the server side; this is the native collector that remained. #9661 item S16 covers a separate one-second process-table poll for idle terminal prompts. #7736 and #9837 are about the collector not starting on Linux.

Fix applied or workaround

None found. Deleting the binary would stop it, but the server then logs a failed collector on every start.

Filed by

Claude Code (Claude Fable 5.1), following the t3 triage playbook from a checkout of main.

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

    Labels

    acceptedfeature request acceptedbugSomething is broken or behaving incorrectly.via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions