After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 763748 - segfault in g_datalist_id_dup_data
segfault in g_datalist_id_dup_data
Status: RESOLVED OBSOLETE
Product: gtk+
Classification: Platform
Component: .General
3.18.x
Other Linux
: Normal critical
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2016-03-16 12:23 UTC by Brian J. Murrell
Modified: 2018-02-10 12:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Brian J. Murrell 2016-03-16 12:23:09 UTC
From the downstream bug report at https://bugzilla.redhat.com/show_bug.cgi?id=1299747 gnome-terminal is segfaulting multiple times a day now.

Here's the backtrace from downstream:

[New LWP 23935]
[New LWP 23937]
[New LWP 23936]
[New LWP 23938]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/libexec/gnome-terminal-server'.
Program terminated with signal SIGSEGV, Segmentation fault.

Thread 1 (Thread 0x7f15f6a73a80 (LWP 23935))

  • #0 g_datalist_id_dup_data
    at gdataset.c line 858
  • #1 g_datalist_id_get_data
    at gdataset.c line 798
  • #2 g_object_unref
    at gobject.c line 3109
  • #3 g_value_unset
    at gvalue.c line 272
  • #4 g_signal_emit_valist
    at gsignal.c line 3412
  • #5 g_signal_emit
    at gsignal.c line 3439
  • #6 gtk_css_node_set_style
    at gtkcssnode.c line 867
  • #7 gtk_css_node_ensure_style
    at gtkcssnode.c line 928
  • #8 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #9 gtk_css_node_ensure_style
    at gtkcssnode.c line 921
  • #10 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #11 gtk_css_node_ensure_style
    at gtkcssnode.c line 914
  • #12 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #13 gtk_css_node_ensure_style
    at gtkcssnode.c line 914
  • #14 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #15 gtk_css_node_ensure_style
    at gtkcssnode.c line 914
  • #16 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #17 gtk_css_node_get_style
    at gtkcssnode.c line 949
  • #18 gtk_style_context_get_property
  • #19 gtk_style_context_get_valist
  • #20 gtk_style_context_get
  • #21 update_pango_context
    at gtkwidget.c line 10215
  • #22 g_cclosure_marshal_VOID__FLAGSv
    at gmarshal.c line 1570
  • #23 _g_closure_invoke_va
    at gclosure.c line 864
  • #24 g_signal_emit_valist
    at gsignal.c line 3292
  • #25 g_signal_emit
    at gsignal.c line 3439
  • #26 gtk_widget_propagate_state
    at gtkwidget.c line 12780
  • #27 gtk_box_forall
    at gtkbox.c line 2586
  • #28 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #29 gtk_overlay_forall
    at gtkoverlay.c line 617
  • #30 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #31 gtk_notebook_forall
    at gtknotebook.c line 4581
  • #32 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #33 gtk_box_forall
    at gtkbox.c line 2602
  • #34 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #35 gtk_window_forall
    at gtkwindow.c line 8150
  • #36 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #37 gtk_widget_update_state_flags
    at gtkwidget.c line 8677
  • #38 ensure_state_flag_backdrop
    at gtkwindow.c line 11822
  • #39 gtk_window_state_event
    at gtkwindow.c line 7575
  • #40 _gtk_marshal_BOOLEAN__BOXED
    at gtkmarshalers.c line 86
  • #41 g_closure_invoke
    at gclosure.c line 801
  • #42 signal_emit_unlocked_R
    at gsignal.c line 3665
  • #43 g_signal_emit_valist
    at gsignal.c line 3393
  • #44 g_signal_emit
    at gsignal.c line 3439
  • #45 gtk_widget_event_internal
    at gtkwidget.c line 7692
  • #46 gtk_main_do_event
    at gtkmain.c line 1795
  • #47 gdk_event_source_dispatch
    at gdkeventsource.c line 364
  • #48 g_main_dispatch
    at gmain.c line 3154
  • #49 g_main_context_dispatch
    at gmain.c line 3769
  • #50 g_main_context_iterate
    at gmain.c line 3840
  • #51 g_main_context_iteration
    at gmain.c line 3901
  • #52 g_application_run
    at gapplication.c line 2311
  • #53 main
    at server.c line 187

There may also be a duplicate filed here: https://bugzilla.redhat.com/show_bug.cgi?id=1283127
Comment 1 Christian Persch 2016-03-16 15:02:03 UTC
-> gtk+
Comment 2 Matthias Clasen 2016-03-16 15:08:10 UTC
what version of gtk is this with ?
Comment 3 Brian J. Murrell 2016-03-16 15:20:21 UTC
From the downstream bug report in attachment https://bugzilla.redhat.com/attachment.cgi?id=1116074:

