Bug 694422

Summary: libvirtd hangs if mounting the nfs specified by nfs pool gives no response.
Product: Red Hat Enterprise Linux 6 Reporter: Osier Yang <jyang>
Component: libvirtAssignee: Osier Yang <jyang>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: medium    
Version: 6.1CC: berrange, dallan, dyuan, eblake, mzhan
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-06-17 18:07:25 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Osier Yang 2011-04-07 10:26:46 UTC
Description of problem:
Discovered this when debugging another problem from QE.

1) define two nfs pool like following, (Note the two target paths' relationship)

# cat /etc/libvirt/storage/nfs1.xml 
<pool type='netfs'>
  <name>nfs</name>
  <uuid>a4d544c8-fe04-295d-7d06-ef86c1c6893f</uuid>
  <capacity>0</capacity>
  <allocation>0</allocation>
  <available>0</available>
  <source>
    <host name='10.66.6.148'/>
    <dir path='/var/lib/libvirt/images'/>
    <format type='auto'/>
  </source>
  <target>
    <path>/var/lib/libvirt/images</path>
    <permissions>
      <mode>0700</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

# cat /etc/libvirt/storage/nfs2.xml 
<pool type='netfs'>
  <name>nfs</name>
  <uuid>a4d544c8-fe04-295d-7d06-ef86c1c6893f</uuid>
  <capacity>0</capacity>
  <allocation>0</allocation>
  <available>0</available>
  <source>
    <host name='10.66.6.148'/>
    <dir path='/var/lib/libvirt/images'/>
    <format type='auto'/>
  </source>
  <target>
    <path>/var/lib/libvirt/images/nfs</path>
    <permissions>
      <mode>0700</mode>
      <owner>-1</owner>
      <group>-1</group>
    </permissions>
  </target>
</pool>

2) set these two pools autostart

3) restart libvirtd.

Then libvirtd will hangs on initializing storage driver, waiting for mouting nfs return, which means we can't even get a connection to libvirtd anymore, and the worse is, once you restart libvirtd again, it starts more "mount" processes, as before it doing the mount, it looks up in /etc/mtab to see if the nfs is always mounted, unfortunately, the previous mounting is still waiting for reponse, have not return yet, so it comes more and more mouting process if you restart libvirtd again and again.

Though the testing method is not reasonable, but it can be served as negative testing, we might introduce timeout for the fs pool mounting.

Version-Release number of selected component (if applicable):
[root@localhost ~]# rpm -q libvirt
libvirt-0.8.7-15.el6.x86_64

How reproducible:


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info:

Comment 2 RHEL Program Management 2011-04-07 10:43:46 UTC
Since RHEL 6.1 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.

Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.

Comment 3 Dave Allan 2011-06-17 18:07:25 UTC

*** This bug has been marked as a duplicate of bug 669777 ***