Skip to content

FPM unknown child alert not valid #10315

Closed
@bukka

Description

@bukka

Description

When FPM master process waits for its children and the resulted pid is not found between its children, it triggers following alert:

zlog(ZLOG_ALERT, "oops, unknown child (%d) exited %s. Please open a bug report (https://github.com/php/php-src/issues).", pid, buf);

Usually this would make sense to consider this as a bug except there are some valid use case when this can happen. It means a PID that is not an FPM child can be returned and it is not a problem. Here are two examples of such valid use cases.

  1. The most usual case is that FPM runs in a container (e.g. Docker) where its PID is 1. It means it's the init process and every orphan process becomes its child. For example it means, this error gets triggered just by running exec('sleep 1 &');.
  2. Another use case is that process forks and parent immediately exec to run FPM. This for example happens with s6-notifyoncheck (in this case it can be prevented by running the program with -d option).

The solution should be to reduce the logging level and log different message. In the first case (if master pid is 1) just debug message should suffice. Otherwise triggering warning should be more appropriate as it might still make sense to let user know about this.

PHP Version

Any with FPM

Operating System

Linux

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions