[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] ERROR:qom/object.c:907:object_unref: assertion failed (
From: |
Daniel P . Berrangé |
Subject: |
Re: [Qemu-devel] ERROR:qom/object.c:907:object_unref: assertion failed (obj->ref > 0): (0 > 0) |
Date: |
Thu, 15 Feb 2018 10:15:12 +0000 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
On Wed, Feb 14, 2018 at 08:27:10PM -0500, Bandan Das wrote:
>
> I get the error mentioined in the subject line when using vncviewer with
> commit 13e1d0e71e78a925848258391a6e616b6b5ae219:
>
> Author: Daniel P. Berrange <address@hidden>
> Date: Thu Feb 1 16:45:14 2018 +0000
>
> ui: convert VNC server to QIONetListener
>
> The VNC server already has the ability to listen on multiple sockets.
> Converting it to use the QIONetListener APIs though, will reduce the
> amount of code in the VNC server and improve the clarity of what is
> left.
>
> Signed-off-by: Daniel P. Berrange <address@hidden>
> Message-id: address@hidden
> Signed-off-by: Gerd Hoffmann <address@hidden>
>
>
> It appears to be related to the unconditional unref in vnc_listen_io:
> static void vnc_listen_io(QIONetListener *listener,
> QIOChannelSocket *cioc,
> void *opaque)
> {
> VncDisplay *vd = opaque;
> bool isWebsock = listener == vd->wslistener;
>
> qio_channel_set_name(QIO_CHANNEL(cioc),
> isWebsock ? "vnc-ws-server" : "vnc-server");
> qio_channel_set_delay(QIO_CHANNEL(cioc), false);
> vnc_connect(vd, cioc, false, isWebsock);
> object_unref(OBJECT(cioc));
> }
[snip]
> So, it looks like the unref is already being handled as part of the event
> handling stuff when the window is closed. Is this a known issue/Is the
> object_unref above required ?
Yeah, my bad. The vnc_listen_io fnuc does *not* own the reference it is
given in the cioc parameter, so should not be unref'ing it.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|