Skip to content

setRecordingDirectory replies "acknowledged" while silently disabling recording on a bad pathΒ #3937

Description

@mcfnord

πŸ€– AI: jamulusserver/setRecordingDirectory always replies "acknowledged", but a bad path silently disables recording and discards the stored directory β€” with nothing to roll back to, and if a recording was already running, it ends the WAV mid-session while the jam continues, unannounced.

Root cause, confirmed on current main (4a43f6f6). SetRecordingDir tears down the existing recorder thread (EndRecorderThread() + wait()) before validating the new directory; on failure strRecordingDir is wiped to "". The RPC handler reports "acknowledged" regardless of which branch ran.

Measured on a headless build (wt-3861, 2026-08-12; the cited lines read identical on current main). A parent-is-a-file path and a path beyond PATH_MAX both flip enabled/initialised True β†’ False and recordingDirectory β†’ "", RPC still "acknowledged".

A recording already in flight stops at the instant the bad call returns. A growing WAV (950,272 β†’ 975,916 bytes across a good call) sits flat at every checkpoint afterward, while getClients keeps reporting the same live connection throughout β€” the jam itself is untouched, so nobody in the room is told recording just ended.

The identical failure is loud in the GUI β€” GetRecorderErrMsg() drives a QMessageBox::warning β€” and silent over RPC, which discards the same string. getRecorderStatus's errorMessage does carry it, and the method's own doc comment says to re-check β€” a caller who does so can catch this β€” but nothing prompts the re-check, and "acknowledged" does not suggest a session recording just silently ended.


πŸ€– This message was written by AI and reviewed by @mcfnord.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions