Red Hat Bugzilla – Bug 1031557
/etc/exports is removed on cleanup
Last modified: 2014-01-21 17:33:00 EST
Description of problem:
If engine-setup changed /etc/exports (to add an iso domain), engine-cleanup will remove it.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Make sure you do not have /etc/exports.d and do have /etc/exports
/etc/exports is removed
/etc/exports should not be removed. Ideally it should probably have the same content it had before engine-setup.
On recent fedora, there is /etc/exports.d, and engine-setup adds a file there, and cleanup removes it. Still, if /etc/exports.d is removed and /etc/exports is used instead, the bug applies. el6 does not support /etc/exports.d so it always applies there.
patch merged on upstream master and 3.3 branches
After discussing this with Sefi who failed to reproduce, I think the bug actually affects only fedora, or, for that matter, systems with /etc/exports.d .
I think (but did not try to reproduce) that a scenario that can reproduce is:
Do not have /etc/exports.d
Do not have /var/lib/exports/iso*
engine-setup, configure iso domain
rm -rf /var/lib/exports/iso (if not deleted by cleanup)
This leaves /etc/exports with /var/lib/exports/iso
This deletes /var/lib/exports/iso from /etc/exports and adds it to a file under /etc/exports.d .
This is done in the function _delete_path, which prior to http://gerrit.ovirt.org/20715 did not mark the file to be unremovable.
This will delete /etc/exports.
It might have happened to me with a somewhat less complex scenario, involving a 3.2 setup (which edited /etc/exports) and upgrade to 3.3 or something like that.
I did not manage to find clear backups that show how it happened, although I am definitely certain it did happen :-)
In any case, it's quite unlikely to happen on a clean el6 machine, and also not very likely on fedora.
Still, the fix is trivial - it literally just marks the file unremovable, so that engine-cleanup will not delete the file, in a certain flow that otherwise could have deleted it - and I think we can leave it in even if reproduction is complex.
Verified on RHEL6.5, RHEVM 3.3 IS23 and IS24.2.
Bug will be cloned to upstream for testing on Fedora.
Closing - RHEV 3.3 Released