immich-ml: --no-control-socket gegen gunicorn-25.1.0 Worker-Hang
Ersetzt den wirkungslosen LD_PRELOAD-Versuch durch den dokumentierten Root-Cause-Fix. immich_machine_learning blieb dauerhaft unhealthy: der gunicorn-Worker haengt nach "Control socket listening" in futex und erreicht nie "Application startup complete" (/ping -> Timeout). Ursache ist der in gunicorn 25.1.0 neu eingefuehrte, fehlerhafte Control-Socket (bestaetigt: gunicorn#3510, immich#27228, Regression seit Immich 2.6). GUNICORN_CMD_ARGS=--no-control-socket deaktiviert das Feature. immich-ml startet gunicorn als Subprozess (python -m gunicorn), der GUNICORN_CMD_ARGS aus der Env liest und anhaengt; das Flag --no-control-socket (config: control_socket_disable) ist in diesem gunicorn-Build als gueltig verifiziert. Reversibel; bei gefixter Immich-Release wieder entfernen. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -35,14 +35,16 @@ services:
|
||||
image: ghcr.io/immich-app/immich-machine-learning:release@sha256:a2501141440f10516d329fdfba2c68082e19eb9ba6016c061ac80d23beadf7f3
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
# Workaround fuer gunicorn-25.1.0-Fork-Deadlock (Worker haengt in futex
|
||||
# nach "Control socket listening", erreicht nie "Application startup
|
||||
# complete"). mimalloc per LD_PRELOAD deaktiviert -> umgeht den Lock im
|
||||
# geforkten Worker. Reine Allocator-Optimierung, funktional unkritisch.
|
||||
# Upstream-Regression seit Immich 2.6 (immich#27228, #22317), kein
|
||||
# offizieller Fix. Re-check: bei Immich-/gunicorn-Update entfernen und
|
||||
# pruefen, ob der Worker wieder sauber bootet.
|
||||
LD_PRELOAD: ""
|
||||
# Workaround fuer gunicorn-25.1.0-Control-Socket-Bug: der Worker haengt
|
||||
# nach "Control socket listening at /usr/src/gunicorn.ctl" und erreicht
|
||||
# nie "Application startup complete" -> Container bleibt dauerhaft
|
||||
# unhealthy, ML (Gesichtserkennung/CLIP/Smart-Search) ist tot.
|
||||
# --no-control-socket deaktiviert das fehlerhafte Feature. immich-ml
|
||||
# startet gunicorn als Subprozess, der GUNICORN_CMD_ARGS aus der Env
|
||||
# liest und anhaengt. Bestaetigte Upstream-Regression seit Immich 2.6
|
||||
# (immich#27228, gunicorn#3510). Re-check: bei Immich-Update, das
|
||||
# gunicorn auf >25.1.0/<25.1.0 mit Fix bringt, wieder entfernen.
|
||||
GUNICORN_CMD_ARGS: "--no-control-socket"
|
||||
volumes:
|
||||
- model-cache:/cache
|
||||
networks:
|
||||
|
||||
Reference in New Issue
Block a user