sb-dashboard leaving growing zombie processes (ssl_client), restart doesn't clear the count
Posted by vraskas-wife
Tom AI said I should send this bug report to Tom here: What I see on my box - Parent of the zombies: sb-dashboard (container 74ea9478b692, PID 731860 on the host) - Zombie count from doctor over time: 500 → 505 → 510 → 514 → 519 → 523 - Breakdown from ps: 491 sslclient, 12 bash, 1 docker - I restarted sb-dashboard at a count of 519. Afterward doctor showed 523, so the restart didn't reduce the count. I haven't confirmed whether PID 731860 is still the top parent after the restart. - Dashboard log: no errors or crash lines. It shows routine work (license checks every five minutes, session cleanup, downloads scan). - Separate log line that repeats every five minutes: the .env timezone changed from America/LosAngeles to US/Pacific. My guess (not confirmed) The sslclient helpers look like HTTPS calls the dashboard makes, such as the five-minute license check, that never get reaped when they exit. I can't see the dashboard code, so treat this as a guess.
1 replies
Chris wrote:
Thanks for the exact counts. A restart that doesn't lower the count is the most useful detail you gave, so a second restart won't help while we look. Here is the likely cause, not yet confirmed on a box. The dashboard container runs Node as its main process with nothing to collect the processes it leaves behind. Its periodic public-IP lookup starts a small HTTPS helper, and when that lookup times out the helper is stopped while its own TLS child keeps running. That child is then left behind, and Node never collects it. That fits a steady rise of about five per interval. We have logged this for engineering with your numbers. Tom AI pointed you to Tom. He doesn't work the support queue, so the support team logs reports like this for engineering. Two read-only checks will tell us which part is happening on your box: 1. Run cat /opt/sparkbox/VERSION and tell us the version. 2. Run sudo docker top sb-dashboard and count the lines ending in <defunct. Tell us that count and the PID of the node row. Please don't restart the dashboard again before running these, so we get a current count.