From 54c3c7ec24fd9f63ec5b72ad3792e55ab0f9003b Mon Sep 17 00:00:00 2001 From: Jonathan Rajotte Date: Wed, 5 May 2021 14:06:31 -0400 Subject: [PATCH] lttng-tools: executable cannot traverse root directory The test_ust_notifier_discarded_count_multi_uid tests from lttng-tools required that an instrumented application launched under a temporary user be able to access lttng-ust libs in DEPS_LIBS. Since the dependancy are not installed globally and that root owned directory are not traversable by default, the apps fail to find liblttng-ust due to permission setting. To alleviate this for our CI, simply set the a+x bit on all leading directly to DEPS_LIBS. This is acceptable under our CI since and the root jobs since we always reset the work state to a known good state. Signed-off-by: Jonathan Rajotte --- scripts/lttng-tools/build.sh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/scripts/lttng-tools/build.sh b/scripts/lttng-tools/build.sh index 017beb9..84f12a2 100755 --- a/scripts/lttng-tools/build.sh +++ b/scripts/lttng-tools/build.sh @@ -82,6 +82,24 @@ failed_configure() { exit 1 } +set_execute_traversal_bit() +{ + path=$1 + + level="$path" + if [ ! -d "$path" ]; then + fail "Path is not a directory" + fi + while level="$(dirname "$level")" + do + if [ "$level" = / ]; then + break + fi + chmod a+x "$level" + done + chmod a+x "$path" +} + # Required variables WORKSPACE=${WORKSPACE:-} @@ -449,6 +467,12 @@ if [ "$RUN_TESTS" = "yes" ] && [ "$conf" != "no-ust" ]; then # CI and root jobs since we always run root tests against a `snapshot` # of the host. if [ "$(id -u)" == "0" ]; then + # Allow the traversal of all directories leading to the + # DEPS_LIBS directory to enable test app run by temp users to + # access lttng-ust. + set_execute_traversal_bit "$DEPS_LIB" + # Allow `all` to interact with all deps libs. + chmod a+rwx -R "$DEPS_LIB" export LTTNG_ENABLE_DESTRUCTIVE_TESTS="will-break-my-system" fi make --keep-going check || failed_tests=1 -- 2.34.1