setRecordingDirectory replies "acknowledged" while silently disabling recording on a bad path
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- cpp
- Domínio
- api, audio-video-rtc
Direção de pesquisa
Comece com SetRecordingDir em src/recorder/jamcontroller.cpp e com o handler setRecordingDirectory em src/serverrpc.cpp; compare o caminho de falha deles com GetRecorderErrMsg() em src/serverdlg.cpp e getRecorderStatus. Reproduza um caminho inválido e uma gravação em andamento e, em seguida, estabeleça a resposta de falha RPC esperada e o comportamento do estado do gravador antes de identificar a cobertura para ambos os casos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
🤖 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.
- Linguagem predominante
- C
- Estrelas
- 1.1k
- Forks
- 250
- Merge médio
- 9d 18h
- PRs com merge (30d)
- 4
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de jamulussoftware/jamulus
-
Move translation checker (and potentially other runners) to ARM runnerTalvez já em andamento @ann0see assumiu há 41 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
jamulussoftware/jamulus#3953 · 2 comentários ·
-
AI
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
jamulussoftware/jamulus#3846 ·
-
Qt6 moving towards cmakeAbertafeature request
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
jamulussoftware/jamulus#3964 · 3 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 65/100
jamulussoftware/jamulus#3961 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 76/100
jamulussoftware/jamulus#3958 ·
Todas as issues de jamulussoftware/jamulus
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
ChefKissInc/Inferno#319 ·
-
llvm-tools
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 72/100
llvm/llvm-project#235522 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
priority:medium type:chore
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 84/100
crazy-goat/php-fpm-ng#1041 ·
Mantenedores costumam responder em até 1 dia