Bug 1325066

Summary: The description of --timeout should be updated in libvirtd manpage
Product: Red Hat Enterprise Linux 7 Reporter: yafu <yafu>
Component: libvirtAssignee: Erik Skultety <eskultet>
Status: CLOSED ERRATA QA Contact: Lili Zhu <lizhu>
Severity: low Docs Contact:
Priority: low    
Version: 7.3CC: dyuan, fjin, jsuchane, mzhan, rbalakri, xuzhang, zpeng
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-3.8.0-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-04-10 10:36:45 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 2016-04-08 06:37:03 UTC
Description of problem:
The description of --timout should be updated in libvirtd manpage

Version-Release number of selected component (if applicable):
libvirt-1.3.2-1.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Prepare an autostart network;
  #virsh net-list
    Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes
 
2.Stop libvirtd service:
 #service libvirtd stop

2.Start libvirtd with '--timout' option:
 #libvirt --timeout 60

3.Check the libvirtd process after 60s:
 #sleep 60 && pgrep libvirtd
   no output                                                   ---could see the libvirtd process exit after timeout period expire


Also check runnign guests, pool-list, client connection, etc, Could see libvirtd exit after timeout period expires except there is running guests. It's inconsistent with the description of the man page:

#man libvirtd
...
 -t, --timeout SECONDS
           Exit after timeout period (in seconds) elapse with no client connections or registered resources.  Be aware that
           resources such as autostart networks will result in never reaching the timeout, even when there are no client
           connections.

Actual results:


Expected results:
libvirtd manpage's description of --timeout should be consistent with the test results.

Additional info:

Comment 1 Jaroslav Suchanek 2016-04-08 13:44:55 UTC
Probably it changed since bug 831049 was fixed. An adjustment in man page should be sufficient.

Comment 2 Erik Skultety 2017-09-08 09:09:28 UTC
fixed upstream by:

commit bc92770aba34d80caeda1770b576841b2465d271
Author:     Erik Skultety <eskultet>
AuthorDate: Thu Sep 7 15:47:51 2017 +0200
Commit:     Erik Skultety <eskultet>
CommitDate: Fri Sep 8 11:07:45 2017 +0200

    docs: Update --timeout description in libvirtd's man page
    
    Since commit @ae2163f8, only active client connections or running
    domains are allowed to inhibit daemon shutdown. The man page however
    wasn't updated appropriately.
    
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1325066
    
    Signed-off-by: Erik Skultety <eskultet>
    Reviewed-by: Martin Kletzander <mkletzan>

Comment 4 Lili Zhu 2017-10-27 08:41:57 UTC
Verified the bug with libvirt-3.8.0-1.el7.x86_64
Test steps are as following:
# man libvirtd 
....
 -t, --timeout SECONDS
           Exit after timeout period (in seconds), provided there are neither any client connections nor any running domains.
....

Verify the document from the following 3 scenarios:
Scenario 1:
make sure there is no connection to the daemon, and there is no running guest
# virsh list --all
 Id    Name                           State
----------------------------------------------------

1. In terminal 1
# libvirtd --timeout 30

2. In terminal 2
# virsh net-list 
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

3. In terminal 3
#  sleep 30; pgrep libvirtd               
                  <===There is no output


Scenario 2:
There is no running guest, but there is a connection to the daemon
1. In terminal 1
# libvirtd --timeout 30

2. In terminal 2
# virsh 
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit

virsh # list 
 Id    Name                           State
----------------------------------------------------

3. In terminal 3
#  sleep 30; pgrep libvirtd               
8774              <===the pid of libvirtd, libvirtd is still running


Scenario 3:
There is a running guest, but there is no connection to the daemon
1. In terminal 1
# libvirtd --timeout 30

2. In terminal 2
# virsh list --all
 Id    Name                           State
----------------------------------------------------
 1     rhel7.5                        running

3. In terminal 3
#  sleep 30; pgrep libvirtd               
9248              <===the pid of libvirtd, libvirtd is still running

As the testing results match with the document description, so mark the bug
as verified.

Comment 8 errata-xmlrpc 2018-04-10 10:36:45 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-2018:0704