Crash when changing colour settings in gradient editor

Bug #804243 reported by Alex Valavanis on 2011-07-01
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Inkscape
High
Jon A. Cruz

Bug Description

Platform: Ubuntu Natty, amd64
Inkscape-version: 0.48+devel r10393

Crash occurs when the following steps are taken:
* Draw a shape
* Open "Fill and Stroke" dialog
* Select "Linear gradient" button
* Click "Edit..." button
* Change any of the colour spin-buttons or sliders
>> Inkscape crashes with the attached backtrace.

Backtrace:
#0 0x00007ffff6016e7e in gtk_widget_is_drawable () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#1 0x00007ffff6df56a5 in Gtk::Widget::get_is_drawable() const () from /usr/lib/libgtkmm-2.4.so.1
No symbol table info available.
#2 0x0000000000a2d5ac in Inkscape::UI::Widget::ColorPreview::setRgba32 (this=0x4f9f580, rgba=<value optimised out>) at ui/widget/color-preview.cpp:59
No locals.
#3 0x0000000000b78662 in sp_gradient_vector_color_changed (csel=<value optimised out>, object=<value optimised out>) at widgets/gradient-vector.cpp:1193
        gradient = <value optimised out>
        ngr = <value optimised out>
        __PRETTY_FUNCTION__ = "void sp_gradient_vector_color_changed(SPColorSelector*, GtkObject*)"
        stop = 0x5694170
        color = {_vptr.SPColor = 0xe89f50, icc = 0x0, v = {c = {0.298039228, 0.301960796, 0.301960796}}}
        os = {ostr = <incomplete type>}
        cpv = 0x4f9f580
        mnu = 0x5687240
        alpha = 1