/usr/lib64/libgtk-3.so.0.1800.6 gtk3-3.18.6-1.fc23.x86_64 (Fedora Project) 1449653338
Comment 4 Debarshi Ray 2016-03-17 18:52:10 UTC
https://retrace.fedoraproject.org/faf/problems/1838386/ has a bunch of similar backtraces. While they originate from different widgets, they all end up in:
  style_context = _gtk_widget_get_style_context (widget);                       
  gtk_style_context_get (style_context,                                         
                         _gtk_widget_get_state_flags (widget),                  
                         "font", &font_desc,                                    
                         NULL); 

Crazy guess: did you happen to have changed the theme or fonts?

I am asking since this is against GNOME 3.18.x / Fedora 23, and I run the stock gnome-terminal and gtk3 binaries from F23 and have never once seen this, nor has the vast majority of users. Otherwise the bug would be much more popular. While it does seem to be common for some people. Makes me wonder if a particular tweak to the default install triggers this.
Comment 5 Brian J. Murrell 2016-03-17 18:57:19 UTC
No font, theme or other change.  Was just watching a video with mplayer, perhaps mplayer ended or not, I don't exactly recall but then poof, all my terminals disappear.
Comment 6 Brian J. Murrell 2016-03-27 18:02:01 UTC
I think this is related to running mplayer in the terminal session.  It always seems to happen when mplayer is involved.  I got another interesting case where all of my gnome-terminals are wedged although it didn't crash.  The stacktrace for that looks like this:

Thread 1 (Thread 0x7f8e92a0da80 (LWP 9793))

  • #0 syscall
    at ../sysdeps/unix/sysv/linux/x86_64/syscall.S line 38
  • #1 g_pointer_bit_lock
    at gbitlock.c line 81
  • #2 g_pointer_bit_lock
    at gbitlock.c line 428
  • #3 g_datalist_id_dup_data
    at gdataset.c line 209
  • #4 g_datalist_id_dup_data
    at gdataset.c line 852
  • #5 g_datalist_id_get_data
    at gdataset.c line 798
  • #6 g_object_unref
    at gobject.c line 3109
  • #7 gtk_css_value_image_free
    at gtkcssimagevalue.c line 32
  • #8 gtk_css_value_array_free
    at gtkcssarrayvalue.c line 39
  • #9 g_ptr_array_foreach
    at garray.c line 1502
  • #10 ptr_array_free
    at garray.c line 1088
  • #11 g_ptr_array_unref
    at garray.c line 1036
  • #12 gtk_css_static_style_dispose
    at gtkcssstaticstyle.c line 79
  • #13 g_object_unref
    at gobject.c line 3142
  • #14 g_value_unset
    at gvalue.c line 272
  • #15 g_signal_emit_valist
    at gsignal.c line 3412
  • #16 g_signal_emit
    at gsignal.c line 3439
  • #17 gtk_css_node_ensure_style
    at gtkcssnode.c line 867
  • #18 gtk_css_node_ensure_style
    at gtkcssnode.c line 928
  • #19 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #20 gtk_css_node_ensure_style
    at gtkcssnode.c line 921
  • #21 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #22 gtk_css_node_ensure_style
    at gtkcssnode.c line 914
  • #23 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #24 gtk_css_node_ensure_style
    at gtkcssnode.c line 914
  • #25 gtk_css_node_ensure_style
    at gtkcssnode.c line 910
  • #26 gtk_css_node_ensure_style
    at gtkcssnode.c line 914
  • #27 gtk_css_node_get_style
    at gtkcssnode.c line 910
  • #28 gtk_css_node_get_style
    at gtkcssnode.c line 949
  • #29 gtk_style_context_get_property
  • #30 gtk_style_context_get_valist
  • #31 gtk_style_context_get
  • #32 update_pango_context
    at gtkwidget.c line 10215
  • #33 g_cclosure_marshal_VOID__FLAGSv
    at gmarshal.c line 1570
  • #34 _g_closure_invoke_va
    at gclosure.c line 864
  • #35 g_signal_emit_valist
    at gsignal.c line 3292
  • #36 g_signal_emit
    at gsignal.c line 3439
  • #37 gtk_widget_propagate_state
    at gtkwidget.c line 12780
  • #38 gtk_box_forall
    at gtkbox.c line 2586
  • #39 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #40 gtk_overlay_forall
    at gtkoverlay.c line 617
  • #41 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #42 gtk_notebook_forall
    at gtknotebook.c line 4581
  • #43 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #44 gtk_box_forall
    at gtkbox.c line 2602
  • #45 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #46 gtk_window_forall
    at gtkwindow.c line 8150
  • #47 gtk_widget_propagate_state
    at gtkwidget.c line 12840
  • #48 gtk_widget_update_state_flags
    at gtkwidget.c line 8677
  • #49 gtk_window_state_event
    at gtkwindow.c line 11822
  • #50 gtk_window_state_event
    at gtkwindow.c line 7575
  • #55 <emit signal ??? on instance 0x562adcd69820 [TerminalWindow]>
    at gsignal.c line 3439
  • #56 gtk_widget_event_internal
    at gtkwidget.c line 7692
  • #57 gtk_main_do_event
    at gtkmain.c line 1795
  • #58 gdk_event_source_dispatch
    at gdkeventsource.c line 364
  • #59 g_main_context_dispatch
    at gmain.c line 3154
  • #60 g_main_context_dispatch
    at gmain.c line 3769
  • #61 g_main_context_iterate
    at gmain.c line 3840
  • #62 g_main_context_iteration
    at gmain.c line 3901
  • #63 g_application_run
    at gapplication.c line 2311
  • #64 main
    at server.c line 187

