Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Use a process supervisor on all functions by default #1101
Currently we invoke functions directly via the equivalent of docker run, this invokes the entrypoint as PID 1 within the container.
This can cause problems for languages/code that do not set up the appropriate signal handling for a pid1 process which in turn can cause zombie processes to leak, eventually exhausting the resources of the sever.
Describe the results you received:
Spawning child processes via exec will not be reaped, resulting in zombies
Describe the results you expected:
Child processes are reaped.
What to do ?
I think a simple solution here is to always run functions with the default
As of recent versions of docker this binary is installed as part of the docker distribution
within the docker agent we'd need to add InitBinary calls to the container construction call, sadly this also means reving our docker API dependency.
we may want to cross test this on OSX and Windows systems as well, it may be something arch-specific we have to do on linux and we could end up in a situation where a user may be running their container slightly differently with
upgrading the fsouza client should be relatively easy.