#796585: aoetools: Has init script in runlevel S but no matching service file
Christian Hofstaedtler
zeha at debian.org
Mon Jul 4 18:41:38 BST 2016
Hi,
I'm attaching a debdiff of something that -works-, but causes a
60sec wait for AoE mount points listed in fstab (with
defaults,_netdev).
I think the wait would go away if aoe-discover would be started
immediately after network.target is up and the aoe kernel module has
been inserted, but unfortunately even with the configured udev rule
and DefaultDependencies=no, aoe-discover.service does not
start early enough in my testing.
Debugging help, hints, etc. would be appreciated.
--
,''`. Christian Hofstaedtler <zeha at debian.org>
: :' : Debian Developer
`. `' 7D1A CFFA D9E0 806C 9C4C D392 5C13 D6DB 9305 2E03
`-
-------------- next part --------------
diff -Nru aoetools-36/debian/60-aoe.rules aoetools-36/debian/60-aoe.rules
--- aoetools-36/debian/60-aoe.rules 1970-01-01 01:00:00.000000000 +0100
+++ aoetools-36/debian/60-aoe.rules 2016-07-04 17:05:48.000000000 +0200
@@ -0,0 +1,11 @@
+# These rules tell udev what device nodes to create for aoe support.
+
+# aoe char devices
+SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k", GROUP="disk", MODE="0220"
+SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k", GROUP="disk", MODE="0440"
+SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k", GROUP="disk", MODE="0220"
+SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k", GROUP="disk", MODE="0220"
+SUBSYSTEM=="aoe", KERNEL=="flush", NAME="etherd/%k", GROUP="disk", MODE="0220"
+
+# run discover once the module is loaded
+SUBSYSTEM=="aoe", KERNEL=="discover", ACTION=="add", TAG+="systemd", ENV{SYSTEMD_WANTS}+="aoe-discover.service"
diff -Nru aoetools-36/debian/aoetools.aoe-discover.service aoetools-36/debian/aoetools.aoe-discover.service
--- aoetools-36/debian/aoetools.aoe-discover.service 1970-01-01 01:00:00.000000000 +0100
+++ aoetools-36/debian/aoetools.aoe-discover.service 2016-07-04 19:36:57.000000000 +0200
@@ -0,0 +1,11 @@
+[Unit]
+Description=ATA over Ethernet discovery
+After=network.target
+BindsTo=sys-devices-virtual-aoe-discover.device
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=network.target
+
+[Service]
+Type=oneshot
+ExecStart=/sbin/aoe-discover
diff -Nru aoetools-36/debian/aoetools.default aoetools-36/debian/aoetools.default
--- aoetools-36/debian/aoetools.default 2014-01-17 22:21:51.000000000 +0100
+++ aoetools-36/debian/aoetools.default 2016-07-04 16:16:48.000000000 +0200
@@ -1,5 +1,9 @@
# Configuration file for aoetools.
+## NOTE: This file is NOT READ under systemd.
+## If you need to restrict the used interfaces, please read /usr/lib/modules-load.d/aoetools.conf
+## Filesystems can be mounted using /etc/fstab.
+
# Enter the list of network interfaces to restrict the AoE discovery to, separated by spaces.
# It can be blank, i.e. "", if you want to run AoE over all the interfaces.
# If you do not want AoE discovery at all, enter "none" as the list of interfaces.
diff -Nru aoetools-36/debian/aoetools.install aoetools-36/debian/aoetools.install
--- aoetools-36/debian/aoetools.install 1970-01-01 01:00:00.000000000 +0100
+++ aoetools-36/debian/aoetools.install 2016-07-04 16:57:08.000000000 +0200
@@ -0,0 +1,2 @@
+debian/modules-load.d/aoetools.conf /usr/lib/modules-load.d/
+debian/60-aoe.rules /lib/udev/rules.d/
diff -Nru aoetools-36/debian/aoetools.links aoetools-36/debian/aoetools.links
--- aoetools-36/debian/aoetools.links 1970-01-01 01:00:00.000000000 +0100
+++ aoetools-36/debian/aoetools.links 2016-07-04 16:13:30.000000000 +0200
@@ -0,0 +1 @@
+dev/null lib/systemd/system/aoetools.service
diff -Nru aoetools-36/debian/aoetools.postinst aoetools-36/debian/aoetools.postinst
--- aoetools-36/debian/aoetools.postinst 1970-01-01 01:00:00.000000000 +0100
+++ aoetools-36/debian/aoetools.postinst 2016-07-04 16:51:05.000000000 +0200
@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+configure)
+ if which udevadm >/dev/null; then
+ udevadm control --reload || true
+ fi
+ # load the kernel module (as opposed to letting the init script do it)
+ if [ -d /run/systemd/system ] ; then
+ /lib/systemd/systemd-modules-load aoetools.conf
+ fi
+ ;;
+abort-upgrade|abort-remove|abort-deconfigure)
+ ;;
+*)
+ echo "postinst called with unknown argument '$1'"
+ exit 1
+ ;;
+esac
+
+#DEBHELPER#
+exit 0
diff -Nru aoetools-36/debian/changelog aoetools-36/debian/changelog
--- aoetools-36/debian/changelog 2014-01-17 23:15:21.000000000 +0100
+++ aoetools-36/debian/changelog 2016-07-04 19:31:02.000000000 +0200
@@ -1,3 +1,10 @@
+aoetools (36-1.1) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Install native systemd units. (Closes: #796585)
+
+ -- Christian Hofstaedtler <zeha at debian.org> Mon, 04 Jul 2016 19:29:07 +0200
+
aoetools (36-1) unstable; urgency=low
* New upstream release, released on 2013-08-07. Changes since the last one:
diff -Nru aoetools-36/debian/control aoetools-36/debian/control
--- aoetools-36/debian/control 2014-01-15 11:50:14.000000000 +0100
+++ aoetools-36/debian/control 2016-07-04 16:11:40.000000000 +0200
@@ -4,7 +4,7 @@
Maintainer: David Martínez Moreno <ender at debian.org>
Standards-Version: 3.9.5
Homepage: http://aoetools.sf.net
-Build-Depends: debhelper (>> 9)
+Build-Depends: debhelper (>> 9), dh-systemd
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/aoetools.git
Vcs-Git: git://anonscm.debian.org/collab-maint/aoetools.git
diff -Nru aoetools-36/debian/modules-load.d/aoetools.conf aoetools-36/debian/modules-load.d/aoetools.conf
--- aoetools-36/debian/modules-load.d/aoetools.conf 1970-01-01 01:00:00.000000000 +0100
+++ aoetools-36/debian/modules-load.d/aoetools.conf 2016-07-04 15:58:20.000000000 +0200
@@ -0,0 +1,6 @@
+## If you need to restrict the interfaces aoe will use, copy this
+## file to /etc/modules-load.d/ and use this example:
+# aoe aoe_iflist="eth0,eth1"
+
+## Load aoe driver with no interface restriction:
+aoe
diff -Nru aoetools-36/debian/NEWS.Debian aoetools-36/debian/NEWS.Debian
--- aoetools-36/debian/NEWS.Debian 1970-01-01 01:00:00.000000000 +0100
+++ aoetools-36/debian/NEWS.Debian 2016-07-04 16:16:24.000000000 +0200
@@ -0,0 +1,9 @@
+aoetools (36-1.1) unstable; urgency=medium
+
+ * When run under systemd, the init script is no longer executed.
+ If you previously have restricted the used network interfaces,
+ please look at /usr/lib/modules-load.d/aoetools.conf on how to
+ upgrade this configuration.
+ As a new default, all network interfaces are used.
+
+ -- Christian Hofstaedtler <zeha at debian.org> Mon, 4 Jul 2016 16:01:00 +0200
diff -Nru aoetools-36/debian/rules aoetools-36/debian/rules
--- aoetools-36/debian/rules 2014-01-15 11:50:14.000000000 +0100
+++ aoetools-36/debian/rules 2016-07-04 16:58:04.000000000 +0200
@@ -4,7 +4,7 @@
# export DH_VERBOSE=1
%:
- dh $@
+ dh $@ --with systemd
override_dh_auto_install:
$(MAKE) install PREFIX=debian/aoetools SBINDIR=debian/aoetools/sbin
@@ -16,3 +16,4 @@
override_dh_installinit:
dh_installinit --no-restart-on-upgrade -u"start 41 S . start 34 0 6 ."
+ dh_installinit --no-start --name=aoe-discover
More information about the Pkg-systemd-maintainers
mailing list