From: Nico Boehr <nrb@linux.ibm.com>
To: frankja@linux.ibm.com, imbrenda@linux.ibm.com, thuth@redhat.com
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org
Subject: [kvm-unit-tests PATCH v1] arch-run: migration: properly handle crashing outgoing QEMU
Date: Tue, 26 Sep 2023 13:18:27 +0200 [thread overview]
Message-ID: <20230926111838.1778968-1-nrb@linux.ibm.com> (raw)
When outgoing (live) QEMU crashes or times out during migration, we
currently hang forever.
This is because we don't exit the loop querying migration state when QMP
communication fails.
Add proper error handling to the loop and exit when QMP communication
fails for whatever reason.
Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
---
scripts/arch-run.bash | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/scripts/arch-run.bash b/scripts/arch-run.bash
index 518607f4b75d..de9890408e24 100644
--- a/scripts/arch-run.bash
+++ b/scripts/arch-run.bash
@@ -162,8 +162,14 @@ run_migration ()
migstatus=`qmp ${qmp1} '"query-migrate"' | grep return`
while ! grep -q '"completed"' <<<"$migstatus" ; do
sleep 1
- migstatus=`qmp ${qmp1} '"query-migrate"' | grep return`
- if grep -q '"failed"' <<<"$migstatus" ; then
+ if ! migstatus=`qmp ${qmp1} '"query-migrate"'`; then
+ echo "ERROR: Querying migration state failed." >&2
+ echo > ${fifo}
+ qmp ${qmp2} '"quit"'> ${qmpout2} 2>/dev/null
+ return 2
+ fi
+ migstatus=`grep return <<<"$migstatus"`
+ if grep -q '"failed"' <<<"$migstatus"; then
echo "ERROR: Migration failed." >&2
echo > ${fifo}
qmp ${qmp1} '"quit"'> ${qmpout1} 2>/dev/null
--
2.41.0
next reply other threads:[~2023-09-26 11:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-26 11:18 Nico Boehr [this message]
-- strict thread matches above, loose matches on Subject: below --
2023-09-26 12:08 [kvm-unit-tests PATCH v1] arch-run: migration: properly handle crashing outgoing QEMU Nico Boehr
2023-10-09 11:29 ` Thomas Huth
2023-10-09 14:33 ` Nico Boehr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230926111838.1778968-1-nrb@linux.ibm.com \
--to=nrb@linux.ibm.com \
--cc=frankja@linux.ibm.com \
--cc=imbrenda@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox