Univention Bugzilla – Bug 39677
cron: NUMBER OF HARD LINKS > 1
Last modified: 2016-08-03 15:56:32 CEST
I see the following log messages in a Docker App: root@dudle-docker-1446164292151882:/# tail -n 20 /var/log/syslog Oct 30 00:39:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-updater) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-updater) Oct 30 00:39:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-pam) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-pam) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*) NUMBER OF HARD LINKS > 1 (/etc/crontab) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-mail-postfix) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-mail-postfix) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-ucr-cronjobs) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-ucr-cronjobs) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-config-registry-backup) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-config-registry-backup) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-ssl) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-ssl) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-server-member) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-server-member) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-updater-check) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-updater-check) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-updater) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-updater) Oct 30 00:40:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-pam) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-pam) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*) NUMBER OF HARD LINKS > 1 (/etc/crontab) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-mail-postfix) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-mail-postfix) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-ucr-cronjobs) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-ucr-cronjobs) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-config-registry-backup) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-config-registry-backup) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-ssl) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-ssl) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-server-member) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-server-member) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-updater-check) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-updater-check) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-updater) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-updater) Oct 30 00:41:01 dudle-docker-1446164292151882 /usr/sbin/cron[1614]: (*system*univention-pam) NUMBER OF HARD LINKS > 1 (/etc/cron.d/univention-pam) root@dudle-docker-1446164292151882:/#
Looks like a conflict of ISC cron with overlayfs
This blocks the auto upgrade of the packages in the docker container. During the upgrade the existing docker container must be fixed as well. My workaround was running the following command in the docker container: touch /etc/crontab /etc/cron.d/*
I've added preinit.d/fix-cron-hardlinks to the package which gets installed as /etc/univention/docker/preinit.d/fix-cron-hardlinks into the container. It's run from during package update via postinst. It's also run from /sbin/init during boot to fix this also in newly created containers. Just for the record, I could also have checked hardlinked_cron_d_files=$(find /etc/cron.daily/ \ -type f -not -name ".*" -links +1 2>/dev/null) to decide if a touch is necessary at all, but I didn't do it.
When installed, cron works. Container gets updated around 1AM. YAML OK VERIFIED
<http://errata.software-univention.de/ucs/4.1/227.html>