You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss 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.
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 &');.
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
The text was updated successfully, but these errors were encountered:
If anyone has got some other valid use case, please comment here. It would be really useful to know so we can asses whether the WARNING is appropriate. The listed use case (number 2) is WARNING because there is a way how to get around it. Keeping that as a WARNING might still catch some buggy behaviour in FPM though.
Description
When FPM master process waits for its children and the resulted pid is not found between its children, it triggers following alert:
php-src/sapi/fpm/fpm/fpm_children.c
Line 301 in 9788244
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.
exec('sleep 1 &');
.-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
The text was updated successfully, but these errors were encountered: