immich-app / immich

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

Android App crash with large image #13666

Open revilo951 opened 1 month ago

revilo951 commented 1 month ago

The bug

Android app crashes when opening a large (200MP) image.

The OS that Immich Server is running on

Docker, on Ubuntu Server 22.04

Version of Immich Server

v1.118.2

Version of Immich Mobile App

v1.118.0

Platform with the issue

Your docker-compose.yml content

immich-server:
    container_name: immich_server
    image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
    volumes:
      - immich:/usr/src/app/upload
      - /etc/localtime:/etc/localtime:ro
    env_file:
      - .env
    ports:
      - 2283:2283
    depends_on:
      - immich-redis
      - immich-database
    restart: always

  immich-machine-learning:
    container_name: immich_machine_learning
    image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
    volumes:
      - /home/revilo951/docker/immich/model-cache:/cache
    env_file:
      - .env
    restart: always

  immich-redis:
    container_name: immich_redis
    image: redis:6.2-alpine@sha256:c5a607fb6e1bb15d32bbcf14db22787d19e428d59e31a5da67511b49bb0f1ccc
    restart: always

  immich-database:
    container_name: immich_postgres
    image: tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
    env_file:
      - .env
    environment:
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      POSTGRES_USER: ${DB_USERNAME}
      POSTGRES_DB: ${DB_DATABASE_NAME}
      DB_DATA_LOCATION: ${DB_DATA_LOCATION}
    volumes:
      - /home/revilo951/docker/immich/pgdata:/var/lib/postgresql/data
    restart: always

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=./library

# 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=snip

# The values below this line do not need to be changed
###################################################################################
DB_HOSTNAME=immich_postgres
DB_USERNAME=postgres
DB_DATABASE_NAME=immich
DB_DATA_LOCATION=/home/revilo951/docker/immich/pgdata

REDIS_HOSTNAME=immich_redis

Reproduction steps

  1. Open mobile app
  2. open album
  3. open large image (200MP, 25MB)
  4. profit crash

Relevant log output

No relevant logs

Additional information

No response

Yuvi-raj-P commented 4 weeks ago

Could you send more information about the image you’re trying to load? More of its properties, I pre assume the app is chocking either at loading the image from the server or an error is occurring when opening the image viewing page with the widgets. Could you confirm if this error also occurs when loading other images or just problems with loading this specific image? Also is the image taken from a DSLR or something, why is it that big 😅

revilo951 commented 4 weeks ago

It's a 200MP image from a Samsung Galaxy S23 Ultra. I use them for taking photos of server racks, so I can zoom in and read labels etc. Here's a sample (of the lovely carpet at work 😄) that crashes the app for me. I've zipped it so that it doesn't get compressed by the file share service. https://file.io/DRKBVZtRKW1s

aaron-iles commented 2 weeks ago

I'm experiencing something similar. The picture is 19 MiB and 4471x6706 pixels. It loads perfectly fine in the web application. I can view it on disk without issue so it doesn't look like it is corrupt. The android app shows a fuzzy picture with an exclamation point for the thumbnail. I'm happy to send the picture privately if anyone wants to test with it.

EDIT: To be clear, the app does not crash when trying to open it but rather just displays a black image with an image icon with a slash through it.