#4 0x00007ffff1a2e81c in g_closure_invoke (closure=0x5639ae0, return_value=0x0, n_param_values=1, param_values=0x5731e80, invocation_hint=0x7fffffffcc10) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767
        marshal = <value optimised out>
        marshal_data = <value optimised out>
        in_marshal = 0
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#5 0x00007ffff1a40019 in signal_emit_unlocked_R (node=<value optimised out>, detail=0, instance=0x562f640, emission_return=0x0, instance_and_params=0x5731e80) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3252
        tmp = <value optimised out>
        handler = 0x56cb8f0
        accumulator = 0x0
        emission = {next = 0x7fffffffd0a0, instance = 0x562f640, ihint = {signal_id = 373, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
        class_closure = 0x5616620
        handler_list = 0x56cb8f0
        return_accu = 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 = 373
        max_sequential_handler_number = 38769
        return_value_altered = 1
#6 0x00007ffff1a49258 in g_signal_emit_valist (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>, var_args=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2983
        instance_and_params = 0x5731e80
        signal_return_type = 4
        param_values = 0x5731e98
        node = 0x5616720
        i = <value optimised out>
        n_params = 0
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#7 0x00007ffff1a4941f in g_signal_emit (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffcf00, reg_save_area = 0x7fffffffce40}}
#8 0x00000000008d02b2 in ColorNotebook::_entryModified (csel=0x562f6e0, colorbook=<value optimised out>) at widgets/sp-color-notebook.cpp:627
        __PRETTY_FUNCTION__ = "static void ColorNotebook::_entryModified(SPColorSelector*, SPColorNotebook*)"
        nb = 0x5643520
        color = {_vptr.SPColor = 0xe89f50, icc = 0x0, v = {c = {0.298039228, 0.301960796, 0.301960796}}}
        alpha = 1
#9 0x00000000008d03f6 in ColorNotebook::_entryDragged (csel=0x562f6e0, colorbook=0x562f640) at widgets/sp-color-notebook.cpp:590
        oldState = <value optimised out>
        nb = 0x5643520
#10 0x00007ffff1a2e81c in g_closure_invoke (closure=0x562a120, return_value=0x0, n_param_values=1, param_values=0x5731cc0, invocation_hint=0x7fffffffd0b0) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767
        marshal = <value optimised out>
        marshal_data = <value optimised out>
        in_marshal = 0
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#11 0x00007ffff1a40019 in signal_emit_unlocked_R (node=<value optimised out>, detail=0, instance=0x562f6e0, emission_return=0x0, instance_and_params=0x5731cc0) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3252
        tmp = <value optimised out>
        handler = 0x5639e30
        accumulator = 0x0
        emission = {next = 0x7fffffffd570, instance = 0x562f6e0, ihint = {signal_id = 371, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
        class_closure = 0x561e8b0
        handler_list = 0x5639e30
        return_accu = 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 = 371
        max_sequential_handler_number = 38769
        return_value_altered = 1
#12 0x00007ffff1a49258 in g_signal_emit_valist (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>, var_args=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2983
        instance_and_params = 0x5731cc0
        signal_return_type = 4
        param_values = 0x5731cd8
        node = 0x561e9b0
        i = <value optimised out>
        n_params = 0
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#13 0x00007ffff1a4941f in g_signal_emit (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd3a0, reg_save_area = 0x7fffffffd2e0}}
#14 0x00000000008d1935 in ColorScales::_recalcColor (this=0x5624800, changing=<value optimised out>) at widgets/sp-color-scales.cpp:247
        color = {_vptr.SPColor = 0xe89f50, icc = 0x0, v = {c = {0.298039228, 0.301960796, 0.301960796}}}
        alpha = 1
        c = {0.298039228, 0.301960796, 0.301960796, 1, 1.93972554e-38}
#15 0x00000000008d3e06 in ColorScales::_adjustmentChanged (cs=<value optimised out>, channel=0) at widgets/sp-color-scales.cpp:585
        scales = 0x5624800
#16 0x00007ffff1a2e81c in g_closure_invoke (closure=0x4bf8610, return_value=0x0, n_param_values=1, param_values=0x5731ec0, invocation_hint=0x7fffffffd580) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767
        marshal = <value optimised out>
        marshal_data = <value optimised out>
        in_marshal = 0
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#17 0x00007ffff1a40019 in signal_emit_unlocked_R (node=<value optimised out>, detail=0, instance=0x5690320, emission_return=0x0, instance_and_params=0x5731ec0) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3252
        tmp = <value optimised out>
        handler = 0x4f21670
        accumulator = 0x0
        emission = {next = 0x0, instance = 0x5690320, ihint = {signal_id = 188, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 4}
        class_closure = 0x26ebf10
        handler_list = 0x4c13cf0
        return_accu = 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 = 188
        max_sequential_handler_number = 38769
        return_value_altered = 1
#18 0x00007ffff1a49258 in g_signal_emit_valist (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>, var_args=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2983
        instance_and_params = 0x5731ec0
        signal_return_type = 4
        param_values = 0x5731ed8
        node = 0x26ebf40
        i = <value optimised out>
        n_params = 0
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#19 0x00007ffff1a4941f in g_signal_emit (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffd870, reg_save_area = 0x7fffffffd7b0}}
#20 0x00007ffff5e3c32a in gtk_adjustment_value_changed () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#21 0x00007ffff5f6b8c9 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#22 0x00007ffff5f6ca54 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#23 0x00007ffff5f6f23e in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#24 0x00007ffff5efa578 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#25 0x00007ffff1a2e81c in g_closure_invoke (closure=0x13669b0, return_value=0x7fffffffdaa0, n_param_values=2, param_values=0x573b330, invocation_hint=0x7fffffffda60) at /build/buildd/glib2.0-2.28.6/./gobject/gclosure.c:767
        marshal = <value optimised out>
        marshal_data = <value optimised out>
        in_marshal = 0
        __PRETTY_FUNCTION__ = "g_closure_invoke"
#26 0x00007ffff1a3fe1f in signal_emit_unlocked_R (node=<value optimised out>, detail=0, instance=0x562cca0, emission_return=0x7fffffffdc10, instance_and_params=0x573b330) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3290
        accumulator = 0x1380f60
        emission = {next = 0x0, instance = 0x562cca0, ihint = {signal_id = 33, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 19825456}
        class_closure = 0x13669b0
        handler_list = 0x0
        return_accu = 0x7fffffffdaa0
        accu = {g_type = 20, 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 = 33
        max_sequential_handler_number = 38764
        return_value_altered = 0
#27 0x00007ffff1a48fa9 in g_signal_emit_valist (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>, var_args=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:2993
        return_value = {g_type = 20, 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}}}
        error = 0x0
        rtype = 20
        static_scope = 0
        instance_and_params = 0x573b330
        signal_return_type = 20
        param_values = 0x573b348
        node = 0x1380dc0
        i = <value optimised out>
        n_params = 1
        __PRETTY_FUNCTION__ = "g_signal_emit_valist"
#28 0x00007ffff1a4941f in g_signal_emit (instance=<value optimised out>, signal_id=<value optimised out>, detail=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./gobject/gsignal.c:3040
        var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffdd50, reg_save_area = 0x7fffffffdc90}}
#29 0x00007ffff60164d1 in ?? () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#30 0x00007ffff5ef8763 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#31 0x00007ffff5ef8a5b in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#32 0x00007ffff29fb5cc in ?? () from /usr/lib/libgdk-x11-2.0.so.0
No symbol table info available.
#33 0x00007ffff1773bcd in g_main_dispatch (context=0x1359480) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:2440
        dispatch = 0x7ffff29fb580
        was_in_call = 0
        user_data = 0x0
        callback = 0
        cb_funcs = 0x0
        cb_data = 0x0
        current_source_link = {data = 0x1359390, next = 0x0}
        need_destroy = <value optimised out>
        source = 0x1359390
        current = 0x45cae40
        i = <value optimised out>
#34 g_main_context_dispatch (context=0x1359480) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3013
No locals.
#35 0x00007ffff17743a8 in g_main_context_iterate (context=0x1359480, block=<value optimised out>, dispatch=1, self=<value optimised out>) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3091
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = 4
        allocated_nfds = <value optimised out>
        fds = <value optimised out>
#36 0x00007ffff17749f2 in g_main_loop_run (loop=0x271ee60) at /build/buildd/glib2.0-2.28.6/./glib/gmain.c:3299
        __PRETTY_FUNCTION__ = "g_main_loop_run"
#37 0x00007ffff5ef7af7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
No symbol table info available.
#38 0x0000000000666c38 in sp_main_gui (argc=1, argv=0x7fffffffe1f8) at main.cpp:978
        main_instance = <incomplete type>
        fl = 0x0
        retVal = <value optimised out>
        __PRETTY_FUNCTION__ = "int sp_main_gui(int, const char**)"
        dataDirs = {<std::_Vector_base<Glib::ustring, std::allocator<Glib::ustring> >> = {_M_impl = {<std::allocator<Glib::ustring>> = {<__gnu_cxx::new_allocator<Glib::ustring>> = {<No data fields>}, <No data fields>}, _M_start = 0x13b1630, _M_finish = 0x13b1650, _M_end_of_storage = 0x13b1650}}, <No data fields>}
        usericondir = <value optimised out>
        create_new = <value optimised out>
#39 0x00007ffff09eaeff in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#40 0x0000000000664f81 in _start ()

Alex Valavanis (valavanisalex) wrote :
description: updated
tags: added: crash gradient
Changed in inkscape:
importance: Undecided → High
Alvin Penner (apenner) wrote :
Download full text (4.0 KiB)

confirmed on Windows XP, bzr rev 10356, backtrace attached:

Program received signal SIGSEGV, Segmentation fault.
0x0160ac67 in gtk_widget_is_drawable ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
(gdb) bt
#0 0x0160ac67 in gtk_widget_is_drawable ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#1 0x019098cb in libgtkmm-2!_ZNK3Gtk6Widget15get_is_drawableEv ()
   from C:\InkscapeBZR\inkscape\libgtkmm-2.4-1.dll
#2 0x018fe107 in libgtkmm-2!_ZNK3Gtk6Widget11is_drawableEv ()
   from C:\InkscapeBZR\inkscape\libgtkmm-2.4-1.dll
#3 0x00a48a10 in Inkscape::UI::Widget::ColorPreview::setRgba32 ()
#4 0x008e1f83 in sp_gradient_vector_color_changed ()
#5 0x63a45aca in g_closure_invoke ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#6 0x63a56990 in signal_emit_unlocked_R ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#7 0x63a5e066 in g_signal_emit_valist ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#8 0x63a5e1f6 in g_signal_emit ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#9 0x00a49c04 in ColorNotebook::_entryModified ()
#10 0x00a49d4a in ColorNotebook::_entryDragged ()
#11 0x63a45aca in g_closure_invoke ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#12 0x63a56990 in signal_emit_unlocked_R ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#13 0x63a5e066 in g_signal_emit_valist ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#14 0x63a5e1f6 in g_signal_emit ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#15 0x008fcefa in ColorScales::_recalcColor ()
#16 0x008ff375 in ColorScales::_adjustmentChanged ()
#17 0x63a45aca in g_closure_invoke ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#18 0x63a56990 in signal_emit_unlocked_R ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#19 0x63a5e066 in g_signal_emit_valist ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#20 0x63a5e1f6 in g_signal_emit ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#21 0x01420fed in gtk_adjustment_value_changed ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#22 0x0155f174 in gtk_spin_button_real_spin ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#23 0x0155fcff in start_spinning ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#24 0x01563132 in gtk_spin_button_button_press ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#25 0x014ea09a in _gtk_marshal_BOOLEAN__BOXED ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#26 0x63a45aca in g_closure_invoke ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#27 0x63a567c8 in signal_emit_unlocked_R ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#28 0x63a5de8e in g_signal_emit_valist ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#29 0x63a5e1f6 in g_signal_emit ()
   from C:\InkscapeBZR\inkscape\libgobject-2.0-0.dll
#30 0x0160a2bf in gtk_widget_event_internal ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#31 0x014e837b in gtk_propagate_event ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#32 0x014e8837 in gtk_main_do_event ()
   from C:\InkscapeBZR\inkscape\libgtk-win32-2.0-0.dll
#33 0x6c37dc4b in gdk_event_dispatch ()
   fro...

Read more...

Changed in inkscape:
status: New → Confirmed
su_v (suv-lp) wrote :

See also
<http://thread.gmane.org/gmane.comp.graphics.inkscape.devel/36775>

AFAICT a regression introduced with the merge of the cairo-rendering branch.

tags: added: regression renderer-cairo ui
su_v (suv-lp) wrote :

Also reported on jabber by Loadus (crash when dragging the 'Offset' slider of the selected gradient stop) and on irc by UweSch (crash when entering a new RGBA hex string as color value).

Changed in inkscape:
assignee: nobody → Jon A. Cruz (jon-joncruz)
status: Confirmed → In Progress
Jon A. Cruz (jon-joncruz) wrote :

Code was switched to use a C++ ColorPreview object, but was storing a C pointer to a plain GTK+ object wrapped by that ColorPreview instance.

Jon A. Cruz (jon-joncruz) wrote :

Fix committed in trunk revision 10404

Changed in inkscape:
status: In Progress → Fix Committed
milestone: none → 0.49
su_v (suv-lp) wrote :

Fix tested and confirmed with 0.48+devel r10405 on Mac OS X 10.5.8 (i386)

Changing status to 'Fix Released' in accordance to [1] - the reported issue never occurred in a released version, only in current trunk. Please revert the bug status to 'Fix Committed' if you don't agree.

[1] <http://wiki.inkscape.org/wiki/index.php/Bug_management>

Changed in inkscape:
milestone: 0.49 → none
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers