diff --git a/apps/immich/docker-compose.yml b/apps/immich/docker-compose.yml index c39b0f6..bc12a16 100644 --- a/apps/immich/docker-compose.yml +++ b/apps/immich/docker-compose.yml @@ -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: