** Description changed:

+ [impact]
+ 
+ ldirectord's systemd service script contains commands to touch and
+ remove a file in the /var/lock/subsys directory; however, locks there
+ are a SysV service serialization thing, and are unneeded with systemd.
+ It's unclear why the ldirectord systemd service script contains the
+ lines, but they come from upstream so we should get it fixed there and
+ then correct debian and ubuntu.
+ 
+ this impacts users because if no /var/lock/subsys directory exists, the
+ systemd service will fail to start, which can impact installing or
+ upgrading the resource-agents package.
+ 
+ [test case]
+ 
+ remove the /var/lock/subsys directory and try to install or upgrade
+ ldirectord
+ 
+ [regression potential]
+ 
+ if something internal to resource-agents actually uses the old SysV-
+ style /var/lock/subsys lock, removing it could cause a regression.
+ However, it shouldn't, because the lock was for use only by SysV service
+ scripts.  Also, as we should fix this upstream first, they should know
+ if it is used for any other purpose, so if they accept the change it
+ should be safe.
+ 
+ [other info]
+ 
+ this is causing autopkgtest failures, especially on arm; but the failure
+ could happen on any arch.
+ 
+ original description:
+ 
+ --
+ 
  In autopkgtest like
  
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-disco-ci-train-ppa-service-3717/disco/armhf/r/resource-agents/20190508_124516_2b20c@/log.gz
  
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-disco-ci-train-ppa-service-3717/disco/armhf/r/resource-agents/20190507_202519_be056@/log.gz
  
https://objectstorage.prodstack4-5.canonical.com/v1/AUTH_77e2ada1e7a84929a74ba3b87153c0ac/autopkgtest-disco-ci-train-ppa-service-3717/disco/armhf/r/resource-agents/20190508_083654_2b20c@/log.gz
  
  This fails to install:
  Setting up ldirectord (1:4.2.0-1ubuntu1) ...
  Job for ldirectord.service failed because the control process exited with 
error code.
  See "systemctl status ldirectord.service" and "journalctl -xe" for details.
  invoke-rc.d: initscript ldirectord, action "start" failed.
  ● ldirectord.service - Monitor and administer real servers in a LVS cluster 
of load balanced virtual servers
-    Loaded: loaded (/lib/systemd/system/ldirectord.service; disabled; vendor 
preset: enabled)
-    Active: failed (Result: exit-code) since Wed 2019-05-08 12:20:10 UTC; 42ms 
ago
-      Docs: man:ldirectord(8)
-   Process: 779 ExecStart=/usr/sbin/ldirectord start (code=exited, 
status=0/SUCCESS)
-   Process: 783 ExecStartPost=/usr/bin/touch /var/lock/subsys/ldirectord 
(code=exited, status=1/FAILURE)
-   Process: 785 ExecStopPost=/bin/rm -f /var/lock/subsys/ldirectord 
(code=exited, status=0/SUCCESS)
-  Main PID: 781
-     Tasks: 1 (limit: 4915)
-    Memory: 14.1M
-    CGroup: /system.slice/ldirectord.service
-            └─781 /usr/bin/perl -w /usr/sbin/ldirectord start
+    Loaded: loaded (/lib/systemd/system/ldirectord.service; disabled; vendor 
preset: enabled)
+    Active: failed (Result: exit-code) since Wed 2019-05-08 12:20:10 UTC; 42ms 
ago
+      Docs: man:ldirectord(8)
+   Process: 779 ExecStart=/usr/sbin/ldirectord start (code=exited, 
status=0/SUCCESS)
+   Process: 783 ExecStartPost=/usr/bin/touch /var/lock/subsys/ldirectord 
(code=exited, status=1/FAILURE)
+   Process: 785 ExecStopPost=/bin/rm -f /var/lock/subsys/ldirectord 
(code=exited, status=0/SUCCESS)
+  Main PID: 781
+     Tasks: 1 (limit: 4915)
+    Memory: 14.1M
+    CGroup: /system.slice/ldirectord.service
+            └─781 /usr/bin/perl -w /usr/sbin/ldirectord start
  
  May 08 12:18:39 autopkgtest-lxd-einqza systemd[1]: Starting Monitor and 
administer real servers in a LVS cluster of load balanced virtual servers...
  May 08 12:18:39 autopkgtest-lxd-einqza systemd[1]: ldirectord.service: 
Supervising process 781 which is not our child. We'll most likely not notice 
when it exits.
  May 08 12:18:40 autopkgtest-lxd-einqza touch[783]: /usr/bin/touch: cannot 
touch '/var/lock/subsys/ldirectord': No such file or directory
  May 08 12:18:40 autopkgtest-lxd-einqza systemd[1]: ldirectord.service: 
Control process exited, code=exited, status=1/FAILURE
  May 08 12:20:10 autopkgtest-lxd-einqza systemd[1]: ldirectord.service: State 
'stop-post' timed out. Terminating.
  May 08 12:20:10 autopkgtest-lxd-einqza systemd[1]: ldirectord.service: Failed 
with result 'exit-code'.
  May 08 12:20:10 autopkgtest-lxd-einqza systemd[1]: Failed to start Monitor 
and administer real servers in a LVS cluster of load balanced virtual servers.
  
- 
  Of particular interest might be this line:
-  touch[783]: /usr/bin/touch: cannot touch '/var/lock/subsys/ldirectord': No 
such file or directory
- 
+  touch[783]: /usr/bin/touch: cannot touch '/var/lock/subsys/ldirectord': No 
such file or directory
  
  This runs in LXD, maybe a pathing or apparmor issue?
  
  I tried the same on a real armhf device and it works right away.
  (Thanks waveform to provide armhf raspi)

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

Title:
  ldirectord systemd service fails if no /var/lock/subsys dir

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/resource-agents/+bug/1828258/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to