* [Qemu-devel] [PATCH] qemu-io: Return non-zero exit code on failure
@ 2017-01-11 18:24 Nir Soffer
2017-01-11 21:51 ` Eric Blake
0 siblings, 1 reply; 5+ messages in thread
From: Nir Soffer @ 2017-01-11 18:24 UTC (permalink / raw)
To: qemu-devel; +Cc: Nir Soffer, Nir Soffer
From: Nir Soffer <nsoffer@redhat.com>
The result of openfile was not checked, leading to failure deep in the
actual command with confusing error message, and exiting with exit code 0.
Here is one example - trying to read a pattern from an invalid chain:
$ qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
can't open device top.qcow2: Could not open backing file: Image is not in qcow2 format
no file open, try 'help open'
0
With this patch, we fail earlier with exit code 1:
$ ./qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
can't open device top.qcow2: Could not open backing file: Image is not
in qcow2 format
1
Signed-off-by: Nir Soffer <nirsof@gmail.com>
---
qemu-io.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/qemu-io.c b/qemu-io.c
index 23a229f..427cbae 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -595,13 +595,17 @@ int main(int argc, char **argv)
exit(1);
}
opts = qemu_opts_to_qdict(qopts, NULL);
- openfile(NULL, flags, writethrough, opts);
+ if (openfile(NULL, flags, writethrough, opts)) {
+ exit(1);
+ }
} else {
if (format) {
opts = qdict_new();
qdict_put(opts, "driver", qstring_from_str(format));
}
- openfile(argv[optind], flags, writethrough, opts);
+ if (openfile(argv[optind], flags, writethrough, opts)) {
+ exit(1);
+ }
}
}
command_loop();
--
2.9.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qemu-io: Return non-zero exit code on failure
2017-01-11 18:24 [Qemu-devel] [PATCH] qemu-io: Return non-zero exit code on failure Nir Soffer
@ 2017-01-11 21:51 ` Eric Blake
2017-01-12 3:01 ` Fam Zheng
2017-01-12 19:56 ` Nir Soffer
0 siblings, 2 replies; 5+ messages in thread
From: Eric Blake @ 2017-01-11 21:51 UTC (permalink / raw)
To: Nir Soffer, qemu-devel; +Cc: Nir Soffer
[-- Attachment #1: Type: text/plain, Size: 1278 bytes --]
On 01/11/2017 12:24 PM, Nir Soffer wrote:
> From: Nir Soffer <nsoffer@redhat.com>
>
> The result of openfile was not checked, leading to failure deep in the
> actual command with confusing error message, and exiting with exit code 0.
>
> Here is one example - trying to read a pattern from an invalid chain:
>
> $ qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
As written, you have to guess some context about how top.qcow2 was
created. The example can be made a bit more reproducible with:
$ : > file
$ qemu-io -f qcow2 -c ... file
> can't open device top.qcow2: Could not open backing file: Image is not in qcow2 format
> no file open, try 'help open'
> 0
>
> With this patch, we fail earlier with exit code 1:
>
> $ ./qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
> can't open device top.qcow2: Could not open backing file: Image is not
> in qcow2 format
> 1
>
> Signed-off-by: Nir Soffer <nirsof@gmail.com>
> ---
> qemu-io.c | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
Whether or not the commit message is improved,
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qemu-io: Return non-zero exit code on failure
2017-01-11 21:51 ` Eric Blake
@ 2017-01-12 3:01 ` Fam Zheng
2017-01-12 20:04 ` Nir Soffer
2017-01-12 19:56 ` Nir Soffer
1 sibling, 1 reply; 5+ messages in thread
From: Fam Zheng @ 2017-01-12 3:01 UTC (permalink / raw)
To: Eric Blake, Nir Soffer; +Cc: Nir Soffer, qemu-devel
On Wed, 01/11 15:51, Eric Blake wrote:
> On 01/11/2017 12:24 PM, Nir Soffer wrote:
> > From: Nir Soffer <nsoffer@redhat.com>
> >
> > The result of openfile was not checked, leading to failure deep in the
> > actual command with confusing error message, and exiting with exit code 0.
> >
> > Here is one example - trying to read a pattern from an invalid chain:
> >
> > $ qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
>
> As written, you have to guess some context about how top.qcow2 was
> created. The example can be made a bit more reproducible with:
>
> $ : > file
> $ qemu-io -f qcow2 -c ... file
Nir, thank you for the fix. Could you also add a regression test in
tests/qemu-iotests?
Reviewed-by: Fam Zheng <famz@redhat.com>
>
> > can't open device top.qcow2: Could not open backing file: Image is not in qcow2 format
> > no file open, try 'help open'
> > 0
> >
> > With this patch, we fail earlier with exit code 1:
> >
> > $ ./qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
> > can't open device top.qcow2: Could not open backing file: Image is not
> > in qcow2 format
> > 1
> >
> > Signed-off-by: Nir Soffer <nirsof@gmail.com>
> > ---
> > qemu-io.c | 8 ++++++--
> > 1 file changed, 6 insertions(+), 2 deletions(-)
>
> Whether or not the commit message is improved,
> Reviewed-by: Eric Blake <eblake@redhat.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qemu-io: Return non-zero exit code on failure
2017-01-11 21:51 ` Eric Blake
2017-01-12 3:01 ` Fam Zheng
@ 2017-01-12 19:56 ` Nir Soffer
1 sibling, 0 replies; 5+ messages in thread
From: Nir Soffer @ 2017-01-12 19:56 UTC (permalink / raw)
To: Eric Blake; +Cc: qemu-devel, Nir Soffer
On Wed, Jan 11, 2017 at 11:51 PM, Eric Blake <eblake@redhat.com> wrote:
> On 01/11/2017 12:24 PM, Nir Soffer wrote:
>> From: Nir Soffer <nsoffer@redhat.com>
>>
>> The result of openfile was not checked, leading to failure deep in the
>> actual command with confusing error message, and exiting with exit code 0.
>>
>> Here is one example - trying to read a pattern from an invalid chain:
>>
>> $ qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
>
> As written, you have to guess some context about how top.qcow2 was
> created. The example can be made a bit more reproducible with:
>
> $ : > file
> $ qemu-io -f qcow2 -c ... file
Right, I'll refine it in the next version.
>
>> can't open device top.qcow2: Could not open backing file: Image is not in qcow2 format
>> no file open, try 'help open'
>> 0
>>
>> With this patch, we fail earlier with exit code 1:
>>
>> $ ./qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
>> can't open device top.qcow2: Could not open backing file: Image is not
>> in qcow2 format
>> 1
>>
>> Signed-off-by: Nir Soffer <nirsof@gmail.com>
>> ---
>> qemu-io.c | 8 ++++++--
>> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> Whether or not the commit message is improved,
> Reviewed-by: Eric Blake <eblake@redhat.com>
>
> --
> Eric Blake eblake redhat com +1-919-301-3266
> Libvirt virtualization library http://libvirt.org
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH] qemu-io: Return non-zero exit code on failure
2017-01-12 3:01 ` Fam Zheng
@ 2017-01-12 20:04 ` Nir Soffer
0 siblings, 0 replies; 5+ messages in thread
From: Nir Soffer @ 2017-01-12 20:04 UTC (permalink / raw)
To: Fam Zheng; +Cc: Eric Blake, Nir Soffer, qemu-devel
On Thu, Jan 12, 2017 at 5:01 AM, Fam Zheng <famz@redhat.com> wrote:
> On Wed, 01/11 15:51, Eric Blake wrote:
>> On 01/11/2017 12:24 PM, Nir Soffer wrote:
>> > From: Nir Soffer <nsoffer@redhat.com>
>> >
>> > The result of openfile was not checked, leading to failure deep in the
>> > actual command with confusing error message, and exiting with exit code 0.
>> >
>> > Here is one example - trying to read a pattern from an invalid chain:
>> >
>> > $ qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
>>
>> As written, you have to guess some context about how top.qcow2 was
>> created. The example can be made a bit more reproducible with:
>>
>> $ : > file
>> $ qemu-io -f qcow2 -c ... file
>
> Nir, thank you for the fix. Could you also add a regression test in
> tests/qemu-iotests?
Sure, will look into it.
>
> Reviewed-by: Fam Zheng <famz@redhat.com>
>
>>
>> > can't open device top.qcow2: Could not open backing file: Image is not in qcow2 format
>> > no file open, try 'help open'
>> > 0
>> >
>> > With this patch, we fail earlier with exit code 1:
>> >
>> > $ ./qemu-io -c 'read -P 1 0 1024' top.qcow2; echo $?
>> > can't open device top.qcow2: Could not open backing file: Image is not
>> > in qcow2 format
>> > 1
>> >
>> > Signed-off-by: Nir Soffer <nirsof@gmail.com>
>> > ---
>> > qemu-io.c | 8 ++++++--
>> > 1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> Whether or not the commit message is improved,
>> Reviewed-by: Eric Blake <eblake@redhat.com>
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-01-12 20:51 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-11 18:24 [Qemu-devel] [PATCH] qemu-io: Return non-zero exit code on failure Nir Soffer
2017-01-11 21:51 ` Eric Blake
2017-01-12 3:01 ` Fam Zheng
2017-01-12 20:04 ` Nir Soffer
2017-01-12 19:56 ` Nir Soffer
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.