Package: postfix
Version: 3.1.8-0+deb9u1

Debian: stretch

Hello,

While booting, the postfix systemd generator 
/lib/systemd/system-generators/postfix-instance-generator
does not create the necessary symlinks beneath 
/run/systemd/generator/postfix.service.wants/
instead it creates an invalid one. 

should be:

/run/systemd/generator/postfix.service.wants/postfix@-.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-100-3.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-104-2.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-149-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-154-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-179-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-180-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-181-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-183-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-186-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-195-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-196-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-197-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-198-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-199-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-200-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-201-1.service
/run/systemd/generator/postfix.service.wants/postfix@postfix-202-1.service

actually:

/run/systemd/generator/postfix.service.wants/postfix@-.service
/run/systemd/generator/postfix.service.wants/postfix@.service

Here the syslog:

Apr 18 15:29:27 mgw4-han systemd: 
/lib/systemd/system-generators/postfix-instance-generator failed with error 
code 1.
...
Apr 18 15:29:27 mgw4-han systemd[1]: Starting Raise network interfaces...
...
Apr 18 15:29:34 mgw4-han systemd[1]: postfix@postfix.service: Control process 
exited, code=exited status=1
Apr 18 15:29:34 mgw4-han systemd[1]: Failed to start Postfix Mail Transport 
Agent (instance postfix).
Apr 18 15:29:34 mgw4-han systemd[1]: postfix@postfix.service: Unit entered 
failed state.
Apr 18 15:29:34 mgw4-han systemd[1]: postfix@postfix.service: Failed with 
result 'exit-code'.
Apr 18 15:29:34 mgw4-han systemd[1]: Starting Postfix Mail Transport Agent...
Apr 18 15:29:34 mgw4-han systemd[1]: Started Postfix Mail Transport Agent.

After booting you can log in and call "systemctl daemon-reload"
and "systemctl start postfix" which works now properly:

Apr 18 16:05:24 mgw4-han systemd[1]: Reloading.
...
Apr 18 16:06:04 mgw4-han systemd[1]: Starting Postfix Mail Transport Agent 
(instance postfix-154-1)...
...
Apr 18 16:06:04 mgw4-han systemd[1]: Started Postfix Mail Transport Agent 
(instance postfix-154-1).

Adding following to postfix-instance-generator:

    for DIR in $(postconf -h multi_instance_directories); do
        echo "|$DIR|" > /dev/kmsg
        postconf -hc $DIR multi_instance_name > /dev/kmsg 2> /dev/kmsg
        echo "|$?|" > /dev/kmsg
    done

revealed:

[   15.837507] |/etc/postfix-100-3|
[   15.845184] postconf: fatal: parameter inet_interfaces: no local interface 
found for 194.95.232.41
[   16.845910] |1|

It's questionable if postconf should always check the config so thoroughly
or if it should present an option to switch on/off these checks, but currently
it's not useable at this early stage of systemd.

My suggestion for a quick fix is:

--- postfix-instance-generator.orig     2018-02-23 23:29:10.000000000 +0100
+++ postfix-instance-generator.new      2018-04-20 11:19:23.462322680 +0200
@@ -9,7 +9,7 @@
 
 ln -s "$SERVICEFILE" "$WANTDIR/postfix@-.service"
 for DIR in $(postconf -h multi_instance_directories); do
-    ln -s "$SERVICEFILE" "$WANTDIR/postfix@$(postconf -hc $DIR 
multi_instance_name).service"
+    ln -s "$SERVICEFILE" "$WANTDIR/postfix@$(postconf -o inet_interfaces= -hc 
$DIR multi_instance_name).service"
 done
 
 exit 0

Of course, an additional option in postconf would be 
the better solution.

Regards
Stefan

-- 
Stefan Anders                                DFN-Verein
Tel: +4971163314201                   Lindenspürstr. 32
Fax: +4971163314133                     70176 Stuttgart

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to