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

Re: GTK+ 2.14 and directFB



On Wed, Feb 18, 2009 at 02:30:58AM +0100, Josselin Mouette wrote:
> thanks to Sven Neumann who jumped in very quickly to resolve this issue,
> we now have a set of GTK+ 2.14 packages that are supposed to have a
> working DirectFB backend.
> 
> I have just uploaded this version (2.14.7-2) to experimental. The
> packages should install fine on unstable, so there is no need to upgrade
> anything else. 
> 
> What I need now is volunteers to test them, so that’s where debian-boot
> is welcome to have a look. If you meet any major issues with this
> version, please send the relevant debugging information or a test
> program with instructions.

The graphical installer fails to start with this version as the result
of a segfault.

cdebconf GTK+ frontend also segfaults when using DirectFB/X11 on a
normal system.  Here's the test procedure and the resulting stacktrace:

  $ apt-get source cdebconf && cd cdebconf-0.138lenny2
  $ ./configure --with-frontend=gtk --enable-d-i \
      --with-conffile=./cdebconf.conf
  $ make
  $ cd src/test
  $ sed -n -e 's/"text"/"gtk"/' -e '/^global/,+31p' \
      ../../doc/testing.txt > cdebconf.conf
  $ ../debconf-loadtemplate d-i test.templates
  $ ../debconf test.config

You also need to have libdirectfb-1.0-extra installed and to put in your
~/.directfbrc:
  system=x11


When run under GDB, the previous command result in the following:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f9ccdbde6e0 (LWP 32596)]
0x00007f9ccc4269bc in IA__gdk_window_set_events (window=0x969350, event_mask=64514)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gdk/gdkwindow.c:3608
3608      GDK_WINDOW_IMPL_GET_IFACE (private->impl)->set_events (window, event_mask);
(gdb) bt full
#0  0x00007f9ccc4269bc in IA__gdk_window_set_events (window=0x969350, event_mask=64514)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gdk/gdkwindow.c:3608
        __PRETTY_FUNCTION__ = "IA__gdk_window_set_events"
#1  0x00007f9ccc43cbb0 in gdk_directfb_window_new (parent=0x9690d0, attributes=0x7fffd5c041f0, 
    attributes_mask=<value optimized out>, window_caps=<value optimized out>, window_options=DWOP_NONE, 
    surface_caps=<value optimized out>)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gdk/directfb/gdkwindow-directfb.c:500
        window = (GdkWindow *) 0x969350
        impl = <value optimized out>
        visual = <value optimized out>
        desc = {flags = 3442835024, caps = 32668, width = 98, height = 0, pixelformat = -852132272, 
  posx = 32668, posy = 10055824, surface_caps = DSCAPS_NONE}
        x = 0
        y = 0
        __PRETTY_FUNCTION__ = "gdk_directfb_window_new"
#2  0x00007f9ccc42579e in IA__gdk_window_new (parent=0x9690d0, attributes=0x978ca0, attributes_mask=9930544)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gdk/gdkwindow.c:374
        window = <value optimized out>
        __PRETTY_FUNCTION__ = "IA__gdk_window_new"
#3  0x00007f9ccc8c2e98 in gtk_window_realize (widget=0x997080)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gtk/gtkwindow.c:4615
        parent_window = (GdkWindow *) 0x9690d0
        attributes = {title = 0x0, event_mask = 64514, x = 480, y = -863231872, width = 640, height = 480, 
  wclass = GDK_INPUT_OUTPUT, visual = 0x97a8c0, colormap = 0x9431c0, window_type = GDK_WINDOW_TOPLEVEL, 
  cursor = 0xaff900, wmclass_name = 0x99cc20 "<unknown>", wmclass_class = 0x9a0bc0 "<unknown>", 
  override_redirect = 9998896, type_hint = GDK_WINDOW_TYPE_HINT_NORMAL}
        __PRETTY_FUNCTION__ = "gtk_window_realize"
