Skip to content

[BUG] Issues with a large database since ls290 #99

@Dinth

Description

@Dinth

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

Hiya. ls291 included opcache module (as recommended by Grocy's author), but also rebased the image to a new Alpine. It was actually me who requested adding opcache back then to improve slightly sluggish performance. Unfortunately, none of the versions since ls290 ever worked for me. On few occasions i got a page load after long wait, but 99% im just getting 504 timeouts.

Looking at the logs, it looks like php-fpm is crashing on almost every request, but i dont see why, even with log_level set to debug in fpm configuration:

[01-Sep-2025 19:15:57] NOTICE: fpm is running, pid 226
[01-Sep-2025 19:15:57] NOTICE: ready to handle connections
[01-Sep-2025 19:17:31] NOTICE: Terminating ...
[01-Sep-2025 19:17:31] NOTICE: exiting, bye-bye!
[01-Sep-2025 19:17:40] NOTICE: fpm is running, pid 232
[01-Sep-2025 19:17:40] NOTICE: ready to handle connections
[01-Sep-2025 19:25:43] NOTICE: Terminating ...
[01-Sep-2025 19:25:43] NOTICE: exiting, bye-bye!
[01-Sep-2025 19:25:49] NOTICE: fpm is running, pid 223
[01-Sep-2025 19:25:49] NOTICE: ready to handle connections

Nginx log shows:

2025/09/01 19:38:24 [error] 268#268: *99 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /api/system/db-changed-time HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk", referrer: "https://grocery.wickhay.uk/stockoverview"
2025/09/01 19:40:54 [error] 265#265: *58 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /stockoverview HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk"
2025/09/01 19:41:14 [error] 273#273: *123 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /api/system/db-changed-time HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk", referrer: "https://grocery.wickhay.uk/stockoverview"
2025/09/01 19:42:37 [error] 265#265: *58 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /stockoverview HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk"
2025/09/01 19:43:38 [error] 265#265: *58 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /stockoverview HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk"
2025/09/01 19:44:24 [error] 277#277: *138 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /api/system/db-changed-time HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk", referrer: "https://grocery.wickhay.uk/stockoverview"
2025/09/01 19:45:35 [error] 265#265: *58 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /stockoverview HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk"
2025/09/01 19:45:38 [error] 276#276: *139 upstream timed out (110: Operation timed out) while reading response header from upstream, client: 10.55.0.5, server: _, request: "GET /api/system/db-changed-time HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "grocery.wickhay.uk", referrer: "https://grocery.wickhay.uk/products"

Reverting to ls290 immediately fixes the issue (although Grocy is running quite slow due to lack of opcache)

Expected Behavior

After ls290 Grocy should run at least as well, as on ls290, but really should run faster - it has opcache, it has a newer pdo_sqlite...

Steps To Reproduce

  1. Have a database of at least 10MB (i think its a key factor, ls301 seems to be working fine with empty database, the problems start when i restore database backup to it)
  2. Upgrade from ls290 -> ls301
  3. Try opening grocy instance.

Environment

- OS: Linux r720-omv 6.12.38+deb12-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.38-1~bpo12+1 (2025-07-27) x86_64 GNU/Linux
- How docker service was installed: distro

CPU architecture

x86-64

Docker creation

services:
  grocy:
    cap_add:
      - AUDIT_WRITE
      - CHOWN
      - DAC_OVERRIDE
      - FOWNER
      - FSETID
      - KILL
      - MKNOD
      - NET_BIND_SERVICE
      - NET_RAW
      - SETFCAP
      - SETGID
      - SETPCAP
      - SETUID
      - SYS_CHROOT
    cap_drop:
      - ALL
    container_name: grocy
    environment:
      TZ: "${TZ}"
      PUID: "${DOCKER_PUID}"
      PGID: "${DOCKER_PGID}"
    hostname: grocy
    image: linuxserver/grocy:v4.5.0-ls290
    ipc: private
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"
    networks:
      - grocy
      - traefik
    ports:
      - 9283:80/tcp
    labels:  
      traefik.enable: "true"
      traefik.http.routers.grocy.rule: "Host(`grocery.${DOMAIN_NAME}`)"
      traefik.http.routers.grocy.entrypoints: "websecure"
      traefik.http.routers.grocy.tls: "true"
      traefik.http.routers.grocy.tls.certresolver: "letsencrypt"
      traefik.http.routers.grocy.tls.domains[0].main: "${DOMAIN_NAME}"
      traefik.http.routers.grocy.tls.domains[0].sans: "*.${DOMAIN_NAME}"
      traefik.http.routers.grocy.middlewares: "secHeaders@file"
      traefik.http.services.grocy.loadbalancer.server.port: "80"
      homepage.group: "Home"
      homepage.name: "Grocy"
      homepage.icon: "sh-grocy.png"
      homepage.href: "https://grocery.${DOMAIN_NAME}"
      homepage.description: "Home stock and inventory management"
      wud.watch: "true"
      wud.tag.include: '^\d+\.\d+\.\d+$$'
      wud.link.template: "https://github.com/grocy/grocy/releases/tag/v$${major}.$${minor}.$${patch}"
      wud.display.name: 'Grocy'
      wud.display.icon: 'sh:grocy'
    restart: unless-stopped
    volumes:
      - /opt/docker/grocy/grocy_data:/config
#      - /mnt/tmpfs:/config
networks:
  grocy:  
    name: grocy
    driver: bridge
    external: false
  traefik:
    external: true

Container logs

grocy  | 2025-09-01T20:14:00.365891377Z [migrations] started
grocy  | 2025-09-01T20:14:00.374854868Z [migrations] 01-nginx-site-confs-default: skipped
grocy  | 2025-09-01T20:14:00.378310986Z [migrations] 02-default-location: skipped
grocy  | 2025-09-01T20:14:00.378334755Z [migrations] done
grocy  | 2025-09-01T20:14:00.553597643Z ───────────────────────────────────────
grocy  | 2025-09-01T20:14:00.553635732Z 
grocy  | 2025-09-01T20:14:00.553640694Z       ██╗     ███████╗██╗ ██████╗
grocy  | 2025-09-01T20:14:00.553646493Z       ██║     ██╔════╝██║██╔═══██╗
grocy  | 2025-09-01T20:14:00.553653198Z       ██║     ███████╗██║██║   ██║
grocy  | 2025-09-01T20:14:00.553659975Z       ██║     ╚════██║██║██║   ██║
grocy  | 2025-09-01T20:14:00.553667118Z       ███████╗███████║██║╚██████╔╝
grocy  | 2025-09-01T20:14:00.553671605Z       ╚══════╝╚══════╝╚═╝ ╚═════╝
grocy  | 2025-09-01T20:14:00.553675315Z 
grocy  | 2025-09-01T20:14:00.553678646Z    Brought to you by linuxserver.io
grocy  | 2025-09-01T20:14:00.553682020Z ───────────────────────────────────────
grocy  | 2025-09-01T20:14:00.554166100Z 
grocy  | 2025-09-01T20:14:00.554190224Z To support LSIO projects visit:
grocy  | 2025-09-01T20:14:00.554195122Z https://www.linuxserver.io/donate/
grocy  | 2025-09-01T20:14:00.554198709Z 
grocy  | 2025-09-01T20:14:00.554202142Z ───────────────────────────────────────
grocy  | 2025-09-01T20:14:00.554206886Z GID/UID
grocy  | 2025-09-01T20:14:00.554210312Z ───────────────────────────────────────
grocy  | 2025-09-01T20:14:00.560563500Z 
grocy  | 2025-09-01T20:14:00.560583907Z User UID:    1003
grocy  | 2025-09-01T20:14:00.560589829Z User GID:    100
grocy  | 2025-09-01T20:14:00.560593839Z ───────────────────────────────────────
grocy  | 2025-09-01T20:14:00.563179642Z Linuxserver.io version: v4.5.0-ls301
grocy  | 2025-09-01T20:14:00.563445593Z Build-date: 2025-08-24T07:43:29+00:00
grocy  | 2025-09-01T20:14:00.563458413Z ───────────────────────────────────────
grocy  | 2025-09-01T20:14:00.563464105Z     
grocy  | 2025-09-01T20:14:00.660327813Z using keys found in /config/keys
grocy  | 2025-09-01T20:14:00.923505287Z [custom-init] No custom files found, skipping...
grocy  | 2025-09-01T20:14:00.943762318Z [ls.io-init] done.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions