-
-
Notifications
You must be signed in to change notification settings - Fork 5
Description
Is there an existing issue for this?
- I have searched the existing issues
Current Behavior
While running the speedtest-tracker container, I observed a steady increase in zombie processes. Investigation shows that busybox crond (PID 403238 in my case) is spawning PHP processes that exit but are not reaped by the parent.
Process Tree Snippet:
UID PID PPID C STIME TTY TIME CMD
root 403238 402818 0 14:14 ? 00:00:00 busybox crond -f -S -l 5
[...] 410301 403238 Z [php]
Potential Trigger:
This behavior seems to correlate with high system load or network instability. It appears the PHP binary called by the scheduler doesn't exit cleanly or the crond fails to handle the SIGCHLD signal correctly.
docker inspect speedtest-tracker --format '{{.Config.Image}} {{.Image}}'
lscr.io/linuxserver/speedtest-tracker:latest sha256:e9a547fe4e1b8bbb0c888f4aa6ae5e0c7905a6aae6fe32a144ebe86b477ad7bd
Could this be also caused by the healthcheck?
Suspected Trigger:
Healthcheck
The container uses the following healthcheck: test: ["CMD-SHELL", "curl -fSs http://localhost:80/api/healthcheck | jq -r .message || exit 1"]
docker exec speedtest-tracker ps aux G cron
root 39 0.0 0.0 220 76 ? S 14:26 0:00 s6-supervise svc-cron
root 258 0.0 0.0 1628 984 ? Ss 14:26 0:00 busybox crond -f -S -l 5
Parent Process (PPID): busybox crond -f -S -l 5
Child Process (Zombie): [php]
docker exec -it speedtest-tracker php /app/www/artisan about --json
{"environment":{"application_name":"Speedtest Tracker","laravel_version":"12.41.1","php_version":"8.4.16","composer_version":"2.9.3","environment":"production","debug_mode":false,"url":"speed.skynet22.org","maintenance_mode":false,"timezone":"UTC","locale":"en"},"cache":{"config":true,"events":true,"routes":true,"views":true},"drivers":{"broadcasting":"null","cache":"database","database":"sqlite","logs":"stderr","mail":"smtp","queue":"database","session":"database"},"storage":{"/app/www/public/storage":false},"filament":{"version":"v4.1.0","packages":"filament, forms, notifications, support, tables, actions, infolists, schemas, widgets","views":"NOT PUBLISHED","blade_icons":"CACHED","panel_components":"CACHED"},"livewire":{"livewire":"v3.7.1"},"speedtest_tracker":{"version":"v1.13.5"}}
alexjustesen/speedtest-tracker#2645 (comment)
Expected Behavior
no zombie processes
Steps To Reproduce
I tried to explain it
Environment
- OS: Debian 13
- How docker service was installed: aptCPU architecture
x86-64
Docker creation
---
services:
speedtest-tracker:
image: lscr.io/linuxserver/speedtest-tracker:latest
container_name: speedtest-tracker
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- APP_KEY="base64:RHsgHHZs+1pviG7aXXX"
- APP_URL="https://xxx"
- DB_CONNECTION=sqlite
- SPEEDTEST_SCHEDULE="3 5 * * *"
- SPEEDTEST_SERVERS=31469
- DB_HOST= #optional
- DB_PORT= #optional
- DB_DATABASE= #optional
- DB_USERNAME= #optional
- DB_PASSWORD= #optional
- DISPLAY_TIMEZONE=Europe/Berlin #optional
- PRUNE_RESULTS_OLDER_THAN=90 #optional
volumes:
- /home/mcp/docker/speedtest/data:/config
tmpfs:
- /run:exec,rw,size=64m
- /tmp:rw,size=128m
- /config/www/storage/framework/cache:rw,size=64m
- /config/www/storage/framework/sessions:rw,size=64m
networks:
- net_dmz
ports:
- 8980:80
mem_limit: 512m
cpus: 0.3
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "curl -fSs http://localhost:80/api/healthcheck | jq -r .message || exit 1"]
interval: 125s
retries: 3
start_period: 30s
timeout: 10s
networks:
net_dmz:
external: trueContainer logs
docker exec speedtest-tracker ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 436 104 ? Ss 14:26 0:00 /package/admin/s6/command/s6-svscan -d4 -- /run/service
root 17 0.0 0.0 220 80 ? S 14:26 0:00 s6-supervise s6-linux-init-shutdownd
root 18 0.0 0.0 208 64 ? Ss 14:26 0:00 /package/admin/s6-linux-init/command/s6-linux-init-shutdownd -d3 -c /run/s6/basedir -g 3000 -C -B
root 36 0.0 0.0 220 80 ? S 14:26 0:00 s6-supervise svc-speedtest-tracker
root 37 0.0 0.0 220 76 ? S 14:26 0:00 s6-supervise svc-php-fpm
root 38 0.0 0.0 220 76 ? S 14:26 0:00 s6-supervise svc-nginx
root 39 0.0 0.0 220 76 ? S 14:26 0:00 s6-supervise svc-cron
root 40 0.0 0.0 220 72 ? S 14:26 0:00 s6-supervise s6rc-fdholder
root 41 0.0 0.0 220 80 ? S 14:26 0:00 s6-supervise s6rc-oneshot-runner
root 49 0.0 0.0 208 68 ? Ss 14:26 0:00 /package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcserver-access -v0 -E -l0 -i data/rules -- /package/admin/s6/command/s6-sudod -t 30000 -- /package/admin/s6-rc/command/s6-rc-oneshot-run -l ../.. --
abc 252 0.1 0.4 103244 66812 ? Ss 14:26 0:00 php artisan queue:work --tries=3 --no-ansi -q
root 254 0.0 0.1 65204 27080 ? Ss 14:26 0:00 php-fpm: master process (/etc/php84/php-fpm.conf)
root 256 0.0 0.0 61720 7644 ? Ss 14:26 0:00 nginx: master process /usr/sbin/nginx -e stderr
root 258 0.0 0.0 1628 984 ? Ss 14:26 0:00 busybox crond -f -S -l 5
abc 285 0.0 0.0 62184 3776 ? S 14:26 0:00 nginx: worker process
abc 286 0.0 0.0 62184 3764 ? S 14:26 0:00 nginx: worker process
abc 287 0.0 0.0 62184 3776 ? S 14:26 0:00 nginx: worker process
abc 288 0.0 0.0 62184 3776 ? S 14:26 0:00 nginx: worker process
abc 289 0.0 0.0 61964 3192 ? S 14:26 0:00 nginx: cache manager process
abc 291 0.4 0.2 92640 45120 ? S 14:26 0:01 php-fpm: pool www
abc 292 0.7 0.3 99088 51568 ? S 14:26 0:03 php-fpm: pool www
root 337 40.0 0.0 2852 1904 ? Rs 14:34 0:00 ps aux
❯ docker exec speedtest-tracker ps aux G cron
root 39 0.0 0.0 220 76 ? S 14:26 0:00 s6-supervise svc-cron
root 258 0.0 0.0 1628 984 ? Ss 14:26 0:00 busybox crond -f -S -l 5Metadata
Metadata
Assignees
Labels
Type
Projects
Status