Crash when changing colour settings in gradient editor

Bug #804243 reported by Alex Valavanis
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Inkscape
Fix Released
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 ()

Revision history for this message
Alex Valavanis (valavanisalex) wrote :
description: updated
tags: added: crash gradient
Changed in inkscape:
importance: Undecided → High
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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
Revision history for this message
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.

Revision history for this message
Jon A. Cruz (jon-joncruz) wrote :

Fix committed in trunk revision 10404

Changed in inkscape:
status: In Progress → Fix Committed
milestone: none → 0.49
Revision history for this message
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  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.