<p>osmith has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/docker-playground/+/14781">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">debian-repo-install-test: run systemd services<br><br>Run systemd services of Osmocom programs, to check if any are not<br>starting properly. Use a whitelist to determine which services must<br>start up, because some are currently broken.<br><br>Modify the docker run command to support changing the CPU scheduling<br>policy/priority in systemd service files (used by osmo-bts).<br><br>Related: OS#3369<br>Change-Id: Ie6385f85560fefa7e7c9dca72cb5e2e914d4507a<br>---<br>M debian-repo-install-test/jenkins.sh<br>M debian-repo-install-test/testdata/repo-install-test.sh<br>2 files changed, 58 insertions(+), 1 deletion(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/docker-playground refs/changes/81/14781/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/debian-repo-install-test/jenkins.sh b/debian-repo-install-test/jenkins.sh</span><br><span>index 909aa1f..647d66b 100755</span><br><span>--- a/debian-repo-install-test/jenkins.sh</span><br><span>+++ b/debian-repo-install-test/jenkins.sh</span><br><span>@@ -11,7 +11,9 @@</span><br><span> fi</span><br><span> </span><br><span> # Run the container</span><br><span style="color: hsl(0, 100%, 40%);">-# Note that this does not output anything. For debugging, add -it and remove &.</span><br><span style="color: hsl(120, 100%, 40%);">+# * This does not output anything, for debugging add -it and remove &.</span><br><span style="color: hsl(120, 100%, 40%);">+# * /run, /tmp, cgroups, SYS_ADMIN: needed for systemd</span><br><span style="color: hsl(120, 100%, 40%);">+# * SYS_NICE: needed for changing CPUScheduling{Policy,Priority} (osmo-bts systemd service files)</span><br><span> docker run        --rm \</span><br><span>               -v "$PWD/testdata:/testdata:ro" \</span><br><span>          -v "$VOL_BASE_DIR:/data" \</span><br><span>@@ -22,6 +24,7 @@</span><br><span>             --tmpfs /tmp \</span><br><span>               -v /sys/fs/cgroup:/sys/fs/cgroup:ro \</span><br><span>                --cap-add SYS_ADMIN \</span><br><span style="color: hsl(120, 100%, 40%);">+         --cap-add SYS_NICE \</span><br><span>                 "$REPO_USER/debian-stretch-systemd" \</span><br><span>              /lib/systemd/systemd &</span><br><span> sleep 1</span><br><span>diff --git a/debian-repo-install-test/testdata/repo-install-test.sh b/debian-repo-install-test/testdata/repo-install-test.sh</span><br><span>index 38a982f..bbd2352 100755</span><br><span>--- a/debian-repo-install-test/testdata/repo-install-test.sh</span><br><span>+++ b/debian-repo-install-test/testdata/repo-install-test.sh</span><br><span>@@ -1,5 +1,29 @@</span><br><span> #!/bin/sh -ex</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+# Systemd services that must start up successfully after installing all packages (OS#3369)</span><br><span style="color: hsl(120, 100%, 40%);">+# Disabled services:</span><br><span style="color: hsl(120, 100%, 40%);">+# * osmo-ctrl2cgi (missing config: /etc/osmocom/ctrl2cgi.ini)</span><br><span style="color: hsl(120, 100%, 40%);">+# * osmo-trap2cgi (missing config: /etc/osmocom/%N.ini)</span><br><span style="color: hsl(120, 100%, 40%);">+# * osmo-sgsn (port 2123 already used by osmo-ggsn)</span><br><span style="color: hsl(120, 100%, 40%);">+# * osmo-pcu (expects missing /tmp/pcu_bts socket)</span><br><span style="color: hsl(120, 100%, 40%);">+# * osmo-hnbgw (tries to listen on 10.23.24.1)</span><br><span style="color: hsl(120, 100%, 40%);">+# * osmo-bts-virtual (unit_id is not matching osmo-bsc's config)</span><br><span style="color: hsl(120, 100%, 40%);">+SERVICES="</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo-bsc</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo-gbproxy</span><br><span style="color: hsl(120, 100%, 40%);">+  osmo-ggsn</span><br><span style="color: hsl(120, 100%, 40%);">+     osmo-gtphub</span><br><span style="color: hsl(120, 100%, 40%);">+   osmo-hlr</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo-mgw</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo-msc</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo-pcap-server</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo-pcap-client</span><br><span style="color: hsl(120, 100%, 40%);">+      osmo-sip-connector</span><br><span style="color: hsl(120, 100%, 40%);">+    osmo-stp</span><br><span style="color: hsl(120, 100%, 40%);">+"</span><br><span style="color: hsl(120, 100%, 40%);">+# Services working in nightly, but not yet in latest</span><br><span style="color: hsl(120, 100%, 40%);">+SERVICES_NIGHTLY=""</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> HTTP="http://download.opensuse.org/repositories/network:/osmocom:/$FEED/Debian_9.0/"</span><br><span> OBS="obs://build.opensuse.org/network:osmocom:$FEED/Debian_9.0"</span><br><span> </span><br><span>@@ -80,7 +104,37 @@</span><br><span>             osmo-trx-usrp1</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+services_check() {</span><br><span style="color: hsl(120, 100%, 40%);">+   local service</span><br><span style="color: hsl(120, 100%, 40%);">+ local services_feed="$SERVICES"</span><br><span style="color: hsl(120, 100%, 40%);">+     local failed=""</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   if [ "$FEED" = "nightly" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+          services_feed="$services_feed $SERVICES_NIGHTLY"</span><br><span style="color: hsl(120, 100%, 40%);">+    fi</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  systemctl start $services_feed</span><br><span style="color: hsl(120, 100%, 40%);">+        sleep 2</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+     for service in $services_feed; do</span><br><span style="color: hsl(120, 100%, 40%);">+             if ! systemctl --no-pager -l status $service; then</span><br><span style="color: hsl(120, 100%, 40%);">+                    failed="$failed $service"</span><br><span style="color: hsl(120, 100%, 40%);">+           fi</span><br><span style="color: hsl(120, 100%, 40%);">+    done</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        systemctl stop $services_feed</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       if [ -n "$failed" ]; then</span><br><span style="color: hsl(120, 100%, 40%);">+           set +x</span><br><span style="color: hsl(120, 100%, 40%);">+                echo</span><br><span style="color: hsl(120, 100%, 40%);">+          echo "ERROR: services failed to start: $failed"</span><br><span style="color: hsl(120, 100%, 40%);">+             echo</span><br><span style="color: hsl(120, 100%, 40%);">+          exit 1</span><br><span style="color: hsl(120, 100%, 40%);">+        fi</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> check_env</span><br><span> configure_osmocom_repo</span><br><span> install_repo_packages</span><br><span> test_binaries</span><br><span style="color: hsl(120, 100%, 40%);">+services_check</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/docker-playground/+/14781">change 14781</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/docker-playground/+/14781"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: docker-playground </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Ie6385f85560fefa7e7c9dca72cb5e2e914d4507a </div>
<div style="display:none"> Gerrit-Change-Number: 14781 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: osmith <osmith@sysmocom.de> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>