qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] system_reset command cause assert failed


From: Luiz Capitulino
Subject: Re: [Qemu-devel] system_reset command cause assert failed
Date: Wed, 3 Feb 2010 10:26:42 -0200

On Wed, 3 Feb 2010 10:09:07 +0800
Roy Tam <address@hidden> wrote:

> 2010/2/2 Luiz Capitulino <address@hidden>:
> > On Tue, 2 Feb 2010 09:35:16 +0800
> > Roy Tam <address@hidden> wrote:
> >
> >> 2010/2/2 Luiz Capitulino <address@hidden>:
> >> > On Tue, 2 Feb 2010 00:26:53 +0800
> >> > Roy Tam <address@hidden> wrote:
> >> >
> >> >> 2010/2/2 Luiz Capitulino <address@hidden>:
> >> >>
> >> >> >  Hm, I'm puzzled. Is this failing on malloc()? At least qemu_malloc()
> >> >> > is the last qemu's function I see in the logs.
> >> >> >
> >> >> >  From now on I only see msvcrt functions...
> >> >> >
> >> >> >  Maybe, you can type run on gdb, run system_reset on the
> >> >> > Monitor and then switch back to gdb and type bt?
> >> >> >
> >> >> source-less debugging seems better...
> >> >
> >> >  As far as I can understand something bad happens while the parser
> >> > is processing the first "'" character of the qobject_from_jsonf()
> >> > call in monitor.c:4524.
> >> >
> >> >  Strange. Can you try 'info pci', 'info block' and 'info version'?
> >> > Do they work?
> >> >
> >> >  Maybe this is a refcount problem?
> >> >
> >> >  Anthony, could you take a look too please?
> >> >
> >>
> >> rebuild with -gstabs -O1, you can see double free here:
> >
> >  Ok, so we have a double free and
> >
> 
> Clarify that after digging into sources further, it is not double
> free, but parse_json not be executed by json_lexer_feed_char as I put
> asm("int3") in parse_json but there's no SIGTRAP be raised. (for
> system_reset and system_powerdown)

 Well, I think I'll only have time to setup this stuff on windows
in two or three days :(

> >> #0  qobject_to_qdict (obj=0x0) at qobject.h:108
> >> #1  0x004127ae in pci_device_print (mon=0x494c460, device=0x49696c0)
> >> at /home/roy/qemu/hw/pci.c:1165
> >
> >  a segfault.
> 
> for this, parse_json was executed by json_lexer_feed_char.
> a workaround patch is here, but why null qobj has pushed into qlist?

 Yeah, that's the question and I'm afraid that this patch will
actually hide the real bug.

 You can do two things:

1. Put an assert() at qlist.c:qlist_append_obj()
2. Reset your tree to commit 0a7fc983ce and send me the output of
   'info pci'




reply via email to

[Prev in Thread] Current Thread [Next in Thread]