Public bug reported:

This repros on a clean and up-to-date 16.04.2, but not on ubuntu-artful-
daily-amd64-server-20170618, so it looks like this was fixed (possibly
upstream) sometime between 229-4ubuntu17 and 233-6ubuntu3.

Create the test files `/etc/systemd/system/test.service`:
```
[Unit]
Description=test service
After=syslog.target
After=sysinit.target

[Service]
ExecStart=/usr/local/bin/test
User=nobody

[Install]
WantedBy=sysinit.target
```
and `/usr/local/bin/test`:
```bash
#!/bin/sh

echo 'stdout msg'
echo 'stderr msg' 1>&2
# With the next line commented out, rarely see any journal output for the 
failed service (though it still gets forwarded to syslog every time).
# With the line uncommented, will usually see output, and only occasionally see 
partial output (1 out of the 2 lines) or no output at all.
#sleep 0.$RANDOM
exit 11
```
(and remember to `chmod a+x /usr/local/bin/test`).

Now as root try to start the service a few times.  It will always fail,
but the bug is that the `stdout msg` and `stderr msg` lines are absent
from the journal.  The expectation is that all lines output by the
failing service should be present - these lines are often critical for
diagnosing why the service has failed to start.  The lines do, however,
always get forwarded to syslog.

```
root@ip-172-31-6-192:~# cat /etc/systemd/system/test.service
[Unit]
Description=test service
After=syslog.target
After=sysinit.target

[Service]
ExecStart=/usr/local/bin/test
User=nobody

[Install]
WantedBy=sysinit.target

root@ip-172-31-6-192:~# cat /usr/local/bin/test
#!/bin/bash

echo 'stdout msg'
echo 'stderr msg' 1>&2
# With the next line commented out, rarely see any journal output for the 
failed service (though it still gets forwarded to syslog every time).
# With the line uncommented, will usually see output, and only occasionally see 
partial output (1 out of the 2 lines) or no output at all.
#sleep 0.$RANDOM
exit 11

root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:45:06 UTC; 1s ago
  Process: 23557 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23557 (code=exited, status=11)

Jul 18 00:45:06 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:45:06 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:45:06 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:45:06 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:45:09 UTC; 1s ago
  Process: 23565 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23565 (code=exited, status=11)

Jul 18 00:45:09 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:45:09 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:45:09 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:45:09 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:45:11 UTC; 1s ago
  Process: 23573 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23573 (code=exited, status=11)

Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~# tail /var/log/syslog
Jul 18 00:45:09 ip-172-31-6-192 test[23565]: stderr msg
Jul 18 00:45:09 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:45:09 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:45:09 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:45:11 ip-172-31-6-192 test[23573]: stdout msg
Jul 18 00:45:11 ip-172-31-6-192 test[23573]: stderr msg
Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:45:11 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~#
root@ip-172-31-6-192:~# vim /usr/local/bin/test
root@ip-172-31-6-192:~# cat /usr/local/bin/test
#!/bin/bash

echo 'stdout msg'
echo 'stderr msg' 1>&2
# With the next line commented out, rarely see any journal output for the 
failed service (though it still gets forwarded to syslog every time).
# With the line uncommented, will usually see output, and only occasionally see 
partial output (1 out of the 2 lines) or no output at all.
sleep 0.$RANDOM
exit 11

root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:46:51 UTC; 698ms 
ago
  Process: 23598 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23598 (code=exited, status=11)

Jul 18 00:46:50 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:46:50 ip-172-31-6-192 test[23598]: stdout msg
Jul 18 00:46:50 ip-172-31-6-192 test[23598]: stderr msg
Jul 18 00:46:51 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:46:51 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:46:51 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:46:52 UTC; 776ms 
ago
  Process: 23608 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23608 (code=exited, status=11)

Jul 18 00:46:52 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:46:52 ip-172-31-6-192 test[23608]: stdout msg
Jul 18 00:46:52 ip-172-31-6-192 test[23608]: stderr msg
Jul 18 00:46:52 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:46:52 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:46:52 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~#
```

The same steps on the Artful daily result in both lines of output every
time.

Additionally, if the `User=` directive is removed from the test.service
file (and `systemctl daemon-reload`), then the problem also goes away:

