Should killed process deref a jail?

Kurt Jaeger pi at freebsd.org
Wed May 6 18:49:37 UTC 2020


Hi!

> In doing some testing of qemu-user-static recently, I noticed that
> killing the last process in a non-persist jail doesn't kill off the
> jail:
> 
> root at viper:/usr/src# jail -c path=/ command=yes
> ## ^C out
> 
> root at viper:/usr/src# jls
>    JID  IP Address      Hostname                      Path
>    181                                                /
> 
> root at viper:/usr/src# ps fxJ 181
> PID TT  STAT TIME COMMAND
> 
> As a result, I ended up with 82 jails pointed at my armv7 sysroot and
> much surprise when I checked out `jls`. This vaguely smells like a
> bug, is this something that should be fixed?

Depends. If the last process held some socket and the socket
is still in the state LINGER.

See

https://deepix.github.io/2016/10/21/tcprst.html

for more details, after the heading 'What is SO_LINGER?'

You can probably see those sockets with

sockstat -s | grep -v ESTAB | grep -v LISTEN | grep -v TIME_WAIT | grep -v stream

-- 
pi at opsec.eu            +49 171 3101372                    Now what ?


More information about the freebsd-jail mailing list