qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] char-pty: fix glib assert


From: Peter Xu
Subject: Re: [Qemu-devel] [PATCH] char-pty: fix glib assert
Date: Tue, 30 Jan 2018 09:29:36 +0800
User-agent: Mutt/1.9.1 (2017-09-22)

On Mon, Jan 29, 2018 at 05:40:11PM +0100, Laurent Vivier wrote:
> On 29/01/2018 17:17, Juan Quintela wrote:
> > I am having this assert over and over:
> > 
> > (process:30804): GLib-CRITICAL **: g_source_unref: assertion 'source != 
> > NULL' failed
> > 
> > gdb points to the line changed on this patch, and my reading of
> > commit:
> > 
> > 2c716ba1506769c9be2caa02f0f6d6e7c00f4304
> > 
> > is that it should be timer_src what is unrefered there.
> > 
> > But I don't claim to fully understand this code, so ....
> > 
> > Any comment?
> > 
> > Thanks, Juan.
> > 
> > Signed-off-by: Juan Quintela <address@hidden>
> > CC: Peter Xu <address@hidden>
> > CC: Paolo Bonzini <address@hidden>
> > 
> > 
> > ---
> >  chardev/char-pty.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/chardev/char-pty.c b/chardev/char-pty.c
> > index 89315e6807..c26e02bce8 100644
> > --- a/chardev/char-pty.c
> > +++ b/chardev/char-pty.c
> > @@ -57,8 +57,8 @@ static gboolean pty_chr_timer(gpointer opaque)
> >      PtyChardev *s = PTY_CHARDEV(opaque);
> >  
> >      qemu_mutex_lock(&chr->chr_write_lock);
> > +    g_source_unref(s->timer_src);
> >      s->timer_src = NULL;
> > -    g_source_unref(s->open_source);
> >      s->open_source = NULL;
> >      if (!s->connected) {
> >          /* Next poll ... */
> > 
> 
> If I read correctly the doc, we also need a
> g_source_destroy(s->timer_src). Perhaps we can directly call
> pty_chr_timer_cancel() here?

Yes.  Another fix is already queued by Paolo here:

  http://patchwork.ozlabs.org/patch/862763/

Sorry for that!

-- 
Peter Xu



reply via email to

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