Comment 7 Matthias Clasen 2016-04-02 16:21:15 UTC
(In reply to Brian J. Murrell from comment #3)
> From the downstream bug report in attachment
> https://bugzilla.redhat.com/attachment.cgi?id=1116074:
> 
> /usr/lib64/libgtk-3.so.0.1800.6 gtk3-3.18.6-1.fc23.x86_64 (Fedora Project)
> 1449653338

The stacktraces in comment #0 has css nodes, so it can not be from gtk 3.18
Comment 8 Brian J. Murrell 2016-04-03 17:57:13 UTC
gtk 3.18 is what I have installed here on F23:

$ rpm -qa | grep gtk3
zukitwo-gtk3-theme-0.0.2-1.fc23.noarch
libappindicator-gtk3-12.10.0-10.fc23.x86_64
avahi-ui-gtk3-0.6.32-0.4.rc.fc23.x86_64
ibus-gtk3-1.5.11-1.fc23.x86_64
webkitgtk3-2.4.9-3.fc23.x86_64
libindicator-gtk3-12.10.1-5.fc23.x86_64
gtk3-devel-3.18.6-1.fc23.x86_64
gtk3-debuginfo-3.16.6-1.fc22.x86_64
libcanberra-gtk3-0.30-10.fc23.x86_64
caribou-gtk3-module-0.4.19-1.fc23.x86_64
spice-gtk3-0.30-1.fc23.x86_64
libdbusmenu-gtk3-12.10.2-9.fc23.x86_64
gtk3-immodule-xim-3.18.6-1.fc23.x86_64
gtk3-3.18.6-1.fc23.x86_64
Comment 9 Debarshi Ray 2016-04-04 08:27:35 UTC
(In reply to Matthias Clasen from comment #7)
> (In reply to Brian J. Murrell from comment #3)
> > From the downstream bug report in attachment
> > https://bugzilla.redhat.com/attachment.cgi?id=1116074:
> > 
> > /usr/lib64/libgtk-3.so.0.1800.6 gtk3-3.18.6-1.fc23.x86_64 (Fedora Project)
> > 1449653338
> 
> The stacktraces in comment #0 has css nodes, so it can not be from gtk 3.18

That is a very good point. I should have thought of that before.

(In reply to Brian J. Murrell from comment #8)
> gtk 3.18 is what I have installed here on F23:

Are you sure that the libgtk-3.so ($ ldd /usr/libexec/gnome-terminal-server | grep gtk) is not coming from a newer non-RPM build of gtk+?
Comment 10 Brian J. Murrell 2016-04-04 12:06:44 UTC
(In reply to Debarshi Ray from comment #9)
> 
> Are you sure that the libgtk-3.so ($ ldd /usr/libexec/gnome-terminal-server
> | grep gtk)

$ ldd /usr/libexec/gnome-terminal-server | grep gtk
	libgtk-3.so.0 => /lib64/libgtk-3.so.0 (0x00007fd4fa276000)
$ rpm -qf /lib64/libgtk-3.so.0
gtk3-3.18.6-1.fc23.x86_64
$ rpm -Vf /lib64/libgtk-3.so.0
$

> is not coming from a newer non-RPM build of gtk+?

Yes, absolutely, without a doubt, as you can see above.  Plus, I don't locally build/install software here.  I strictly install only via RPM.  I don't believe in "make install" except as a vehicle to getting software into an RPM, even if I were to build something locally.

The Fedora RPM looks like a pretty clean build:

http://pkgs.fedoraproject.org/cgit/rpms/gtk3.git/tree/gtk3.spec?h=f23

They don't even apply 1 patch.
Comment 11 Matthias Clasen 2016-04-04 12:55:35 UTC
Sorry, I was mistaken - gtkcssnode.c does in fact exist on the 3.18 branch already.
Comment 12 Matthias Clasen 2018-02-10 04:59:18 UTC
We're moving to gitlab! As part of this move, we are moving bugs to NEEDINFO if they haven't seen activity in more than a year. If this issue is still important to you and still relevant with GTK+ 3.22 or master, please reopen it and we will migrate it to gitlab.