Is there an existing issue for this?
Current Behavior
After a container restart of an already-configured, previously-working instance (either a plain stop/start cycle, or a docker compose up -d --force-recreate), the calibre desktop application process launches but never actually initializes: it sits essentially idle and the content server (port 8081) never opens.
I confirmed this is a genuine hang, not slow startup, by sampling the container's process list and cgroup CPU stats every 2 seconds through a live occurrence:
- The
/opt/calibre/bin/calibre process starts, then does no measurable work — CPU usage decays from ~0.5% down to ~0.2%, and RSS memory stays completely static — for 50+ seconds straight.
- The desktop GUI/noVNC (Selkies) session on port 8181 comes up fine and is reachable throughout; only the calibre application itself (and by extension its content server) is stuck.
- Restarting the desktop service inside the container (
s6-svc -r /run/service/svc-de) reliably fixes it: the calibre process is replaced by a fresh one (new PID), which immediately does real work (CPU usage jumps to 70-80%), and the content server opens within 2-4 seconds.
This is reliably reproducible: across many container recreate/restart cycles in my own testing, it happened close to 100% of the time on restart, never on the very first boot of a brand-new container.
I also ruled out CPU quota as the (sole) cause: the container was originally running with a 0.5 CPU cgroup limit, which did show real throttling in isolation (cpu.stat showed nr_throttled events and a slow, but eventually successful, ~60s startup with the CPU cap in place). Bumping the limit to 1 or 2 full CPUs eliminated that throttling and made an isolated restart reliably succeed in 4-20s. However, under load from a broader automation script that restarts several containers around the same time, the exact same hang (0% CPU, no progress) still occurs regardless of whether the container has 1 or 2 full CPUs available, which points to a startup race rather than CPU starvation.
Expected Behavior
The calibre process should either start successfully on the first attempt after a container restart, or fail fast/log an error, rather than silently hanging indefinitely with no log output and no CPU activity.
Steps To Reproduce
- Start the container fresh and let it fully initialize (content server on 8081 reachable, GUI on 8181 reachable).
docker stop calibre && docker start calibre (or docker compose up -d --force-recreate calibre).
- Observe: the GUI/noVNC session (8181) comes back, but the content server (8081) never becomes reachable.
docker exec calibre ps aux shows the calibre process present but essentially idle (near-0% CPU) indefinitely.
- Workaround:
docker exec calibre s6-svc -r /run/service/svc-de — the calibre process restarts and the content server becomes reachable within a few seconds.
Environment
- Image: lscr.io/linuxserver/calibre:9.8.0 (linuxserver.io version v9.8.0-ls399, build-date 2026-05-01T04:52:03+00:00)
- Base image: ghcr.io/linuxserver/baseimage-selkies:ubunturesolute
- Runtime: rootless Podman (should reproduce under Docker too, since the hang is inside the container's own process, not runtime-specific)
- Host: Linux, 32 cores / 30GB RAM, not resource constrained
CPU architecture
x86-64
Docker creation
calibre:
image: lscr.io/linuxserver/calibre:9.8.0
environment:
PUID: "<uid>"
PGID: "<gid>"
ports:
- "8080:8080"
- "8181:8181"
- "9091:9091"
volumes:
- ./config:/config
- ./library:/data/media/calibre-library
Container logs
[svc-de] Wayland mode: Waiting for socket at /config/.XDG/wayland-1...
[svc-de] /config/.XDG/wayland-1 found launching de
No further log output appears once the calibre process hangs; it's silent, not erroring.
Is there an existing issue for this?
Current Behavior
After a container restart of an already-configured, previously-working instance (either a plain
stop/startcycle, or adocker compose up -d --force-recreate), thecalibredesktop application process launches but never actually initializes: it sits essentially idle and the content server (port 8081) never opens.I confirmed this is a genuine hang, not slow startup, by sampling the container's process list and cgroup CPU stats every 2 seconds through a live occurrence:
/opt/calibre/bin/calibreprocess starts, then does no measurable work — CPU usage decays from ~0.5% down to ~0.2%, and RSS memory stays completely static — for 50+ seconds straight.s6-svc -r /run/service/svc-de) reliably fixes it: the calibre process is replaced by a fresh one (new PID), which immediately does real work (CPU usage jumps to 70-80%), and the content server opens within 2-4 seconds.This is reliably reproducible: across many container recreate/restart cycles in my own testing, it happened close to 100% of the time on restart, never on the very first boot of a brand-new container.
I also ruled out CPU quota as the (sole) cause: the container was originally running with a 0.5 CPU cgroup limit, which did show real throttling in isolation (
cpu.statshowednr_throttledevents and a slow, but eventually successful, ~60s startup with the CPU cap in place). Bumping the limit to 1 or 2 full CPUs eliminated that throttling and made an isolated restart reliably succeed in 4-20s. However, under load from a broader automation script that restarts several containers around the same time, the exact same hang (0% CPU, no progress) still occurs regardless of whether the container has 1 or 2 full CPUs available, which points to a startup race rather than CPU starvation.Expected Behavior
The calibre process should either start successfully on the first attempt after a container restart, or fail fast/log an error, rather than silently hanging indefinitely with no log output and no CPU activity.
Steps To Reproduce
docker stop calibre && docker start calibre(ordocker compose up -d --force-recreate calibre).docker exec calibre ps auxshows thecalibreprocess present but essentially idle (near-0% CPU) indefinitely.docker exec calibre s6-svc -r /run/service/svc-de— the calibre process restarts and the content server becomes reachable within a few seconds.Environment
CPU architecture
x86-64
Docker creation
Container logs
No further log output appears once the calibre process hangs; it's silent, not erroring.