Bug 1453142

Summary: libvirt does not change the namespace setting for the running guest after disabling namespaces in qemu.conf
Product: Red Hat Enterprise Linux 7 Reporter: yafu <yafu>
Component: libvirtAssignee: Peter Krempa <pkrempa>
Status: CLOSED ERRATA QA Contact: yafu <yafu>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: chorn, dyuan, fjin, jtomko, lizhu, mprivozn, pkrempa, rbalakri, xuzhang, yanqzhan, zpeng
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libvirt-3.2.0-6.el7 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-02 01:34:35 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description yafu 2017-05-22 09:13:35 UTC
Description of problem:
If there is a running guest, When I disable creating namespace for qemu process in the qemu.conf and restart libvirtd, then destroy the guest and start the guest again. Libvirt still creates the namespace for the guest.

Version-Release number of selected component (if applicable):
libvirt-3.2.0-5.virtcov.el7.x86_64
qemu-kvm-rhev-2.9.0-5.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Start a guest:
#virsh start rhel7.3-min 

2.Disable the namespace in qemu.conf
#vim /etc/libvirt/qemu.conf
namespaces = [  ]
 
3.Restart libvirtd service:
#systemctl restart libvirtd

4.Destroy and start the guest again:
#virsh destroy rhel7.3-min

5.Start the guest again:
#virsh start rhel7.3-min

6.libvirt still create namespace for the guest:
#lsns | grep qemu
lsns | grep -i qemu
4026532522 mnt        1 31993 qemu   /usr/libexec/qemu-kvm -name guest=rhel7.3-min ...

7.Need to restart libvirtd service again after step 4 to not create namespace for the guest.

Actual results:
libvirt does not change the namespace setting for the running guest after disabe creating namespace in qemu.conf

Expected results:
libvirt should change the namespace setting for the running guest after disabe creating namespace in qemu.conf

Additional info:

Comment 2 Peter Krempa 2017-05-22 11:40:34 UTC
priv->namespaces is not cleared after stopping the qemu process

Comment 3 Peter Krempa 2017-05-23 14:30:26 UTC
Fixed upstream:

commit 5203975f37e24f7b7156f0251f19f5001a6bd6eb
Author: Peter Krempa <pkrempa>
Date:   Mon May 22 13:36:55 2017 +0200

    qemu: process: Clear priv->namespaces on VM shutdown
    
    Otherwise the private data entry would be kept across instances of the
    same VM even if it's not configured to do so.

Comment 6 yafu 2017-05-27 06:21:27 UTC
Verified pass with libvirt-3.2.0-6.virtcov.el7.x86_64.

Test steps:
1.Start a guest:
#virsh start rhel7.3-min 

2.Disable the namespace in qemu.conf
#vim /etc/libvirt/qemu.conf
namespaces = [  ]
 
3.Restart libvirtd service:
#systemctl restart libvirtd

4.Destroy and start the guest again:
#virsh destroy rhel7.3-min

5.Start the guest again:
#virsh start rhel7.3-min

6.No namespace creating fro the guest:
#lsns | grep qemu
no output

Comment 7 errata-xmlrpc 2017-08-02 01:34:35 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2017:1846