Description of problem: In ovirt-node rmFile() cannot remove /etc/sysconfig/network-scripts/ifcfg-eth0. To remove a file in ovirt-node it must be unpersisted. from supervdsm.log ====================== MainThread::DEBUG::2014-06-03 04:48:11,568::netconfpersistence::166::root::(_clearDisk) No existent config to clear. MainThread::INFO::2014-06-03 04:48:11,568::netconfpersistence::182::root::(save) Saved new config RunningConfig({}, {}) to /var/run/vdsm/netconf/nets/ and /var/run/vdsm/netconf/bonds/ MainThread::DEBUG::2014-06-03 04:48:11,569::netconfpersistence::134::root::(_getConfigs) Non-existing config set. MainThread::DEBUG::2014-06-03 04:48:11,571::utils::683::root::(execCmd) '/sbin/ifdown eth0' (cwd None) MainThread::DEBUG::2014-06-03 04:48:11,636::utils::703::root::(execCmd) SUCCESS: <err> = ''; <rc> = 0 MainThread::ERROR::2014-06-03 04:48:11,637::utils::131::root::(rmFile) Removing file: /etc/sysconfig/network-scripts/ifcfg-eth0 failed Traceback (most recent call last): File "/usr/lib64/python2.6/site-packages/vdsm/utils.py", line 125, in rmFile os.unlink(fileToRemove) OSError: [Errno 16] Device or resource busy: '/etc/sysconfig/network-scripts/ifcfg-eth0' sourceRoute::DEBUG::2014-06-03 05:01:19,506::sourceroutethread::39::root::(process_IN_CLOSE_WRITE_filePath) Responding to DHCP response in /var/run/vdsm/sourceRoutes/1401771679
Douglas, do you have more of that supervdsm.log available? I'd like to understand what during which process this bug has occurred - we shouldn't modify rmFile, but the function that called it.
Created attachment 907956 [details] supervdsm.log
(In reply to Dan Kenigsberg from comment #1) > Douglas, do you have more of that supervdsm.log available? I'd like to > understand what during which process this bug has occurred - we shouldn't > modify rmFile, but the function that called it. Dan, please see the attachment.
I would rather make utils.py have: def _rmFile_ovirt_node(): """Checks if it is a persisted file and if so unpersists it""" def _rmFile(): """Removes a file""" if <is ovirt node>: rmFile = _rmFile_ovirt_node else: rmFile = _rmFile
(In reply to Antoni Segura Puimedon from comment #4) > I would rather make utils.py have: But most of the times that rmFile is called, the file is not persisted - even on the node. I think we should understand the failing flow, and unpersist the file specifically there, just like we do in vdsm/network/configurators/ifcfg's _removeFile() (actually the implementation there could be improved).
*** Bug 1115819 has been marked as a duplicate of this bug. ***
how to test this by using node connected to engine?
Hi Martin, (In reply to Martin Pavlik from comment #7) > how to test this by using node connected to engine? Try to register/approve host, if it gets UP, no issues. I found this error during registration/approval, the host never the UP and in supervdsm.log I saw: "OSError: [Errno 16] Device or resource busy: '/etc/sysconfig/network-scripts/ifcfg-eth0'" Please let me know if you need any additional info from my side.
I saw it when using the admin interface on the node. Try switching from dhcp to static ip and back again
Toni, might this be related to your heroic persistence changes?
No. IIRC, this had to do with vdsm not calling unpersist. But it was fixed already.
verified oVirt Node Hypervisor release 3.1.0_master (20140805.0) (Edited, Unsigned)[root@localhost admin]#
oVirt 3.5 has been released and should include the fix for this issue.