immich-app / immich

High performance self-hosted photo and video management solution.
https://immich.app
GNU Affero General Public License v3.0
51.95k stars 2.75k forks source link

Deleted files in external library is not removed after scan #12979

Closed eriklysoe closed 1 month ago

eriklysoe commented 1 month ago

The bug

Library scan under jobs or external libraries menu does not remove deleted files.

The OS that Immich Server is running on

Docker

Version of Immich Server

v1.116.0 and v1.115

Version of Immich Mobile App

v1.115.0 build.159

Platform with the issue

Your docker-compose.yml content

# This file is auto-generated by openmediavault (https://www.openmediavault.org)
# WARNING: Do not edit this file, your changes will get lost.

# Immich
# Immich bilde
#
# WARNING: Make sure to use the docker-compose.yml of the current release:
#
# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
#
# The compose file on main may not be compatible with the latest release.
#

name: immich
services:
  immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    # extends:
    #   file: hwaccel.transcoding.yml
    #   service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
      - ${EXTERNAL_PATH}:/usr/src/app/external
      - ${EXTERNAL_PATH2}:/usr/src/app/external2
    env_file:
      - .env
    ports:
      - 2285:3001
    depends_on:
      - redis
      - database
    restart: always
  immich-machine-learning:
    container_name: immich_machine_learning
    # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
    # Example tag: ${IMMICH_VERSION:-release}-cuda
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
    #   file: hwaccel.ml.yml
    #   service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - /srv/dev-disk-by-uuid-f4d0d2c4-6e93-446e-917d-73f0c583670d/docker/immich/model-cache:/cache
    env_file:
      - .env
    restart: always
  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:d6c2911ac51b289db208767581a5d154544f2b2fe4914ea5056443f62dc6e900
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always
  database:
    container_name: immich_postgres
    image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      POSTGRES_INITDB_ARGS: --data-checksums
    volumes:
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' || exit 1; Chksum="$$(psql
        --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only
        --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM
        pg_stat_database')"; echo "checksum failure count is $$Chksum"; [
        "$$Chksum" = '0' ] || exit 1
      interval: 5m
      start_interval: 30s
      start_period: 5m
    command:
      - postgres
      - -c
      - shared_preload_libraries=vectors.so
      - -c
      - search_path="$$user", public, vectors
      - -c
      - logging_collector=on
      - -c
      - max_wal_size=2GB
      - -c
      - shared_buffers=512MB
      - -c
      - wal_compression=on
    restart: always
networks: {}

Your .env content

# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables

# The location where your uploaded files are stored
UPLOAD_LOCATION=/srv/dev-disk-by-uuid-f4d0d2c4-6e93-446e-917d-73f0c583670d/docker/immich/library
# The location where your database files are stored
DB_DATA_LOCATION=/srv/dev-disk-by-uuid-f4d0d2c4-6e93-446e-917d-73f0c583670d/docker/immich/postgres

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
TZ=Europe/Oslo

# The Immich version to use. You can pin this to a specific version like "v1.71.0"
IMMICH_VERSION=release

# Connection secret for postgres. You should change it to a random password
DB_PASSWORD=xxxxxxxxxxxx

# The values below this line do not need to be changed
###################################################################################
DB_USERNAME=postgres
DB_DATABASE_NAME=immich

# External paths
EXTERNAL_PATH=/srv/dev-disk-by-uuid-f4d0d2c4-6e93-446e-917d-73f0c583670d/Bilder
EXTERNAL_PATH2=/srv/dev-disk-by-uuid-f4d0d2c4-6e93-446e-917d-73f0c583670d/Hestevideo

Reproduction steps

  1. Library scan, all
  2. External library, scan
  3. Generate tumbnails, all
  4. No files are deleted

Relevant log output

No response

Additional information

No response

hulmgulm commented 1 month ago

With Immich version 1.116.0, the "Remove offline files" context menu entry for external libraries vanished. What happened to it? It looks like a scan does not remove offline files for me.