bpatrik / pigallery2

A fast directory-first photo gallery website, with rich UI, optimized for running on low resource servers (especially on raspberry pi)
http://bpatrik.github.io/pigallery2/
MIT License
1.76k stars 202 forks source link

PNGs seem to be broken for me #412

Closed jfml closed 1 year ago

jfml commented 2 years ago

Hi, I'm loving PiGallery 2, but for some reason it seems on my install it can't read PNGs (different browser makes no difference, tested with FF and Chromium, the PNGs in question display fine when dropped directly into the browser or opened with other software):

grafik

I'm running on Docker (x86) bpatrik/pigallery2:latest-alpine-tag, the log says:

[Error: Input file contains unsupported image format]
1/18/2022, 2:50:46 PM[ERROR][FileJob] Error during processing file:/app/data/images/[path]/[filename].png, Error: Input file contains unsupported image format

or sometimes:

1/18/2022, 5:22:17 PM[WARN_] Handled error:

ErrorDTO {
  code: 8,
  message: 'Error during generating thumbnail: /app/data/images/[path]/[filename].png',
  details: 'Error: Input file contains unsupported image format',
  request: { method: '', url: '' },
  detailsStr: 'Error: Input file contains unsupported image format'
}

Any idea what might be the issue, what I could do to further troubleshoot this? Thanks!

jfml commented 2 years ago

Mh, I have to different folders pointing to subfolders in /images, like this:

- "/external/path1/:/app/data/images/folder1:ro"
- "/external/path2/:/app/data/images/folder2:ro"

Could that be a problem?

bpatrik commented 2 years ago

Hi,

I'm using sharp to create thumbnails from the photos. You can try sending me an original png that produces this error, but my guess is that the sharp library does not support the png that you try to show.

jfml commented 2 years ago

Thanks for the answer! I just saw now that a few PNGs are rendering fine, that's very interesting:

Here's two that don't work:

Vicki Tsai - tumblr_o5506zM9qj1roz6rbo1_500

Screenshot_20200227-134207

And one that works:

Screenshot_20200226-190336

So there's probably nothing we can do about this? That's so frustrating +__+

bpatrik commented 2 years ago

oddly enough those photos do work for me. (although I was testing it in my dev setup on windows, but that should run the same sharp library)

You did not convert the png files that you sent, did you? (maybe github did?)

jfml commented 2 years ago

