ClickHouse/docker/test/stateless/utils.lib

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

68 lines
1.3 KiB
Plaintext
Raw Normal View History

2023-06-30 14:41:27 +00:00
#!/bin/bash
2024-07-09 15:06:37 +00:00
# core.COMM.PID-TID
sysctl kernel.core_pattern='core.%e.%p-%P'
2024-07-10 13:45:17 +00:00
# ASAN doesn't work with suid_dumpable=2
sysctl fs.suid_dumpable=1
2024-07-09 15:06:37 +00:00
2023-06-30 14:41:27 +00:00
function run_with_retry()
{
if [[ $- =~ e ]]; then
set_e=true
else
set_e=false
fi
2023-06-30 14:41:27 +00:00
set +e
local total_retries="$1"
shift
local retry=0
until [ "$retry" -ge "$total_retries" ]
do
if "$@"; then
if $set_e; then
set -e
fi
2023-06-30 14:41:27 +00:00
return
else
retry=$((retry + 1))
sleep 5
fi
done
echo "Command '$*' failed after $total_retries retries, exiting"
exit 1
2023-07-02 09:52:50 +00:00
}
function fn_exists() {
declare -F "$1" > /dev/null;
}
2023-08-18 09:17:32 +00:00
2023-12-18 17:08:57 +00:00
function timeout_with_logging() {
local exit_code=0
timeout -s TERM --preserve-status "${@}" || exit_code="${?}"
2023-12-18 17:08:57 +00:00
2024-07-19 22:09:53 +00:00
echo "Checking if it is a timeout. The code 124 will indicate a timeout."
2023-12-18 17:08:57 +00:00
if [[ "${exit_code}" -eq "124" ]]
then
2024-07-19 22:09:53 +00:00
echo "The command 'timeout ${*}' has been killed by timeout."
else
echo "No, it isn't a timeout."
2023-12-18 17:08:57 +00:00
fi
return $exit_code
}
2024-07-09 15:06:37 +00:00
function collect_core_dumps()
{
find . -type f -maxdepth 1 -name 'core.*' | while read -r core; do
zstd --threads=0 "$core"
mv "$core.zst" /test_output/
done
}
2023-08-18 09:17:32 +00:00
# vi: ft=bash