Skip to content

DELETE /connection reports "Disconnect timed out" with connected:true, then POST /connection hangs forever #43

Description

@takusaito-ctrl

Environment: ILCE-7M5 · USB · Camera Remote SDK V2.02.00 · linux-arm64 (Raspberry Pi, kernel 6.8.0-1051-raspi) · server 3.0.0

Summary

After a stuck RemoteTransfer download (#40), the connection lifecycle breaks in a way that is unrecoverable in-process. DELETE /connection reports failure while actually having disconnected the camera, and the subsequent POST /connection never returns.

Reproduction

  1. Connect in remote-transfer.
  2. Trigger the stuck download from RemoteTransfer full-size download silently never completes and latches the whole subsystem into 0x8D03 #40.
  3. DELETE /api/cameras/{id}/connection:
HTTP 400 {"message":"Disconnect timed out", "camera":{"connected":true, ...}}

The status is wrong twice over — the camera is disconnected at this point, yet the response reports connected:true and a 400.

  1. POST /api/cameras/{id}/connection — hangs forever. Last log line is:
[SSE] Wired event callback for camera: CFCA6014E092
  1. Every camera-touching endpoint now blocks indefinitely. GET /api/server/logs still answers 200 because it takes no camera lock — which is a useful signal that the process is alive but the camera lock is held. SIGTERM does not kill it.

Isolation

DELETE /connection is clean in both remote and remote-transfer when no download was attempted. The stuck download is the trigger, not the connection mode. Verified on a fresh process twice.

Expected

  • The reported connected state must reflect reality; a disconnect that actually disconnected should not report 400 + connected:true.
  • A failed disconnect must leave the controller in a state where a subsequent connect can either succeed or fail fast — never block forever.
  • Consider a bounded timeout on the connect path so a held camera lock surfaces as 503/409 instead of an infinite hang.

Related

Root cause is #40. The shutdown-side consequence is #41.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglinux

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions