[Pkg-libvirt-maintainers] Bug#719579: libgvnc-1.0-0: Segmentation fault in glib

Artem Rusanov artem.rusanov at gmail.com
Tue Aug 13 09:03:13 UTC 2013


Package: libgvnc-1.0-0
Version: 0.5.0-3.1
Severity: important
Tags: upstream

Ucontext coroutine have problems with stability, gthread coroutine is ok.
To reproduce just run following test, in some seconds you will get segfault.

Program received signal SIGSEGV, Segmentation fault.
0xf786a228 in ?? () from /lib/libglib-2.0.so.0
(gdb) bt
#0  0xf786a228 in ?? () from /lib/libglib-2.0.so.0
#1  0xf77df904 in IA__g_idle_add_full (priority=200,
    function=0xf7fccd30 <vnc_connection_delayed_unref>, data=0x8099678,
    notify=0)
    at /build/buildd-
glib2.0_2.24.2-1-i386-AScyie/glib2.0-2.24.2/glib/gmain.c:4128
#2  0xf77df968 in IA__g_idle_add (
    function=0xf7fccd30 <vnc_connection_delayed_unref>, data=0x8099678)
    at /build/buildd-
glib2.0_2.24.2-1-i386-AScyie/glib2.0-2.24.2/glib/gmain.c:4154
#3  0xf7fcbeca in vnc_connection_coroutine (opaque=0x8099678)
    at vncconnection.c:5195
#4  0xf7fce086 in coroutine_trampoline (cc=0x80996a0)
    at coroutine_ucontext.c:52
#5  0xf7fcdeff in continuation_trampoline (i0=-143110156, i1=-144188539)
    at continuation.c:43
#6  0xf767db6b in makecontext () from /lib/libc.so.6
#7  0xf7784ff4 in ?? () from /lib/libc.so.6
#8  0xf7fd35ec in ?? () from /usr/local/lib/libgvnc-1.0.so.0
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Test to reproduce problem (main.c):
#include <gtk/gtk.h>
#include <vncconnection.h>
#include <glib.h>
#include <stdio.h>

static gboolean
time_handler(VncConnection *conn)
{
    vnc_connection_open_host(conn, "localhost", "7777");

    return FALSE;
}

void disconnected(VncConnection *conn,
                        gpointer opaque G_GNUC_UNUSED)
{
    g_timeout_add(10, (GSourceFunc) time_handler, conn);
}

int main( int argc, char *argv[])
{
  GtkWidget *window;
  VncConnection *conn;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  gtk_widget_show(window);

  conn = vnc_connection_new();
  g_signal_connect(conn, "vnc-disconnected", G_CALLBACK(&disconnected), 0);

  vnc_connection_open_host(conn, "localhost", "7777");

  gtk_main();

  return 0;
}

To build:
gcc `pkg-config --libs --cflags gtk+-2.0 gtk-vnc-1.0` -o test main.c



-- System Information:
Debian Release: 7.1
  APT prefers stable
  APT policy: (700, 'stable'), (600, 'unstable'), (500, 'stable-updates')
Architecture: amd64 (x86_64)

Kernel: Linux 3.9-0.bpo.1-amd64 (SMP w/4 CPU cores)
Locale: LANG=ru_RU.UTF-8, LC_CTYPE=ru_RU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libgvnc-1.0-0 depends on:
ii  libc6               2.13-38
ii  libgcrypt11         1.5.0-5+deb7u1
ii  libgdk-pixbuf2.0-0  2.26.1-1
ii  libglib2.0-0        2.33.12+really2.32.4-5
ii  libgnutls26         2.12.20-7
ii  libgpg-error0       1.10-3.1
ii  libpulse0           2.0-6.1
ii  libsasl2-2          2.1.25.dfsg1-6+deb7u1
ii  zlib1g              1:1.2.7.dfsg-13

libgvnc-1.0-0 recommends no packages.

libgvnc-1.0-0 suggests no packages.

-- no debconf information



More information about the Pkg-libvirt-maintainers mailing list