diff options
Diffstat (limited to '0049-2298-bugfix-for-hook_ignore_poststart_error-run-in-o.patch')
-rw-r--r-- | 0049-2298-bugfix-for-hook_ignore_poststart_error-run-in-o.patch | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/0049-2298-bugfix-for-hook_ignore_poststart_error-run-in-o.patch b/0049-2298-bugfix-for-hook_ignore_poststart_error-run-in-o.patch new file mode 100644 index 0000000..4c90ed4 --- /dev/null +++ b/0049-2298-bugfix-for-hook_ignore_poststart_error-run-in-o.patch @@ -0,0 +1,110 @@ +From 94122c5752936b4f5db14521cdd0f39a3dec6851 Mon Sep 17 00:00:00 2001 +From: zhongtao <zhongtao17@huawei.com> +Date: Thu, 7 Dec 2023 03:32:15 +0000 +Subject: [PATCH 49/64] !2298 bugfix for hook_ignore_poststart_error run in oci + runtime * bugfix for hook_ignore_poststart_error run in oci runtime + +--- + .../hook_ignore_poststart_error.sh | 70 +++++++++++++------ + 1 file changed, 50 insertions(+), 20 deletions(-) + +diff --git a/CI/test_cases/container_cases/hook_ignore_poststart_error.sh b/CI/test_cases/container_cases/hook_ignore_poststart_error.sh +index 8c636f7e..38b6f021 100755 +--- a/CI/test_cases/container_cases/hook_ignore_poststart_error.sh ++++ b/CI/test_cases/container_cases/hook_ignore_poststart_error.sh +@@ -24,6 +24,48 @@ source ../helpers.sh + + test_data_path=$(realpath $curr_path/test_data) + ++# $1 hook process ++# $2 container id ++# $3 expect container status ++# $4 process statement ++function test_kill_hook() ++{ ++ for a in `seq 20` ++ do ++ bpid=`ps aux | grep "$1" | grep -v grep | awk '{print $2}'` ++ if [ "x" != "x$bpid" ];then ++ kill -9 $bpid ++ break ++ else ++ sleep .5 ++ continue ++ fi ++ done ++ ++ if [ "x" != "x$4" ];then ++ for a in `seq 20` ++ do ++ bpid=`ps aux | grep "$4" | grep -v grep | awk '{print $2}'` ++ if [ "x" != "x$bpid" ];then ++ kill -9 $bpid ++ break ++ else ++ sleep .5 ++ continue ++ fi ++ done ++ fi ++ ++ status=`isula inspect -f '{{json .State.Status}}' $2` ++ if [ "$status" == "$3" ];then ++ echo "get right status" ++ return 0 ++ else ++ echo "expect $2 $3, but get $status" ++ return 1 ++ fi ++} ++ + function test_hook_ignore_poststart_error_spec() + { + local ret=0 +@@ -42,27 +84,15 @@ function test_hook_ignore_poststart_error_spec() + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - missing list image: ${image}" && ((ret++)) + + isula run -n $CONT -itd --runtime $runtime --hook-spec ${test_data_path}/oci_hook_poststart_check.json ${image} & +- +- for a in `seq 20` +- do +- bpid=`ps aux | grep "poststart.sh" | grep -v grep | awk '{print $2}'` +- if [ "x" != "x$bpid" ];then +- kill -9 $bpid +- break +- else +- sleep .5 +- continue +- fi +- done +- +- status=`isula inspect -f '{{json .State.Status}}' $CONT` +- if [ "$status" == "\"running\"" ];then +- echo "get right status" ++ ++ # when runc container run poststart hook, the process structure is different from lxc ++ if [ $runtime == "lcr" ]; then ++ test_kill_hook "poststart.sh" $CONT \"running\" + else +- echo "expect $CONT running, but get $status" +- ret++ ++ test_kill_hook "poststart.sh" $CONT \"exited\" "sleep 300" + fi +- ++ [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to test kill hook: ${image}" && ((ret++)) ++ + isula stop -t 0 ${CONT} + [[ $? -ne 0 ]] && msg_err "${FUNCNAME[0]}:${LINENO} - failed to stop ${CONT}" && ((ret++)) + +@@ -77,7 +107,7 @@ declare -i ans=0 + + for element in ${RUNTIME_LIST[@]}; + do +- test_hook_ignore_poststart_error_spec $1 || ((ans++)) ++ test_hook_ignore_poststart_error_spec $element || ((ans++)) + done + + show_result ${ans} "${curr_path}/${0}" +-- +2.42.0 + |