```
root@ip-172-31-6-192:~# vim /usr/local/bin/test
root@ip-172-31-6-192:~# vim /etc/systemd/system/test.service
root@ip-172-31-6-192:~# cat /etc/systemd/system/test.service
[Unit]
Description=test service
After=syslog.target
After=sysinit.target

[Service]
ExecStart=/usr/local/bin/test
#User=nobody

[Install]
WantedBy=sysinit.target

root@ip-172-31-6-192:~# cat /usr/local/bin/test
#!/bin/bash

echo 'stdout msg'
echo 'stderr msg' 1>&2
# With the next line commented out, rarely see any journal output for the 
failed service (though it still gets forwarded to syslog every time).
# With the line uncommented, will usually see output, and only occasionally see 
partial output (1 out of the 2 lines) or no output at all.
#sleep 0.$RANDOM
exit 11

root@ip-172-31-6-192:~# systemctl daemon-reload
root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:48:11 UTC; 1s ago
  Process: 23731 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23731 (code=exited, status=11)

Jul 18 00:48:11 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:48:11 ip-172-31-6-192 test[23731]: stdout msg
Jul 18 00:48:11 ip-172-31-6-192 test[23731]: stderr msg
Jul 18 00:48:11 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:48:11 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:48:11 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:48:13 UTC; 1s ago
  Process: 23739 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23739 (code=exited, status=11)

Jul 18 00:48:13 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:48:13 ip-172-31-6-192 test[23739]: stdout msg
Jul 18 00:48:13 ip-172-31-6-192 test[23739]: stderr msg
Jul 18 00:48:13 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:48:13 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:48:13 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:48:15 UTC; 1s ago
  Process: 23747 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23747 (code=exited, status=11)

Jul 18 00:48:15 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:48:15 ip-172-31-6-192 test[23747]: stdout msg
Jul 18 00:48:15 ip-172-31-6-192 test[23747]: stderr msg
Jul 18 00:48:15 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:48:15 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:48:15 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~# systemctl start test ; sleep 1 ; systemctl status test
● test.service - test service
   Loaded: loaded (/etc/systemd/system/test.service; disabled; vendor preset: 
enabled)
   Active: failed (Result: exit-code) since Tue 2017-07-18 00:48:16 UTC; 1s ago
  Process: 23755 ExecStart=/usr/local/bin/test (code=exited, status=11)
 Main PID: 23755 (code=exited, status=11)

Jul 18 00:48:16 ip-172-31-6-192 systemd[1]: Started test service.
Jul 18 00:48:16 ip-172-31-6-192 test[23755]: stdout msg
Jul 18 00:48:16 ip-172-31-6-192 test[23755]: stderr msg
Jul 18 00:48:16 ip-172-31-6-192 systemd[1]: test.service: Main process exited, 
code=exited, status=11/n/a
Jul 18 00:48:16 ip-172-31-6-192 systemd[1]: test.service: Unit entered failed 
state.
Jul 18 00:48:16 ip-172-31-6-192 systemd[1]: test.service: Failed with result 
'exit-code'.
root@ip-172-31-6-192:~#
```

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: systemd 229-4ubuntu17
ProcVersionSignature: User Name 4.4.0-1020.29-aws 4.4.67
Uname: Linux 4.4.0-1020-aws x86_64
ApportVersion: 2.20.1-0ubuntu2.9
Architecture: amd64
Date: Tue Jul 18 00:25:54 2017
Ec2AMI: ami-e94e5e8a
Ec2AMIManifest: (unknown)
Ec2AvailabilityZone: ap-southeast-2b
Ec2InstanceType: t2.micro
Ec2Kernel: unavailable
Ec2Ramdisk: unavailable
Lsusb: Error: command ['lsusb'] failed with exit code 1:
MachineType: Xen HVM domU
ProcEnviron:
 TERM=xterm-256color
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1020-aws 
root=LABEL=cloudimg-rootfs ro console=tty1 console=ttyS0
SourcePackage: systemd
SystemdDelta:
 [EXTENDED]   /lib/systemd/system/rc-local.service → 
/lib/systemd/system/rc-local.service.d/debian.conf
 [EXTENDED]   /lib/systemd/system/systemd-timesyncd.service → 
/lib/systemd/system/systemd-timesyncd.service.d/disable-with-time-daemon.conf
 [MASKED]     /etc/udev/rules.d/60-cdrom_id.rules → 
/lib/udev/rules.d/60-cdrom_id.rules
 
 3 overridden configuration files found.
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 02/16/2017
dmi.bios.vendor: Xen
dmi.bios.version: 4.2.amazon
dmi.chassis.type: 1
dmi.chassis.vendor: Xen
dmi.modalias: 
dmi:bvnXen:bvr4.2.amazon:bd02/16/2017:svnXen:pnHVMdomU:pvr4.2.amazon:cvnXen:ct1:cvr:
dmi.product.name: HVM domU
dmi.product.version: 4.2.amazon
dmi.sys.vendor: Xen

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: New


** Tags: amd64 apport-bug ec2-images xenial

-- 
You received this bug notification because you are a member of Ubuntu
Desktop Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1704895

Title:
  service output sometimes missing when "User=" used

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1704895/+subscriptions

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to