assertion failed when using "-usb" option

Bug #1407454 reported by Mariusz Pluciński
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

SUMMARY:
----------
Description: Latest 'master' makes it impossible to use "-usb" command line on any target
Host platform: Linux x86-64
Guest platform: probably all (at least x86-64, i386, arm and ppc)

REPRODUCE:
----------
How to reproduce:
1. Run the following command:
$ qemu-system-x86_64 -usb

Expected result:
Starting virtual machine with default configuration and USB enabled.

Actual result:
Qemu crashes with following message:

qemu-system-x86_64: /home/mplucinski/Developer/Open_Source/qemu/qemu.git/util/qemu-option.c:387: qemu_opt_get_bool_helper: Assertion `opt->desc && opt->desc->type == QEMU_OPT_BOOL' failed.
Aborted

MORE INFORMATION:
----------
Same happens when trying to run other target, e.g.
$ qemu-system-i386 -usb
$ qemu-system-arm -machine kmz -usb

First commit where the issue occurs (bisection result): 49d2e648e8087d154d8bf8b91f27c8e05e79d5a6

Revision history for this message
Mariusz Pluciński (plucinski-mariusz) wrote :

Also, very similar symptoms are described in #1406706, so it is possible that they are related.

description: updated
Revision history for this message
Tiejun Chen (tiejun-chen) wrote :

Could you test this?

Signed-off-by: Tiejun Chen <email address hidden>
---
 util/qemu-option.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/util/qemu-option.c b/util/qemu-option.c
index a708241..7cb3601 100644
--- a/util/qemu-option.c
+++ b/util/qemu-option.c
@@ -377,7 +377,7 @@ static bool qemu_opt_get_bool_helper(QemuOpts *opts, const char *name,
     }

     opt = qemu_opt_find(opts, name);
- if (opt == NULL) {
+ if ((opt == NULL) || !opt->desc) {
         const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name);
         if (desc && desc->def_value_str) {
             parse_option_bool(name, desc->def_value_str, &ret, &error_abort);
--

Revision history for this message
Stefan Hajnoczi (stefanha) wrote : Re: [Qemu-devel] [Bug 1407454] Re: assertion failed when using "-usb" option

On Mon, Jan 5, 2015 at 5:48 AM, Tiejun Chen <email address hidden> wrote:
> Could you test this?
>
> Signed-off-by: Tiejun Chen <email address hidden>
> ---
> util/qemu-option.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/util/qemu-option.c b/util/qemu-option.c
> index a708241..7cb3601 100644
> --- a/util/qemu-option.c
> +++ b/util/qemu-option.c
> @@ -377,7 +377,7 @@ static bool qemu_opt_get_bool_helper(QemuOpts *opts, const char *name,
> }
>
> opt = qemu_opt_find(opts, name);
> - if (opt == NULL) {
> + if ((opt == NULL) || !opt->desc) {
> const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name);
> if (desc && desc->def_value_str) {
> parse_option_bool(name, desc->def_value_str, &ret, &error_abort);

This doesn't work because it discards the usb=on|off value that was
set on the command-line.

I will send a fix.

Stefan

Revision history for this message
Peter Maydell (pmaydell) wrote :

This no longer asserts; I think Stefan fixed this and that fix is now in a release.

Changed in qemu:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.