X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=tests%2Fstress%2Ftest_multi_sessions_per_uid_5app_streaming_kill_relayd;h=9cb664d5b13278e3670063650b69d313898e711e;hp=1b1cf56bdca9684d8adc77eff93151b23c07c4eb;hb=HEAD;hpb=e563bbdb8fa6592790e9ac4e9db7d9decf022023 diff --git a/tests/stress/test_multi_sessions_per_uid_5app_streaming_kill_relayd b/tests/stress/test_multi_sessions_per_uid_5app_streaming_kill_relayd index 1b1cf56bd..3d5da8f84 100755 --- a/tests/stress/test_multi_sessions_per_uid_5app_streaming_kill_relayd +++ b/tests/stress/test_multi_sessions_per_uid_5app_streaming_kill_relayd @@ -1,17 +1,12 @@ #!/bin/bash # -# Copyright (C) - 2013 David Goulet +# Copyright (C) 2013 David Goulet # -# This library is free software; you can redistribute it and/or modify it under -# the terms of the GNU Lesser General Public License as published by the Free -# Software Foundation; version 2.1 of the License. details. +# SPDX-License-Identifier: LGPL-2.1-only # -# You should have received a copy of the GNU Lesser General Public License -# along with this library; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -CURDIR=$(dirname $0)/ -TESTDIR=$CURDIR/.. +CURDIR=$(dirname "$0")/ +TESTDIR="$CURDIR/.." LAUNCH_APP="launch_ust_app" KILL_RELAYD_HELPER="kill_relayd" SESSION_NAME="stress" @@ -24,41 +19,34 @@ NR_SESSION=5 NR_LOOP=100000 COREDUMP_FILE=$(cat /proc/sys/kernel/core_pattern) NUM_TESTS=16 -APPS_PID= +APP_PIDS=() TEST_DESC="Stress test - $NR_SESSION sessions per UID streaming with $NR_APP apps. The relayd is killed sporadically" -source $TESTDIR/utils/utils.sh +# shellcheck source-path=SCRIPTDIR/../ +source "$TESTDIR/utils/utils.sh" # MUST set TESTDIR before calling those functions function enable_channel_per_uid() { - local sess_name=$1 - local channel_name=$2 + local sess_name=$1 + local channel_name=$2 - $TESTDIR/../src/bin/lttng/$LTTNG_BIN enable-channel --buffers-uid -u $channel_name -s $sess_name >/dev/null 2>&1 - ok $? "Enable channel $channel_name per UID for session $sess_name" -} - -function lttng_create_session_uri -{ - local name=$1 - - # Create session with default path - $TESTDIR/../src/bin/lttng/$LTTNG_BIN create $name -U net://localhost >/dev/null 2>&1 - ok $? "Create session on net://localhost" + "$TESTDIR/../src/bin/lttng/$LTTNG_BIN" enable-channel --buffers-uid -u "$channel_name" -s "$sess_name" >/dev/null 2>&1 + ok $? "Enable channel $channel_name per UID for session $sess_name" } function check_sessiond() { - if [ -z "$(pidof lt-lttng-sessiond)" ]; then - local str_date=$(date +%H%M%S-%d%m%Y) + local str_date + if [ -z "$(lttng_pgrep lttng-sessiond)" ]; then + str_date=$(date +%H%M%S-%d%m%Y) diag "!!!The session daemon died unexpectedly!!!" - mv $LOG_FILE_SESSIOND $LOG_FILE_SESSIOND-$str_date - if [ -e $COREDUMP_FILE ]; then - mv $COREDUMP_FILE $COREDUMP_FILE-$str_date + mv $LOG_FILE_SESSIOND "$LOG_FILE_SESSIOND-$str_date" + if [ -e "$COREDUMP_FILE" ]; then + mv "$COREDUMP_FILE" "$COREDUMP_FILE-$str_date" fi exit 1 fi @@ -66,19 +54,16 @@ function check_sessiond() function start_sessiond() { - local SESSIOND_BIN="lttng-sessiond" - - validate_kernel_version - if [ $? -ne 0 ]; then + if ! validate_kernel_version ; then fail "Start session daemon" BAIL_OUT "*** Kernel too old for session daemon tests ***" fi - if [ -z $(pidof lt-$SESSIOND_BIN) ]; then + if [ -z "$(lttng_pgrep $SESSIOND_BIN)" ]; then # We have to start it like this so the ulimit -c is used by this # process. Also, we collect any error message printed out. #$TESTDIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --quiet --background --consumerd32-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" >$LOG_FILE_SESSIOND 2>&1 - $TESTDIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --verbose-consumer -vvv --background --consumerd32-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" >$LOG_FILE_SESSIOND 2>&1 + "$TESTDIR/../src/bin/lttng-sessiond/$SESSIOND_BIN" --verbose-consumer -vvv --background --consumerd32-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" >$LOG_FILE_SESSIOND 2>&1 #$TESTDIR/../src/bin/lttng-sessiond/$SESSIOND_BIN --background --consumerd32-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" --consumerd64-path="$TESTDIR/../src/bin/lttng-consumerd/lttng-consumerd" >$LOG_FILE_SESSIOND 2>&1 status=$? ok $status "Start session daemon" @@ -88,22 +73,22 @@ function start_sessiond() function start_relayd { local opt=$1 - local RELAYD_BIN="lttng-relayd" - if [ -z $(pidof lt-$RELAYD_BIN) ]; then - $TESTDIR/../src/bin/lttng-relayd/$RELAYD_BIN $opt >$LOG_FILE_RELAYD 2>&1 & + if [ -z "$(lttng_pgrep $RELAYD_BIN)" ]; then + "$TESTDIR/../src/bin/lttng-relayd/$RELAYD_BIN" "$opt" >$LOG_FILE_RELAYD 2>&1 & ok $? "Start lttng-relayd (opt: \"$opt\")" fi } function check_relayd() { - if [ -z "$(pidof lt-lttng-relayd)" ]; then - local str_date=$(date +%H%M%S-%d%m%Y) + local str_date + if [ -z "$(lttng_pgrep lttng-relayd)" ]; then + str_date=$(date +%H%M%S-%d%m%Y) #diag "Relay daemon died. Starting it again" - if [ -e $COREDUMP_FILE ]; then - mv $COREDUMP_FILE $COREDUMP_FILE-$str_date + if [ -e "$COREDUMP_FILE" ]; then + mv "$COREDUMP_FILE" "$COREDUMP_FILE-$str_date" fi start_relayd fi @@ -111,27 +96,28 @@ function check_relayd() test_stress() { + # shellcheck disable=SC2034 for b in $(seq 1 $NR_LOOP); do for a in $(seq 1 $NR_SESSION); do - lttng_create_session_uri $SESSION_NAME-$a + create_lttng_session_uri $SESSION_NAME-"$a" net://localhost check_sessiond check_relayd - enable_channel_per_uid $SESSION_NAME-$a $CHANNEL_NAME + enable_channel_per_uid $SESSION_NAME-"$a" $CHANNEL_NAME check_sessiond check_relayd - enable_ust_lttng_event_ok $SESSION_NAME-$a $EVENT_NAME + enable_ust_lttng_event_ok $SESSION_NAME-"$a" $EVENT_NAME check_sessiond check_relayd - start_lttng_tracing_ok $SESSION_NAME-$a + start_lttng_tracing_ok $SESSION_NAME-"$a" check_sessiond check_relayd done for a in $(seq 1 $NR_SESSION); do - stop_lttng_tracing $SESSION_NAME-$a + stop_lttng_tracing_ok $SESSION_NAME-"$a" check_sessiond check_relayd - destroy_lttng_session $SESSION_NAME-$a + destroy_lttng_session_ok $SESSION_NAME-"$a" check_sessiond check_relayd done @@ -143,12 +129,12 @@ test_stress() function cleanup() { diag "Cleaning up!" - for p in ${APPS_PID}; do - kill ${p} - wait ${p} 2>/dev/null - done - APPS_PID= + kill "${APP_PIDS[@]}" + wait "${APP_PIDS[@]}" 2>/dev/null + APP_PIDS=() + # shellcheck disable=SC2119 stop_lttng_sessiond + # shellcheck disable=SC2119 stop_lttng_relayd } @@ -156,11 +142,10 @@ function sighandler() { cleanup #rm $LOG_FILE_SESSIOND $LOG_FILE_RELAYD - exit 1 + full_cleanup } -trap sighandler SIGINT -trap sighandler SIGTERM +trap sighandler SIGINT SIGTERM # Make sure we collect a coredump if possible. ulimit -c unlimited @@ -170,7 +155,7 @@ plan_tests $NUM_TESTS print_test_banner "$TEST_DESC" -TRACE_PATH=$(mktemp -d) +TRACE_PATH=$(mktemp -d -t tmp.test_multi_sess_per_uid_5app_kill_relayd.XXXXXX) start_relayd "-o $TRACE_PATH" start_sessiond @@ -178,12 +163,12 @@ start_sessiond diag "Starting applications launcher" # Start NR_APP applications script that will spawn apps non stop. -./$TESTDIR/stress/$LAUNCH_APP $NR_APP & -APPS_PID="${APPS_PID} ${!}" +"./$TESTDIR/stress/$LAUNCH_APP" $NR_APP & +APP_PIDS+=(${!}) # Launch the helper script that will randomly kill the relayd at vitam eternam. -./$TESTDIR/stress/$KILL_RELAYD_HELPER 1 1 & -APPS_PID="${APPS_PID} ${!}" +"./$TESTDIR/stress/$KILL_RELAYD_HELPER" 1 1 & +APP_PIDS+=(${!}) test_stress out=$? @@ -193,6 +178,6 @@ if [ $out -ne 0 ]; then fi cleanup -rm -rf $TRACE_PATH +rm -rf "${TRACE_PATH:?}/" rm $LOG_FILE_SESSIOND $LOG_FILE_RELAYD exit 0