#4  0x00007f9ccb1b911d in IA__g_closure_invoke (closure=0x989230, return_value=0x0, n_param_values=1, 
    param_values=0xaff900, invocation_hint=0x7fffd5c043e0)
    at /build/buildd/glib2.0-2.18.4/gobject/gclosure.c:767
        marshal = (GClosureMarshal) 0x7f9ccb1b7620 <g_type_class_meta_marshal>
        marshal_data = (gpointer) 0xe0
        __PRETTY_FUNCTION__ = "IA__g_closure_invoke"
#5  0x00007f9ccb1cc628 in signal_emit_unlocked_R (node=0x989430, detail=0, instance=0x997080, 
    emission_return=0x0, instance_and_params=0xaff900) at /build/buildd/glib2.0-2.18.4/gobject/gsignal.c:3174
        accumulator = (SignalAccumulator *) 0x0
        emission = {next = 0x7fffd5c04870, instance = 0x997080, ihint = {signal_id = 14, detail = 0, 
    run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 9991936}
        class_closure = (GClosure *) 0x989230
        handler_list = (Handler *) 0x0
        return_accu = (GValue *) 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, 
      v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, 
      v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 14
        max_sequential_handler_number = 17
        return_value_altered = 0
#6  0x00007f9ccb1ce1d8 in IA__g_signal_emit_valist (instance=0x997080, signal_id=<value optimized out>, 
    detail=0, var_args=0x7fffd5c045c0) at /build/buildd/glib2.0-2.18.4/gobject/gsignal.c:2977
        signal_return_type = 4
        param_values = (GValue *) 0xaff918
        node = (SignalNode *) 0x989430
        i = 0
        n_params = 0
        __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist"
#7  0x00007f9ccb1ce6d3 in IA__g_signal_emit (instance=0x969350, signal_id=9931936, detail=9930544)
    at /build/buildd/glib2.0-2.18.4/gobject/gsignal.c:3034
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffd5c046a0, 
    reg_save_area = 0x7fffd5c045e0}}
#8  0x00007f9ccc8b3506 in IA__gtk_widget_realize (widget=0x997080)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gtk/gtkwidget.c:3319
        mode = <value optimized out>
        __PRETTY_FUNCTION__ = "IA__gtk_widget_realize"
#9  0x00007f9ccc8c36d8 in gtk_window_show (widget=0x997080)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gtk/gtkwindow.c:4314
        info = (GtkWindowGeometryInfo *) 0x9aaf20
        allocation = {x = 0, y = 0, width = 640, height = 480}
        configure_request = {x = 0, y = 0, width = 640, height = 480}
        new_geometry = {min_width = 640, min_height = 480, max_width = 0, max_height = 0, base_width = 0, 
  base_height = 0, width_inc = 0, height_inc = 0, min_aspect = 0, max_aspect = 0, 
  win_gravity = GDK_GRAVITY_NORTH_WEST}
        new_flags = 66
#10 0x00007f9ccb1b911d in IA__g_closure_invoke (closure=0x948d00, return_value=0x0, n_param_values=1, 
    param_values=0x9aa200, invocation_hint=0x7fffd5c04880)
    at /build/buildd/glib2.0-2.18.4/gobject/gclosure.c:767
        marshal = (GClosureMarshal) 0x7f9ccb1b7620 <g_type_class_meta_marshal>
        marshal_data = (gpointer) 0xb0
        __PRETTY_FUNCTION__ = "IA__g_closure_invoke"
