Univention Bugzilla – Bug 44924
duplicate services in init scripts can cause update to UCS 4.2 to fail
Last modified: 2018-06-27 13:03:44 CEST
This series of patches are not present in UCS 4.2; The relevant patches seem to have been dropped for UCS 4.2 This caused an update failure in at least one case, where an additional postfix init script file with the ending ".debian" existed. The postfix.postinst then failed: # updater.log insserv: script postfix: service mail-transport-agent already provided! The update failed, as some packages could not be configured as a consequence: Fehler traten auf beim Bearbeiten von: postfix postfix-ldap univention-mail-postfix univention-maintenance univention-role-server-common univention-bind univention-server-slave bsd-mailx univention-bind-proxy univention-mail-postfix-forward As a workaround, if the system is in the state, is to install the old sysv-rc package. The remaining packages are then configured, and the update to 4.2 can be started again: # apt-get install sysv-rc=2.88dsf-41.43.201408220944 +++ This bug was initially created as a clone of Bug #35651 +++ +++ This bug was initially created as a clone of Bug #22566 +++ +++ This bug was initially created as a clone of Bug #22507 +++ For UCS-4 insserv should be disabled by default. Diverted .debian files by UCR should be ignored.
Actually, two log lines are relevant: insserv: script postfix: service mail-transport-agent already provided! insserv: exiting now!
At ticket 2017070321000483 the error seems to be, that an old exim4 init script was present. Purging the exim packages resolved the issue. We could check for that in preup.sh
This will probably be detected by the changes from Bug #44915 *** This bug has been marked as a duplicate of bug 44915 ***
Created attachment 9060 [details] exim4 Created attachment 9058 [details] exim4 Reproducible with: * UCS 4.1- copy the exim4 init script to /etc/init.d/ * insserv -n returns 0 * start update to 4.2 * postfix will fail (although the new "insserv" -n returns 0, insserv -n postfix fails, and this is what update-rc.d postfix defaults calls, and this is started in postfix.postinst during the update)
Add a check for "service .* already provided" in the insserv -n output in the 4.2-0 preup.sh (similar to the check for Bug #44915) -> insserv -n 2>&1 | grep 'service .* already provided!'
Bug #44924: Extend preup checks to detect duplicate or obsolete init scripts r81479
OK, works, please copy to extern, so i can re-check
Published
OK, works
Is already published.
ucs-3.0/ucs@26878 only used "update-rc.d -f univention-bind *disable*", which only removes the /etc/rc?.d/S* links, but leaves behind/creates the /etc/rc?.d/K* links. During the update from UCS-4.1 to UCS-4.2 the preup.sh updater scripts calls "insserv -n", which then detects multiple init scripts providing "bind9" and aborts the upgrade. > WARNING: bind9 is provided by multiple scripts in /etc/init.d/ > Aborting, because the update would likely fail. Removing those symbolic links fixes the problem: update-rc.d -f univention-bind remove update-rc.d -f univention-bind-proxy remove