Re: [gtk-vnc-devel] crash on disconnect
- From: Jonh Wendell <jwendell gnome org>
- To: "Daniel P. Berrange" <berrange redhat com>
- Cc: gtk-vnc-devel List <gtk-vnc-devel lists sourceforge net>
- Subject: Re: [gtk-vnc-devel] crash on disconnect
- Date: Mon, 14 Apr 2008 22:33:16 -0300
Em Ter, 2008-04-15 às 01:47 +0100, Daniel P. Berrange escreveu:
> On Mon, Apr 14, 2008 at 07:45:06PM -0500, Anthony Liguori wrote:
> > Jonh Wendell wrote:
> > >Em Seg, 2008-04-14 às 22:56 +0100, Daniel P. Berrange escreveu:
> > >
> > >>On Mon, Apr 14, 2008 at 04:11:53PM -0300, Jonh Wendell wrote:
> > >>
> > >>>Hi, folks.
> > >>>
> > >>>I'm experiencing a crash when I disconnect in the middle of a zrle long
> > >>>update (like when showing a big colored background image).
> > >>>
> > >>What do you mean by 'disconnect' ? Are you closing the GTK window, or
> > >>just using the disconnect API in vncdisplay, or something else ?
> > >>
> > >
> > >In Vinagre, I press 'Close' button, which removes it from notebook,
> > >which destroys the widget (actually it calls gtk_container_remove()
> > >which can potentially destroy the widget).
> > >
> > >
> > >>>The bug itself was already reported in Ubuntu:
> > >>>https://bugs.launchpad.net/ubuntu/+source/vinagre/+bug/207205
> > >>>My backtrace is similar to that one attached there in Launchpad:
> > >>>http://launchpadlibrarian.net/12902128/ThreadStacktrace.txt
> > >>>
> > >>>I'm attaching my backtrace with debug output.
> > >>>
> > >>>Any idea?
> > >>>
> > >>The debug output doesn't show any sign that GTK-VNC has been
> > >>asked to disconnect, so the co-routine is still running and
> > >>presumably whatever its writing to no longer exists.
> > >>
> > >
> > >Yes, in my case, I do not call vnc_close() or similar, I just destroy
> > >the widget.
> > >
> >
> > That's not the best of things to do. You should really explicitly close
> > the connection before destroying the widget if you can.
I agree with Dan here, since we have vnc_display_close() in destroy().
Anyway, I modified vinagre to call vnc_display_close() before destroy
the widget and the result was the same.
> Actually that should be OK since we increment the ref-count when the
> coroutine is running so that the vncdisplay widget is not actually
> free'd until it exits. What's odd though is that the debug trace does
> not show the vncdisplay widget cleanup code being called which I would
> definitely expect if it were being destroyed indirectly by its container.
>
> Dan.
OK, Dan, you're right. I managed to get a decent output this time:
**********************
gtk-vnc: FramebufferUpdate(16, 0, 0, 1024, 768)
gtk-vnc: Expose 0x0 @ 12,21
gtk-vnc: Expose 0x0 @ 1013,581
gtk-vnc: Expose 224x213 @ 340,71
gtk-vnc: Requesting that VNC close
gtk-vnc: Requesting graceful shutdown of connection
gtk-vnc: Waking up couroutine to shutdown gracefully
gtk-vnc: Closing the connection: gvnc_read() - ret=-1
Segmentation fault (core dumped)
**********************
The backtrace is exactly the same as before.
Thanks,
--
Jonh Wendell
www.bani.com.br
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]