Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1224632

Summary: vdsm fails to read dhclient lease config "expire never"
Product: Red Hat Enterprise Virtualization Manager Reporter: rhev-integ
Component: vdsmAssignee: Ondřej Svoboda <osvoboda>
Status: CLOSED ERRATA QA Contact: Meni Yakove <myakove>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 3.5.1CC: bazulay, danken, ecohen, gprocunier, lpeer, lsurette, mburman, mkalinin, myakove, ssekidde, yeylon, ylavi
Target Milestone: ---Keywords: ZStream
Target Release: 3.5.3Flags: ylavi: Triaged+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard: network
Fixed In Version: vdsm-4.16.18-1.el6ev Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1223530 Environment:
Last Closed: 2015-06-15 13:19:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1223530    
Bug Blocks:    

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