Skip to content

memtrace status prints a UI URL when no dashboard listener is running #64

Description

@Regis-RCR

Summary

I observed memtrace status printing UI: http://localhost:3030 while nothing was listening on TCP 3030. The URL comes from the uiPort field of daemon-state.json, and status does not appear to check that a listener is actually up before printing it as available.

Version

memtrace 0.8.63, macOS arm64.

What I observed

  1. In a workspace whose owner record (daemon-state.json) carried uiPort: 3030 while no process was serving the dashboard on :3030 (the process that wrote the record was no longer serving it), I ran memtrace status.

Observed:

Owner PID:      <pid>
UI:             http://localhost:3030
0 nodes - 0 edges - 0 episodes
  1. lsof -nP -iTCP:3030 -sTCP:LISTEN returned nothing, and curl http://localhost:3030 was refused.

status reported the UI URL with no "unavailable" or "degraded" hint, though nothing served it.

Expected

Before advertising the UI URL, I expect status to confirm the listener is reachable (a TCP connect or an HTTP HEAD on uiPort), or to label it as "configured, not verified". Right now the URL is echoed straight from daemon-state.json.

Impact

status is the natural command for answering "is the dashboard up?". Printing a healthy URL that serves nothing is a misleading diagnostic: it points at a dead http://localhost:3030 and hides that the UI is actually down. A restart, or a dashboard process that stopped while an owner record remained, can leave status advertising the dead URL.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions