Hi Coiby,
On Thu, Jan 20, 2022 at 4:06 PM Coiby Xu <coxu(a)redhat.com> wrote:
Hi Tao,
Thanks for the patch!
If we use wait, could the test hang because server VM somehow refuses to
quit?
I think it won't hang if VM refuses to quit. You can see the process
tree of $(jobs -p):
run-test.sh,172455 /root/kexec-tools/tests/scripts/run-test.sh
--console nfs-early-kdump
└─run-test.sh,172457 /root/kexec-tools/tests/scripts/run-test.sh --console...
└─timeout,172480 --foreground 10m
/root/kexec-tools/tests/scripts/run-qemu...
└─qemu-system-x86,172481 -enable-kvm -cpu host -nodefaults...
├─{qemu-system-x86},172489
├─{qemu-system-x86},172492
├─{qemu-system-x86},172493
├─{qemu-system-x86},172628
└─{qemu-system-x86},172629
The qemu cmdline is wrapped by timeout. So even if the VM won't exit
itself, it will be killed by timeout 10m later.
So I think waiting for this process group won't hang.
Thanks,
Tao Liu
On Thu, Dec 30, 2021 at 11:26:42AM +0800, Tao Liu wrote:
>When run tests with 2 VMs, for example nfs/ssh kdump tests, client VM will do the
>crash and dump, server VM will do vmcore saving and if-vmcore-exists
>check.
>
>Previously, when client VM finishes running, run-test.sh will kill the lead
background
>process, and then check if server VM has outputted "TEST PASSED" or
"TEST FAILED" string.
>However it didn't wait for server VM to finish. As a result, the server VM's
final
>outputs are not collected and checked, leaving the test result as "TEST RESULT
NOT FOUND"
>sometimes.
>
>For example, the following is the pstree status of $(jobs -p) before it
>gets killed. We can see the server VM is still running:
>
>run-test.sh,172455 /root/kexec-tools/tests/scripts/run-test.sh --console
nfs-early-kdump
> └─run-test.sh,172457 /root/kexec-tools/tests/scripts/run-test.sh --console...
> └─timeout,172480 --foreground 10m /root/kexec-tools/tests/scripts/run-qemu...
> └─qemu-system-x86,172481 -enable-kvm -cpu host -nodefaults...
> ├─{qemu-system-x86},172489
> ├─{qemu-system-x86},172492
> ├─{qemu-system-x86},172493
> ├─{qemu-system-x86},172628
> └─{qemu-system-x86},172629
>
>In this patch, we will wait for $(jobs -p) to finish, in order to get
>the complete output of test results.
>
>Signed-off-by: Tao Liu <ltao(a)redhat.com>
>---
> tests/scripts/run-test.sh | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/tests/scripts/run-test.sh b/tests/scripts/run-test.sh
>index c3e94a3..1501db4 100755
>--- a/tests/scripts/run-test.sh
>+++ b/tests/scripts/run-test.sh
>@@ -140,7 +140,7 @@ for test_case in $testcases; do
>
> if [ $console -eq 1 ]; then
> run_test_sync $script | tee $(get_test_console_file $script)
>- [ -n "$(jobs -p)" ] && kill $(jobs -p)
>+ [ -n "$(jobs -p)" ] && wait $(jobs -p)
> else
> $(run_test_sync $script > $(get_test_console_file $script)) &
> watch_test_outputs $test_outputs
>--
>2.33.1
>
--
Best regards,
Coiby
_______________________________________________
kexec mailing list -- kexec(a)lists.fedoraproject.org
To unsubscribe send an email to kexec-leave(a)lists.fedoraproject.org
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/kexec@lists.fedoraproject.org
Do not reply to spam on the list, report it:
https://pagure.io/fedora-infrastructure