google / gvisor

Application Kernel for Containers

Home Page:https://gvisor.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nginx does not run

nlacasse opened this issue · comments

Depending on the configuration, you may see nginx fail with the error:

ioctl(FIOASYNC) failed while spawning "worker process" (25: Inappropriate ioctl for device)

Support for FIOASYNC is in progress, but it’s not available yet. For now, add
the line below to /etc/nginx/nginx.conf:

master_process off;

Am I correct in assuming that this will potentially make nginx behave in unexpected ways and thus it is not something one should attempt for any somewhat serious use of nginx + gvisor?

To quote the nginx docs at http://nginx.org/en/docs/ngx_core_module.html#master_process:

Syntax: | master_process on \| off;
-- | --
master_process on;
main

Determines whether worker processes are started. This directive is intended for nginx developers.

I'm not totally sure what the "master_process" directive does, but the docs do state that it should not be used in production.

http://nginx.org/en/docs/faq/daemon_master_process_off.html

We are still working on the FIOASYNC support, at which point this workaround will not be necessary.

Is there an example to repro this behaviour? I am not having an issue with nginx:latest.

gVisor now supports FIOASYNC ioctl. I just verified that nginx runs without the "master_process: off" directive.