osmith has submitted this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/41862?usp=email )
Change subject: bts: testenv: check ulimit -r in prepare= ......................................................................
bts: testenv: check ulimit -r in prepare=
Don't respawning over and over again if osmo-bts-trx fails to start up because the user isn't allowed to set the rtpriority. Show instructions for fixing it instead.
Change-Id: I7bc1414f95e4a54a40eb7c6f7b3d6c83ce3500c6 --- M _testenv/README.md A _testenv/data/scripts/require_ulimit_r.sh M _testenv/testenv/podman.py M bts/testenv_generic.cfg M bts/testenv_hopping.cfg M bts/testenv_oml.cfg 6 files changed, 31 insertions(+), 1 deletion(-)
Approvals: Jenkins Builder: Verified fixeria: Looks good to me, approved pespin: Looks good to me, but someone else must approve
diff --git a/_testenv/README.md b/_testenv/README.md index b62295e..a973b25 100644 --- a/_testenv/README.md +++ b/_testenv/README.md @@ -272,6 +272,11 @@ * `TERM`: Is set to the same `TERM` passed to testenv with fallback to `dumb`.
+* `HOST_USER`: + When running in podman (`--podman`), this variable is set to the user that is + running podman. This is used in `_testenv/data/scripts/require_ulimit_r.sh` + to display a hint for setting the rtprio limit for this user. + ## Eclipse-titan versions
It is possible to change the eclipse-titan version that is used to build and diff --git a/_testenv/data/scripts/require_ulimit_r.sh b/_testenv/data/scripts/require_ulimit_r.sh new file mode 100755 index 0000000..eb4e0e2 --- /dev/null +++ b/_testenv/data/scripts/require_ulimit_r.sh @@ -0,0 +1,21 @@ +#!/bin/sh +MIN=$1 + +if [ -z "$MIN" ]; then + echo "usage: require_ulimit_r.sh MIN" + exit 1 +fi + +if [ -z "$USER" ]; then + USER="$HOST_USER" +fi + +if [ $(ulimit -r) -lt $MIN ]; then + echo + echo "====================================================" + echo "Allow your user to set rtprio, logout and try again:" + echo "$ echo '$USER - rtprio $MIN' | sudo tee '/etc/security/limits.d/$USER-allow-rtprio.conf'" + echo "====================================================" + echo + exit 1 +fi diff --git a/_testenv/testenv/podman.py b/_testenv/testenv/podman.py index 2013699..79fc5b9 100644 --- a/_testenv/testenv/podman.py +++ b/_testenv/testenv/podman.py @@ -244,6 +244,8 @@ "net.ipv4.conf.default.send_redirects=0", # OS#6575 "-e", "PODMAN=1", + "-e", + f"HOST_USER={os.getenv('USER')}", ]
if testenv.args.binary_repo: diff --git a/bts/testenv_generic.cfg b/bts/testenv_generic.cfg index e04f89c..3b4a7f1 100644 --- a/bts/testenv_generic.cfg +++ b/bts/testenv_generic.cfg @@ -20,6 +20,7 @@ package=osmocom-bb-trxcon
[bts] +prepare=require_ulimit_r.sh 30 program=respawn.sh osmo-bts-trx make=osmo-bts package=osmo-bts diff --git a/bts/testenv_hopping.cfg b/bts/testenv_hopping.cfg index 9426457..3e1e1c9 100644 --- a/bts/testenv_hopping.cfg +++ b/bts/testenv_hopping.cfg @@ -23,6 +23,7 @@ package=osmocom-bb-trxcon
[bts] +prepare=require_ulimit_r.sh 30 program=respawn.sh osmo-bts-trx make=osmo-bts package=osmo-bts diff --git a/bts/testenv_oml.cfg b/bts/testenv_oml.cfg index b1268c6..1921536 100644 --- a/bts/testenv_oml.cfg +++ b/bts/testenv_oml.cfg @@ -14,7 +14,7 @@ package=osmocom-bb-trxcon
[bts] -prepare=osmo-config-merge osmo-bts.cfg osmo-bts-oml.confmerge > osmo-bts-oml.cfg +prepare=osmo-config-merge osmo-bts.cfg osmo-bts-oml.confmerge > osmo-bts-oml.cfg && require_ulimit_r.sh 30 program=osmo-bts-trx -c osmo-bts-oml.cfg make=osmo-bts package=osmo-bts-trx libosmocore-utils