#11 0x00007f9ccb1cc628 in signal_emit_unlocked_R (node=0x988fc0, detail=0, instance=0x997080, 
    emission_return=0x0, instance_and_params=0x9aa200) at /build/buildd/glib2.0-2.18.4/gobject/gsignal.c:3174
        accumulator = (SignalAccumulator *) 0x0
        emission = {next = 0x0, instance = 0x997080, ihint = {signal_id = 10, detail = 0, 
    run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 9991936}
        class_closure = (GClosure *) 0x948d00
        handler_list = (Handler *) 0x0
        return_accu = (GValue *) 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, 
      v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, 
      v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 10
        max_sequential_handler_number = 13
        return_value_altered = 0
#12 0x00007f9ccb1ce1d8 in IA__g_signal_emit_valist (instance=0x997080, signal_id=<value optimized out>, 
    detail=0, var_args=0x7fffd5c04a60) at /build/buildd/glib2.0-2.18.4/gobject/gsignal.c:2977
        signal_return_type = 4
        param_values = (GValue *) 0x9aa218
        node = (SignalNode *) 0x988fc0
        i = 0
        n_params = 0
        __PRETTY_FUNCTION__ = "IA__g_signal_emit_valist"
#13 0x00007f9ccb1ce6d3 in IA__g_signal_emit (instance=0x969350, signal_id=9931936, detail=9930544)
    at /build/buildd/glib2.0-2.18.4/gobject/gsignal.c:3034
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffd5c04b40, 
    reg_save_area = 0x7fffd5c04a80}}
#14 0x00007f9ccc8b44cc in IA__gtk_widget_show (widget=0x997080)
    at /mnt/incoming/tmp/gtk+2.0-2.14.7/gtk/gtkwidget.c:3003
        __PRETTY_FUNCTION__ = "IA__gtk_widget_show"
#15 0x00007f9cccc614fa in show_main_window (fe=0x9336e0) at cdebconf_gtk.c:260
        fe_data = (struct frontend_data *) 0x986440
        __PRETTY_FUNCTION__ = "show_main_window"
#16 0x00007f9cccc6181e in cdebconf_gtk_initialize (fe=0x9336e0, conf=0x92df20) at cdebconf_gtk.c:366
No locals.
#17 0x00007f9ccd7df138 in frontend_new (cfg=0x92df20, tdb=0x92f000, qdb=0x92f110) at frontend.c:322
        obj = (struct frontend *) 0x9336e0
        dlh = (void *) 0x933890
        mod = (struct frontend_module *) 0x7f9ccce6ae60
        tmp = "../modules/frontend/gtk.so\000_fe::driver", '\0' <repeats 42 times>, "ØQ}Í\234\177\000\000Ð%ÀÍ\234\177\000\000\000\000\000\000\000\000\000\000ÿÿÿÿ", '\0' <repeats 12 times>, " \035`\000\000\000\000\000À\r@\000\000\000\000\000pOÀÕÿ\177", '\0' <repeats 26 times>, "Êa\237Í\234\177\000\000\001", '\0' <repeats 31 times>, "ØQ}Í\234\177\000\000 \026@\000\000\000\000\000 NÀÕÿ\177\000\000\022À\237Í\234\177\000\000\001\000\000\000\000\000\000\000Ð6\223\000\000\000\000"
        modpath = 0x92e350 "../modules/frontend"
        modname = 0x92e720 "gtk"
        q = (struct question *) 0x0
        __FUNCTION__ = "frontend_new"
#18 0x0000000000401432 in main (argc=2, argv=0x7fffd5c04f78) at debconf.c:140
        sa = {__sigaction_handler = {sa_handler = 0x400f4a <sighandler>, sa_sigaction = 0x400f4a <sighandler>}, 
  sa_mask = {__val = {0 <repeats 16 times>}}, sa_flags = 268435457, sa_restorer = 0x7fffd5c04f70}
        __FUNCTION__ = "main"
(gdb) 


Reverting to the version currently in unstable did not result in
something fully working either when using the X11 backend for DirectFB,
but at least there was no segfaults.

Cheers,
-- 
Jérémy Bobbio                        .''`. 
lunar@debian.org                    : :Ⓐ  :  # apt-get install anarchism
                                    `. `'` 
                                      `-   

Attachment: signature.asc
Description: Digital signature


Reply to: