Browse code

Run swift-container-sync under run_process

All the evidence from [1] suggests that on opensuse swift-init is not
detaching the daemon process correctly. It's possible there's a pipe
still in play that somehow holds our ansible-streamer open.

This is a minimal fix to avoid swift-init. Although it's possible in
non-default paths to still use swift-init (and hence possibly hit
another variant of this issue), after discussions with swift
developers it was decided the intersection of tests running under our
current ansible, on suse, that would enable these services is
sufficiently small that this is the best course for now.

[1] https://storyboard.openstack.org/#!/story/2001528

Change-Id: I1b68c08c07cf6653ea58506f738cbe0054b38f3a

Ian Wienand authored on 2018/02/09 10:49:22
Showing 1 changed files
... ...
@@ -827,7 +827,8 @@ function start_swift {
827 827
         else
828 828
             # The container-sync daemon is strictly needed to pass the container
829 829
             # sync Tempest tests.
830
-            swift-init --run-dir=${SWIFT_DATA_DIR}/run container-sync start
830
+            enable_service s-container-sync
831
+            run_process s-container-sync "$SWIFT_BIN_DIR/swift-container-sync ${SWIFT_CONF_DIR}/container-server/1.conf"
831 832
         fi
832 833
     else
833 834
         swift-init --run-dir=${SWIFT_DATA_DIR}/run all restart || true