Description
Hi. Getting the following error from SolidQueue:
SolidQueue-1.0.2 Tried to replace forked process but it had already died (0.1ms) pid: 411, status: 0, pid_from_status: 411, signaled: false, stopsig: nil, termsig: nil
SolidQueue-1.0.2 Tried to replace forked process but it had already died (0.0ms) pid: 412, status: 0, pid_from_status: 412, signaled: false, stopsig: nil, termsig: nil
There are always 2 log entries per single executed job. The pair of pid's for a single job execution appear to always be sequential. The AJ job-completed log message is sometimes before and sometimes after these 2 errors.
For context, this is coming from a dedicated SQ process with 1 worker thread and 0 dispatchers. The executed job itself uses the grover
gem, which calls nodejs
to run puppeteer
, which then calls chrome
to generate a PDF. There are definitely some subprocesses being run.
I think the intent of the error message is to indicate that an SQ worker process was killed? Is it possible it's a false alert and SQ's fork/process monitoring is picking up forked/sub processes that aren't its own? I don't have a solid grasp on SQ's forking-related internals.
Where I'm having a hard time is that the jobs do appear to complete, and as noted, the AJ job-completed logs also show up. So, the idea that the worker is being killed doesn't quite make sense.
Thoughts? Or how can I better debug this?