Defunct ssl_client processes
Smart123s opened this issue · 2 comments
The inadyn process spawns a lot of ssl_client child processes, but they won't get cleaned up. After running inadyn for a few days I had 13000+ defunct ssl_client, which have disappeared after stoping inadyn.
I noticed this bug because htop
began to lag.
Platform: Debian 12 (x64) - Docker (27.2.0)
Image: ghcr.io/troglobit/inadyn@sha256:f18e14746f819d9fff33af2ca5590571bc74e9a6645223ee4c6b54a8c1c00e2f
Output of ps -axjf
after a few minutes of running:
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
[...]
137201 3082403 3082403 137379 ? -1 Sl 0 0:00 \_ /usr/bin/containerd-shim-runc-v2 -namespace moby -id 14bedc7c91e5af2b384ad78b4e68d977082c09404f4bf05db3f1f9cacd10e437 -address /run/containerd/containerd.sock
3082403 3082423 3082423 3082423 ? -1 Ss 0 0:00 \_ /usr/sbin/inadyn --foreground
3082423 3082573 3082565 3082565 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3082574 3082565 3082565 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3082727 3082719 3082719 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3082728 3082719 3082719 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3082973 3082965 3082965 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3082974 3082965 3082965 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083145 3083137 3083137 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083146 3083137 3083137 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083289 3083281 3083281 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083312 3083281 3083281 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083576 3083568 3083568 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083577 3083568 3083568 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083730 3083722 3083722 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083731 3083722 3083722 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083889 3083881 3083881 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3083890 3083881 3083881 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084086 3084078 3084078 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084087 3084078 3084078 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084242 3084234 3084234 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084243 3084234 3084234 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084445 3084434 3084434 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084453 3084434 3084434 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084639 3084631 3084631 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084640 3084631 3084631 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084795 3084787 3084787 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084796 3084787 3084787 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084997 3084989 3084989 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3084998 3084989 3084989 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085154 3085146 3085146 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085155 3085146 3085146 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085317 3085309 3085309 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085318 3085309 3085309 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085538 3085529 3085529 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085539 3085529 3085529 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085682 3085674 3085674 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085683 3085674 3085674 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085855 3085847 3085847 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3085856 3085847 3085847 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086060 3086052 3086052 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086061 3086052 3086052 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086218 3086188 3086188 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086226 3086188 3086188 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086385 3086377 3086377 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086386 3086377 3086377 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086621 3086597 3086597 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086633 3086597 3086597 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086789 3086780 3086780 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086790 3086780 3086780 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086963 3086955 3086955 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3086966 3086955 3086955 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087165 3087157 3087157 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087166 3087157 3087157 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087338 3087330 3087330 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087339 3087330 3087330 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087485 3087477 3087477 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087486 3087477 3087477 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087690 3087682 3087682 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087691 3087682 3087682 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087864 3087856 3087856 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3087865 3087856 3087856 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088022 3088014 3088014 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088023 3088014 3088014 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088204 3088196 3088196 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088205 3088196 3088196 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088387 3088379 3088379 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088388 3088379 3088379 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088580 3088572 3088572 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088581 3088572 3088572 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088750 3088741 3088741 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088751 3088741 3088741 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088931 3088923 3088923 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3088932 3088923 3088923 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089121 3089113 3089113 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089140 3089113 3089113 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089262 3089254 3089254 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089280 3089254 3089254 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089500 3089477 3089477 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089508 3089477 3089477 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089750 3089742 3089742 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089751 3089742 3089742 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089901 3089889 3089889 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3089902 3089889 3089889 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090072 3090064 3090064 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090073 3090064 3090064 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090275 3090267 3090267 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090276 3090267 3090267 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090455 3090441 3090441 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090456 3090441 3090441 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090614 3090606 3090606 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090615 3090606 3090606 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090840 3090832 3090832 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3090841 3090832 3090832 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3091001 3090993 3090993 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3091002 3090993 3090993 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3091177 3091149 3091149 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
3082423 3091178 3091149 3091149 ? -1 Z 0 0:00 \_ [ssl_client] <defunct>
I honestly don't know what this is. Nowhere in the code does Inadyn use ssl_client
. Unless you provide more information about your configuration I cannot help you.
I'm stupid. I had a buggy healthcheck in my docker-compose.yml
inadyn:
image: ghcr.io/troglobit/inadyn
container_name: inadyn
volumes:
- [...]/inadyn.conf:/etc/inadyn.conf:ro
labels:
traefik.enable: false
deunhealth.restart.on.unhealthy: true
network_mode: host
healthcheck:
test: "wget --spider -S --no-check-certificate '1.1.1.1' 2>&1 | grep -q 'HTTP/1.1 200 OK' || exit 1 "
interval: 10s
timeout: 6s
retries: 15
restart: always
For every other container, I used curl for healthcheck, but your image didn't have that, so I switched to wget. The zombie processes didn't cause a problem for the first few days, so I forgot about that. Sorry for taking your time. My bad.