[libvirt] [PATCH] LXC containers don't stopped under some conditions

Michal Privoznik mprivozn at redhat.com
Thu Mar 7 17:04:05 UTC 2019


On 3/6/19 7:39 PM, Maxim Kozin wrote:
> LXC containers can be started, but time to time  can't be stopped.
> 1) virsh shutdown with option "--mode initctl" always stop container, but
>    virsh report error:
>      "Container does not provide an initctl pipe"
>    In container present /dev/initctl
> 
> 2) virsh shutdown with option "--mode signal" never stop lxc container, at
>    least for centos 7.5/7.6
>    In container log:
>      systemd: Received SIGTERM.
>      systemd: Reexecuting.
>      systemd: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX  +IMA
>        -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS
>        +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
>      systemd: Detected virtualization lxc-libvirt.
>      systemd: Detected architecture x86-64.
> 
> 3) virsh shutdown without option "--mode" can stop lxc container, but in 2 cases:
>     - cointainer not under heavy load
>     - in gdb when perform step-by-setp debug
>     But most often not, with simptoms as with --mode signal.
> 
> Patch tested only with host centos 7.6 and guests centos 7.5/7.6
> 
> Short comments to patch.
> lxcDomainShutdownFlags() return rc=0 and container begin stopped.
> We not go to endjob label, but later we pass check:
>    if (rc == 0 &&
>            (flags == 0 ||
>                     (flags & VIR_DOMAIN_SHUTDOWN_SIGNAL))) {
> And trying next shutdown method with sigterm to PID 1.
> If container heavy loaded, it not stopped. IF not or if you wait in gdb, then
> first method succefully perform shutdown.
> 
> Signed-off-by: Maxim Kozin <kolomaxes at gmail.com>
> ---
>   src/lxc/lxc_driver.c | 40 ++++++++++++++++++----------------------
>   1 file changed, 18 insertions(+), 22 deletions(-)

I've reworeded the commit message, ACKed and pushed.

Congratulations on your first libvirt contribution!

Michal




More information about the libvir-list mailing list