Hi, that's so weird, that it works for you. I redownloaded the PNGs I posted (after some confusion because Github makes preview JPGs for displaying them +__+) and put them in an extra folder, but they still don't work for me (except for the last, working example). I don't suppose there's any way to trouble-shoot this on my end (I don't think I know enough about programming to do tests with that sharp library)?

bpatrik commented 2 years ago

I don't really see an easy fox to this problem. (Especially as I could not reproduce)

The sharp that I'm using is quite old and there is an open issue about upgrading sharp to the latest version: https://github.com/bpatrik/pigallery2/issues/295

Unfortunately it is not trivial, as I would like to keep supporting arm based Docker images.

May I recommend you to reencode your photos? Or encode them to jpg?

keppo070 commented 2 years ago

I have the same issue but only on bpatrik/pigallery2:1.9.0-alpine image

When I switch back to bpatrik/pigallery2:1.8.2-alpine or to bpatrik/pigallery2:1.8.5-alpine the PNG files are working correctly

The PNG issue is NOT on bpatrik/pigallery2:latest-debian-buster image

Nightly is not working on my host otherwise I would try that one.

The host is No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal

bpatrik commented 2 years ago

Hi,

This looks odd. I don't think that the thumbnail generation part changed during those versions.

What is the issue with nightly? Can you try the latest-debian-buster tag? There was a sharp update lately that should I think help here too.

keppo070 commented 2 years ago

Dont know what the issue is with nightly-debian-buster It keeps restarting. https://github.com/bpatrik/pigallery2/issues/416#issuecomment-1033664772

[Typeconfig] Loading config. Path: /app/data/config/config.json
[Typeconfig] Loading defaults from file: undefined
[Typeconfig] Loading defaults, def prefix: default
[Typeconfig] no default cli found among these: {
        "expose": {
                "gc": true
        },
        "config": {
                "path": "/app/data/config/config.json"
        }
}
[Typeconfig] from env: {
        "Server": {
                "Database": {
                        "dbFolder": "/app/data/db"
                },
                "Media": {
                        "folder": "/app/data/images",
                        "tempFolder": "/app/data/tmp"
                }
        }
}
[Typeconfig] Processing cli and ENV inputs: {
        "expose": {
                "gc": true
        },
        "config": {
                "path": "/app/data/config/config.json"
        }
}
[Typeconfig] Processing cli and ENV inputs: {
        "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
        "HOSTNAME": "81dd6f941d24",
        "NODE_ENV": "debug",
        "NODE_VERSION": "14.19.0",
        "YARN_VERSION": "1.22.17",
        "PI_DOCKER": true,
        "HOME": "/root"
}
NODE_ENV environmental variable is set to debug, forcing all logs to print
2/26/2022, 4:31:40 PM[INFO_][server] Running in DEBUG mode, set env variable NODE_ENV=production to disable
2/26/2022, 4:31:40 PM[INFO_][server] running diagnostics...

latest-debian-buster has the strange sorting issue. but PNG are working with this version

bpatrik commented 2 years ago

There is no error message here. From this I'm not sure what is the issue.

keppo070 commented 2 years ago

there are no more messages. It restarts and displaying the same info. Is there anything more I can do?

martadinata666 commented 2 years ago

on v1.9.3 also failed to start? let see if you can start it manually.

version: '3'
services:
  pigallery2:
    image: bpatrik/pigallery2:latest
    command: bash
    stdin_open: true
    tty: true
    container_name: pigallery2
    environment:
      - NODE_ENV=debug
    volumes:
      - "./pigallery2/config:/app/data/config" # CHANGE ME
      - "db-data:/app/data/db"
      - "./pigallery2/images:/app/data/images:ro" # CHANGE ME, ':ro' mean read-only
      - "./pigallery2/tmp:/app/data/tmp" # CHANGE ME
    ports:
      - 80:80
    restart: always

volumes:
  db-data:

The go into container console, and run node ./src/backend/index --expose-gc --config-path=/app/data/config/config.json

bpatrik commented 2 years ago

You can try removing the restart: Always from the compose file. So it won't keep restarting when the app dies.

-- Sorry for being brief, sent from my phone.

Dedy Martadinata S @.***> ezt írta (időpont: 2022. márc. 13., V 13:09):

on v1.9.3 also failed to start? let see if you can start it manually.

version: '3' services: pigallery2: image: bpatrik/pigallery2:latest command: bash stdin_open: true tty: true container_name: pigallery2 environment:

  • NODE_ENV=debug volumes:
  • "./pigallery2/config:/app/data/config" # CHANGE ME
  • "db-data:/app/data/db"
  • "./pigallery2/images:/app/data/images:ro" # CHANGE ME, ':ro' mean read-only
  • "./pigallery2/tmp:/app/data/tmp" # CHANGE ME ports:
  • 80:80 restart: always

volumes: db-data:

The go into container console, and run node ./src/backend/index --expose-gc --config-path=/app/data/config/config.json

— Reply to this email directly, view it on GitHub https://github.com/bpatrik/pigallery2/issues/412#issuecomment-1066087988, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABZKA5W36VAA5YW46OZVQQTU7XLH5ANCNFSM5MHYZSNQ . You are receiving this because you commented.Message ID: @.***>

keppo070 commented 2 years ago

I keep getting Restarting (132) 30 seconds ago with nightly-debian-buster so no manual starting :-( with the provided docker-compose from https://github.com/bpatrik/pigallery2/issues/412#issuecomment-1066087988

Also with other images: latest nightly-debian-bullseye nightly-debian-buster nightly-alpine latest-debian-bullseye 1.9.3-debian-bullseye 1.9.3 latest-alpine 1.9.3-alpine

these two work. I only changed the images in my docker-compose file 1.9.0-alpine latest-debian-buster

I'm using

Distributor ID: Ubuntu
Description:    Ubuntu 20.04.4 LTS
Release:        20.04
Codename:       focal
martadinata666 commented 2 years ago

thats weird, the modified compose, should stay up as it only run bash, and the system ubuntu 20.04 is fine. it is arm64 ubuntu? But we know it error 132

keppo070 commented 2 years ago

nop, just a old intel

Linux PK7L001 5.4.0-104-generic #118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

I edited a little. Just naming. To be sure. I added .yml

version: '3'
services:
  pigallery2test:
    image: bpatrik/pigallery2:latest
    command: bash
    stdin_open: true
    tty: true
    container_name: pigallery2test
    environment:
      - NODE_ENV=debug
    volumes:
      - "./pigallery2/config:/app/data/config" # CHANGE ME
      - "db-datatest:/app/data/db"
      - "./pigallery2/images:/app/data/images:ro" # CHANGE ME, ':ro' mean read-only
      - "./pigallery2/tmp:/app/data/tmp" # CHANGE ME
    ports:
      - 8881:80
    restart: always

volumes:
  db-datatest:
bpatrik commented 2 years ago

I would try the following:

The usually only does on start if there is some fundamental issue

martadinata666 commented 2 years ago

do this

cpuinfo | grep --color "sse"

if it missing sse4_2, that gonna be the issue

keppo070 commented 2 years ago

cpu-info | grep --color "sse" nothing

cpu-info


        0: Intel Core 2 Duo E6750
Cores:
        0: 1 processor (0), Intel Conroe
        1: 1 processor (1), Intel Conroe
Logical processors:
        0: APIC ID 0x00000000
        1: APIC ID 0x00000001```

I emptied the whole folder and deleted everything. Got a 132.        
martadinata666 commented 2 years ago

cpu-info | grep --color "sse" nothing

cpu-info


        0: Intel Core 2 Duo E6750
Cores:
        0: 1 processor (0), Intel Conroe
        1: 1 processor (1), Intel Conroe
Logical processors:
        0: APIC ID 0x00000000
        1: APIC ID 0x00000001```

I emptied the whole folder and deleted everything. Got a 132.        

no dash, cpuinfo

keppo070 commented 2 years ago

Command 'cpuinfo' not found, did you mean:

command 'cpu-info' from deb cpuinfo (0.0~git20190201.d5e37ad-2) command 'cpcinfo' from deb python3-zhmcclient (0.22.0-0ubuntu1)

Try: sudo apt install

by maybe this lscpu | grep --color "sse"

image

no sse4_2

martadinata666 commented 2 years ago

Command 'cpuinfo' not found, did you mean:

command 'cpu-info' from deb cpuinfo (0.0~git20190201.d5e37ad-2) command 'cpcinfo' from deb python3-zhmcclient (0.22.0-0ubuntu1)

Try: sudo apt install

by maybe this lscpu | grep --color "sse"

image

no sse4_2

dunno, in my system cpuinfo exists, but yeah that also will do. without sse4_2 likely stuck in older version like stretch / alpine 3.12 base image.

@bpatrik 1.9.3 don't have stretch? i used to suggest to drop it, but this one case may bring back stretch build 🤔

keppo070 commented 2 years ago

It is such an old intel... I will understand when support stops. Happy to know what my issues is. Thanks

martadinata666 commented 2 years ago

It is such an old intel... I will understand when support stops. Happy to know what my issues is. Thanks

this also happen with mongodb, in my case need avx for mongo 5+. and my rpi dont have that. the error also the 132.

bpatrik commented 2 years ago

ahh. yes, I had to drop stretch when I upgraded sharp https://github.com/bpatrik/pigallery2/issues/295#issuecomment-1032569180.

Unfortunately, the app so many moving pieces, I had to cut somewhere and stretch will end its LTS support soon. :/

I'm not that familiar with the differences of the individual architects. Will docker help here with some virtualization?

martadinata666 commented 2 years ago

ahh. yes, I had to drop stretch when I upgraded sharp #295 (comment).

Unfortunately, the app so many moving pieces, I had to cut somewhere and stretch will end its LTS support soon. :/

I'm not that familiar with the differences of the individual architects. Will docker help here with some virtualization?

Sadly it dont, it about the library itself need that feature to work, as old one doesn't need the new one will do. My suggestion is install and build natively like frontpage tutorial, or rebuild docker image rebase to stretch.

jfml commented 2 years ago

I just update my latest-alpine image now and I'm extremly happy to say that it seems to be working for me! This is amazing!

(Not sure if I should close the issue as I did not really understand what was going on between @bpatrik and @martadinata666 but feel free to close it.)

bpatrik commented 1 year ago

closing this due to inactivity