Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Large HEIC Image causes app to crash on load #12580

Open
1 of 3 tasks
Gofven opened this issue Sep 11, 2024 · 4 comments
Open
1 of 3 tasks

Large HEIC Image causes app to crash on load #12580

Gofven opened this issue Sep 11, 2024 · 4 comments

Comments

@Gofven
Copy link

Gofven commented Sep 11, 2024

The bug

After adding a HEIC image at 200 MP resolution, it causes subsequent freezes & crashes when opening the image

The OS that Immich Server is running on

Arch linux 2024.09.01

Version of Immich Server

1.114.0

Version of Immich Mobile App

1.114.0

Platform with the issue

  • Server
  • Web
  • Mobile

Your docker-compose.yml content

name: immich

services:
  immich-server:
    user: 1000:1000
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    extends:
      file: hwaccel.transcoding.yml
      service: nvenc # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
    volumes:
      # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
      - ${UPLOAD_LOCATION}:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:3001
    depends_on:
      - redis
      - database
    restart: always
    healthcheck:
      disable: false

  immich-machine-learning:
    user: 1000:1000
    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: cuda # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
    volumes:
      - model-cache:/cache
    env_file:
      - .env
    restart: always
    healthcheck:
      disable: false

  redis:
    container_name: immich_redis
    image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e
    healthcheck:
      test: redis-cli ping || exit 1
    restart: always

  database:
    user: 1000:1000
    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:
      # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
      - ${DB_DATA_LOCATION}:/var/lib/postgresql/data
    healthcheck:
      test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || 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

  backup:
    user: 1000:1000
    container_name: immich_db_dumper
    image: prodrigestivill/postgres-backup-local:14
    restart: always
    env_file:
      - .env
    environment:
      POSTGRES_HOST: database
      POSTGRES_CLUSTER: 'TRUE'
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      SCHEDULE: "@daily"
      POSTGRES_EXTRA_OPTS: '--clean --if-exists'
      BACKUP_DIR: /db_dumps
    volumes:
      - ./db_dumps:/db_dumps
    depends_on:
      - database

volumes:
  model-cache:

Your .env content

UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres
TZ=Europe/Stockholm
IMMICH_VERSION=release
DB_PASSWORD=example
DB_USERNAME=example
DB_DATABASE_NAME=example

Reproduction steps

  1. Start the app
  2. Open the large image, an image next to the large image works aswell
  3. Freeze and frequent crashes

Relevant log output

2024-09-11 20:34:50.642106 | INFO     | AssetNotifier        | Load assets: 970ms |
2024-09-11 20:34:50.642054 | INFO     | AlbumService         | Syncing completed. Changes: false |
2024-09-11 20:34:50.600286 | INFO     | AlbumService         | 'Recents' is not selected, keeping only selected albums |
2024-09-11 20:34:50.600237 | INFO     | AlbumService         | Found 11 device albums |
2024-09-11 20:34:50.471471 | INFO     | AlbumService         | Syncing completed. Changes: false |
2024-09-11 20:34:49.807202 | INFO     | AlbumService         | 'Recents' is not selected, keeping only selected albums |
2024-09-11 20:34:49.807070 | INFO     | AlbumService         | Found 11 device albums |
2024-09-11 20:34:49.719474 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 11 available albums |
2024-09-11 20:34:49.700141 | INFO     | BackupNotifier       | Found 11 local albums |
2024-09-11 20:34:49.622051 | INFO     | BackupNotifier       | [_resumeBackup] Start back up |
2024-09-11 20:34:10.832739 | INFO     | AssetNotifier        | Load assets: 3206ms |
2024-09-11 20:34:10.832679 | INFO     | AlbumService         | Syncing completed. Changes: false |
2024-09-11 20:34:10.805543 | INFO     | AlbumService         | 'Recents' is not selected, keeping only selected albums |
2024-09-11 20:34:10.805482 | INFO     | AlbumService         | Found 11 device albums |
2024-09-11 20:34:10.714366 | INFO     | AlbumService         | Syncing completed. Changes: false |
2024-09-11 20:34:07.737604 | INFO     | AlbumService         | 'Recents' is not selected, keeping only selected albums |
2024-09-11 20:34:07.737541 | INFO     | AlbumService         | Found 11 device albums |
2024-09-11 20:34:07.675151 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 11 available albums |
2024-09-11 20:34:07.672099 | INFO     | BackupNotifier       | Found 11 local albums |
2024-09-11 20:34:07.635395 | INFO     | BackupNotifier       | [_resumeBackup] Start back up |
2024-09-11 20:33:58.658005 | INFO     | AssetNotifier        | Load assets: 377ms |
2024-09-11 20:33:58.657947 | INFO     | AlbumService         | Syncing completed. Changes: false |
2024-09-11 20:33:58.595887 | INFO     | AlbumService         | 'Recents' is not selected, keeping only selected albums |
2024-09-11 20:33:58.595835 | INFO     | AlbumService         | Found 11 device albums |
2024-09-11 20:33:58.367132 | INFO     | BackupNotifier       | _getBackupAlbumsInfo: Found 11 available albums |
2024-09-11 20:33:58.340277 | INFO     | BackupNotifier       | Found 11 local albums |
2024-09-11 20:33:58.309798 | INFO     | BackupNotifier       | [_resumeBackup] Start back up |

Additional information

Sample file (zip due to github limitation):
20240911_193836.zip

@alextran1502
Copy link
Contributor

Can you attach a sample file so we can easily test?

@Gofven
Copy link
Author

Gofven commented Sep 11, 2024

Can you attach a sample file so we can easily test?

Naturally c:
I added the sample file to the bottom of the issue!

@alextran1502
Copy link
Contributor

@Gofven thanks 😁

@Gofven
Copy link
Author

Gofven commented Sep 13, 2024

I can additionally note that this issue occurs solely when the advanced option "Prefer remote images" is disabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants