Bug 1224632 - vdsm fails to read dhclient lease config "expire never"
Summary: vdsm fails to read dhclient lease config "expire never"
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: vdsm
Version: 3.5.1
Hardware: Unspecified
OS: Unspecified
urgent
urgent
Target Milestone: ---
: 3.5.3
Assignee: Ondřej Svoboda
QA Contact: Meni Yakove
URL:
Whiteboard: network
Depends On: 1223530
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-05-25 08:22 UTC by rhev-integ
Modified: 2019-07-16 12:00 UTC (History)
12 users (show)

Fixed In Version: vdsm-4.16.18-1.el6ev
Doc Type: Bug Fix
Doc Text:
Clone Of: 1223530
Environment:
Last Closed: 2015-06-15 13:19:27 UTC
oVirt Team: Network
Target Upstream Version:
Embargoed:
ylavi: Triaged+


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Knowledge Base (Solution) 1464153 0 None None None Never
Red Hat Product Errata RHBA-2015:1103 0 normal SHIPPED_LIVE vdsm 3.5.3 - bug fix and enhancement update 2015-06-15 17:18:53 UTC
oVirt gerrit 41266 0 master MERGED netinfo: handle never-expiring leases Never
oVirt gerrit 41354 0 ovirt-3.5 MERGED netinfo: handle never-expiring leases Never

Comment 4 Michael Burman 2015-06-01 07:46:30 UTC
- Tested on 3.5.3-1.3.el6ev(vt15.1) with rhel7.1 and vdsm-4.16.18-1.el7ev.x86_64
dhclient-4.2.5-36.el7.x86_64
- Tested as well with rhel6.7 and vdsm-4.16.18-1.el6ev.x86_64 on 3.5.3-1.3.el6ev
dhclient-4.1.1-49.P1.el6.x86_64


- Set expire lease for 'never' and restarted vdsmd service, results:

rhel 7.1 - 
journalctl:

 May 31 17:32:28 navy-vds1.qa.lab.tlv.redhat.com vdsm[11523]: vdsm jsonrpc.JsonRpcServer ERROR Internal server error                                   
                                                             Traceback (most recent call last):                                                       
                                                               File "/usr/lib/python2.7/site-packages/yajsonrpc/__init__.py", line 501, in _serveRequest
                                                                 res = method(**params)                                                                 
                                                               File "/usr/share/vdsm/rpc/Bridge.py", line 271, in _dynamicMethod                        
                                                                 result = fn(*methodArgs)                                                               
                                                               File "/usr/share/vdsm/API.py", line 1266, in getCapabilities                             
                                                                 c = caps.get()                                                                         
                                                               File "/usr/share/vdsm/caps.py", line 602, in get                                         
                                                                 caps.update(netinfo.get())                                                             
                                                               File "/usr/lib/python2.7/site-packages/vdsm/netinfo.py", line 732, in get                
                                                                 d['networks'] = _libvirtNets2vdsm(nets, gateways, ipv6routes, ipaddrs)                 
                                                               File "/usr/lib/python2.7/site-packages/vdsm/netinfo.py", line 689, in _libvirtNets2vdsm  
                                                                 dhcp4 = getDhclientIfaces(_DHCLIENT_LEASES_GLOBS)                                      
                                                               File "/usr/lib/python2.7/site-packages/vdsm/netinfo.py", line 675, in getDhclientIfaces  
                                                                 interfaces.update(_parseLeaseFile(leaseFile, ipv6))                                    
                                                               File "/usr/lib/python2.7/site-packages/vdsm/netinfo.py", line 641, in _parseLeaseFile    
                                                                 expiryTime = _parseExpiryTime(line[len(EXPIRE):end])                                   
                                                               File "/usr/lib/python2.7/site-packages/vdsm/netinfo.py", line 619, in _parseExpiryTime   
                                                                 return datetime.strptime(expiryTime, '%w %Y/%m/%d %H:%M:%S')                           
                                                               File "/usr/lib64/python2.7/_strptime.py", line 325, in _strptime                         
                                                                 (data_string, format))                                                                 
                                                             ValueError: time data '5 never' does not match format '%w %Y/%m/%d %H:%M:%S'   

-  Though vdsmd is started, the host is moved to non-responsive state and lost connectivity.   

rhel 6.7 , works as expected.
Set lease to 'never' and restarted vdsmd service

[root@navy-vds1 ~]# /etc/init.d/vdsmd restart
Shutting down vdsm daemon:
vdsm watchdog stop                                         [  OK  ]
vdsm: Running run_final_hooks                              [  OK  ]
vdsm stop                                                  [  OK  ]
initctl: Job is already running: libvirtd
vdsm: Running mkdirs
vdsm: Running configure_coredump
vdsm: Running configure_vdsm_logs
vdsm: Running wait_for_network
vdsm: Running run_init_hooks
vdsm: Running upgraded_version_check
vdsm: Running check_is_configured
libvirt is already configured for vdsm
vdsm: Running validate_configuration
SUCCESS: ssl configured to true. No conflicts
vdsm: Running prepare_transient_repository
vdsm: Running syslog_available
vdsm: Running nwfilter
vdsm: Running dummybr
vdsm: Running load_needed_modules
vdsm: Running tune_system
vdsm: Running test_space
vdsm: Running test_lo
Upgrading to unified persistence if needed
Upgrading to v3.x networking if needed
Starting up vdsm daemon:
vdsm start                                                 [  OK  ]


So the fix done for vdsm-4.16.18-1.el6ev.x86_64, but not for vdsm-4.16.18-1.el7ev.x86_64 ??

Dan ?

Comment 5 Dan Kenigsberg 2015-06-01 13:18:09 UTC
If this is the case, it is a serious build glitch. Can you verify that vdsm-python.rpm is of matching version and content?


  rpm -q vdsm-python
  rpm -V vdsm-python

Comment 6 Dan Kenigsberg 2015-06-02 09:44:05 UTC
On a second look, I see el7's vdsm complain about '5 never', not 'never'. Maybe you had a typo when tweaking the lease file on your el7?

Comment 7 Michael Burman 2015-06-02 10:48:31 UTC
Hi Dan, maybe you are right and i had a typo in first try.

vdsm-python-4.16.18-1.el7ev.noarch
rpm -V vdsm-python--> no output

I gave it additional tests with rhel 7.1 and succeeded. vdsmd started without errors in journalctl and host is up.

Comment 8 Michael Burman 2015-06-02 14:48:40 UTC
Verified on - 3.5.3-1.3.el6ev 
- with rhel7.1 and vdsm-4.16.18-1.el7ev.x86_64
dhclient-4.2.5-36.el7.x86_64 and
- with rhel6.7 and vdsm-4.16.18-1.el6ev.x86_64 on 3.5.3-1.3.el6ev
dhclient-4.1.1-49.P1.el6.x86_64

Comment 10 errata-xmlrpc 2015-06-15 13:19:27 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://rhn.redhat.com/errata/RHBA-2015-1103.html


Note You need to log in before you can comment on or make changes to this bug.