Skip to content

Error: "Tried to replace forked process but it had already died" #442

Closed
@zarqman

Description

@zarqman

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?

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions