Sublime Forum

Sublime Merge crashes without any logs

#1

I have been running sublime merge on Linux CentOS 7 for months without any issues, now it is crashing whenever I try to do anything in a pop-down menu (like pop stash, switch branches, anything!).

I can’t find any logs or other information which might help diagnose this. I updated my sublime-merge package but that didn’t help - it’s on build #2047 now.

Does anyone know why this is happening or where I can find useful logs or information about this?

Thanks!

0 Likes

#2

Hi @jimmy,

Thank you for reporting this issue - when you say pop-down menu, are you referring to the right-click context menus?

Additionally, could you confirm:

  • whether you are using Gnome as the desktop environment or an alternative
  • whether you have hardware acceleration enabled (Visible under Preferences... > Preferences > Advanced)

Thanks,
- Dylan

0 Likes

#3

Yes, I’m referring to right-clicking on “Repository” specifically - trying to mess with my branches.

I am using MATE desktop environment 1.16.1 , and I looked online for a way to find out if it’s using hardware acceleration but cannot - my “Preferences” doesn’t have an “advanced” section.

Thanks for the response!

0 Likes

#4

I noticed this error in /var/log/message:

Mar 2 16:01:38 srvottcaprdp01 kernel: sublime_merge[4107]: segfault at 0 ip 00007fd7efddefbb sp 00007fff797bd830 error 4 in libgobject-2.0.so.0.5600.1[7fd7efdd1000+4f000]
Mar 2 16:01:38 srvottcaprdp01 abrt-hook-ccpp: Process 4107 (sublime_merge) of user 1001 killed by SIGSEGV - ignoring (repeated crash)

0 Likes

#5

Hi @jimmy,

Thanks for the additional information - it looks as if GTK is crashing.

Would you mind performing the following steps:

  1. Run gdb ls via the terminal
  2. It will likely say something like Missing separate debug infos, use:...
  3. Copy the command after use:, and exit gdb
  4. Paste the copied command into the terminal and run it to install the debug symbols
  5. Start Sublime Merge via the desktop environment
  6. In the terminal, run ps -elf | grep sublime_merge and locate the process ID of Sublime Merge (usually the number next to your username in the output)
  7. Run sudo gdb attach PROCESS_ID where PROCESS_ID is the ID you found in the previous step
  8. Once gdb has attached, type continue and hit enter
  9. Attempt to reproduce the issue in Sublime Merge
  10. gdb should halt once it detects the segfault - at this stage type bt and hit enter
  11. Once the results of the backtrace displayed, share them here

Let me know if you have any issues with the above steps.

Kind regards,
- Dylan

1 Like

#6

I won’t have access to my Linux VM until Tuesday so I hope you don’t mind waiting for my reply until then?

0 Likes

#7

Steps 2 and 3 are a little different for me. I am including the output of gdb ls below:

[jsantry@srvottcaprdp01 caprica]$ gdb ls
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-94.el7
Copyright © 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type “show copying”
and “show warranty” for details.
This GDB was configured as “x86_64-redhat-linux-gnu”.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/
Reading symbols from /usr/bin/ls…Reading symbols from /usr/bin/ls…(no debugging symbols found)…done.
(no debugging symbols found)…done.
warning: File “/home/jsantry/caprica/.gdbinit” auto-loading has been declined by your `auto-load safe-path’ set to “$debugdir:$datadir/auto-load:/usr/bin/mono-gdb.py:/usr/lib/golang/src/runtime/runtime-gdb.py”.
To enable execution of this file add
add-auto-load-safe-path /home/jsantry/caprica/.gdbinit
line to your configuration file “/home/jsantry/.gdbinit”.
To completely disable this security protection add
set auto-load safe-path /
line to your configuration file “/home/jsantry/.gdbinit”.
For more information about this security protection see the
“Auto-loading safe path” section in the GDB manual. E.g., run from the shell:
info “(gdb)Auto-loading safe path”
Missing separate debuginfos, use: debuginfo-install coreutils-8.22-18.el7.x86_64
(gdb) quit


I ran “debuginfo-install coreutils-8.22-18.el7.x86_64” since it was the text I found after “use:” but it doesn’t appear to have installed enough debugging info… what did I do wrong?

Thanks!

0 Likes

#8

Hi @jimmy,

Thanks for the extra information! Depending on the output of the backtrace, we may need to install different debug symbols.

When you have a moment, would you mind sharing the contents of the backtrace from step 10.

Thanks,
- Dylan

0 Likes

#9

(gdb) cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x00007fc2cd680fbb in g_type_class_meta_marshal () from /lib64/libgobject-2.0.so.0
(gdb) bt
#0 0x00007fc2cd680fbb in g_type_class_meta_marshal () at /lib64/libgobject-2.0.so.0
#1 0x00007fc2cd682a68 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#2 0x00007fc2cd694977 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#3 0x00007fc2cd69d0e1 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#4 0x00007fc2cd69d3cf in g_signal_emit () at /lib64/libgobject-2.0.so.0
#5 0x00007fc2c498d066 in gtk_style_context_do_invalidate () at /lib64/libgtk-3.so.0
#6 0x00007fc2c498f50a in gtk_style_context_invalidate () at /lib64/libgtk-3.so.0
#7 0x00007fc2c499091c in gtk_style_context_finalize () at /lib64/libgtk-3.so.0
#8 0x00007fc2cd687ad4 in g_object_unref () at /lib64/libgobject-2.0.so.0
#9 0x0000000000781b83 in ()
#10 0x00007fc2cd687ad4 in g_object_unref () at /lib64/libgobject-2.0.so.0
#11 0x00007fc2c484e390 in gtk_container_destroy () at /lib64/libgtk-3.so.0
#12 0x00007fc2cd6829e2 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#13 0x00007fc2cd6954c4 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#14 0x00007fc2cd69d0e1 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#15 0x00007fc2cd69d3cf in g_signal_emit () at /lib64/libgobject-2.0.so.0
#16 0x00007fc2c4a36688 in gtk_widget_dispose () at /lib64/libgtk-3.so.0
#17 0x00007fc2cd689549 in g_object_run_dispose () at /lib64/libgobject-2.0.so.0
#18 0x00007fc2c49170fd in gtk_menu_shell_forall () at /lib64/libgtk-3.so.0
#19 0x00007fc2c484e390 in gtk_container_destroy () at /lib64/libgtk-3.so.0
#20 0x00007fc2cd6829e2 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#21 0x00007fc2cd6954c4 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#22 0x00007fc2cd69d0e1 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#23 0x00007fc2cd69d3cf in g_signal_emit () at /lib64/libgobject-2.0.so.0
#24 0x00007fc2c4a36688 in gtk_widget_dispose () at /lib64/libgtk-3.so.0
#25 0x00007fc2cd689549 in g_object_run_dispose () at /lib64/libgobject-2.0.so.0
#26 0x00007fc2c4a3edc9 in gtk_window_forall () at /lib64/libgtk-3.so.0
#27 0x00007fc2c484e390 in gtk_container_destroy () at /lib64/libgtk-3.so.0
#28 0x00007fc2cd682a68 in g_closure_invoke () at /lib64/libgobject-2.0.so.0
#29 0x00007fc2cd6954c4 in signal_emit_unlocked_R () at /lib64/libgobject-2.0.so.0
#30 0x00007fc2cd69d0e1 in g_signal_emit_valist () at /lib64/libgobject-2.0.so.0
#31 0x00007fc2cd69d3cf in g_signal_emit () at /lib64/libgobject-2.0.so.0
#32 0x00007fc2c4a36688 in gtk_widget_dispose () at /lib64/libgtk-3.so.0
#33 0x00007fc2c4a457eb in gtk_window_dispose () at /lib64/libgtk-3.so.0
#34 0x00007fc2cd689549 in g_object_run_dispose () at /lib64/libgobject-2.0.so.0
#35 0x0000000000764520 in ()
#36 0x0000000000764580 in ()
#37 0x00007fc2cd3a5cc7 in g_idle_dispatch () at /lib64/libglib-2.0.so.0
#38 0x00007fc2cd3a9099 in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#39 0x00007fc2cd3a93f8 in g_main_context_iterate.isra.19 () at /lib64/libglib-2.0.so.0
#40 0x00007fc2cd3a96ca in g_main_loop_run () at /lib64/libglib-2.0.so.0
#41 0x00007fc2c48f9045 in gtk_main () at /lib64/libgtk-3.so.0
#42 0x000000000076a8ab in ()
#43 0x00000000005aed15 in ()
#44 0x00007fc2cc4f1b35 in __libc_start_main (main=
0x5ab687, argc=2, ubp_av=0x7ffd0ccf2118, init=, fini=, rtld_fini=, stack_end=0x7ffd0ccf2108) at …/csu/libc-start.c:274
#45 0x00000000004d402a in ()
(gdb)


That is the backtrace right after the SEGV, let me know if you need anything else!

0 Likes

#10

After taking a look at the GTK source code it looks like you’re running a fairly old version of GTK that might be missing a number of crash fixes from newer versions, but I wasn’t able to narrow down exactly which fix could be the culprit. I did install centos 7 in a VM but was unable to reproduce any crashes. Are you running the latest updates to centos 7? Can you say what exact version of GTK you’re using?

0 Likes

#11

Every time I try to put the GTK version into a comment I get this error:

Sorry, new users can only mention 2 users in a post.

0 Likes

#12

If it has “@ something” you can put a space behind the @.

0 Likes

#13

Here it is (thanks!):

[jsantry@ srvottcaprdp01 caprica]$ sudo yum list installed | grep -i gtk
adwaita-gtk2-theme.x86_64 3.14.2.2-2.el7 @ anaconda
clutter-gtk.x86_64 1.4.4-7.el7 @ anaconda
gtk-murrine-engine.x86_64 0.98.2-10.el7 @ epel
gtk2.i686 2.24.28-8.el7 @ anaconda
gtk2.x86_64 2.24.28-8.el7 @ anaconda
gtk2-devel.i686 2.24.28-8.el7 @ anaconda
gtk2-engines.x86_64 2.20.2-7.el7 @ epel
gtk3.x86_64 3.14.13-20.el7 @ base
gtkglext-devel.i686 1.2.0-11.el6 @ capbuild3
gtkglext-libs.i686 1.2.0-11.el6 @ capbuild3
gtkmm24.x86_64 2.24.2-8.el7 @ anaconda
gtkmm30.x86_64 3.8.1-3.el7 @ anaconda
gtksourceview2.x86_64 2.11.2-15.el7 @ epel
gtksourceview3.x86_64 3.14.3-1.el7 @ anaconda
gtkspell3.x86_64 3.0.3-4.el7 @ anaconda
libcanberra-gtk2.x86_64 0.30-5.el7 @ anaconda
libcanberra-gtk3.x86_64 0.30-5.el7 @ anaconda
libnm-gtk.x86_64 1.4.0-2.el7 @ base
libreport-gtk.x86_64 2.1.11-35.el7.centos @ base
lightdm-gtk.x86_64 1.8.5-19.el7 @ epel
lightdm-gtk-common.noarch 1.8.5-19.el7 @ epel
pinentry-gtk.x86_64 0.8.1-17.el7 @ base
pygtk2.x86_64 2.24.0-9.el7 @ anaconda
pygtk2-libglade.x86_64 2.24.0-9.el7 @ anaconda
pygtksourceview.x86_64 2.10.1-10.el7 @ epel
transmission-gtk.x86_64 2.92-1.el7 @ epel
usermode-gtk.x86_64 1.111-5.el7 @ anaconda
webkitgtk.x86_64 2.4.9-1.el7 @ epel
webkitgtk3.x86_64 2.4.9-6.el7 @ base
wxGTK.x86_64 2.8.12-20.el7 @ epel
xdg-user-dirs-gtk.x86_64 0.10-4.el7 @ anaconda
[jsantry@ srvottcaprdp01 caprica]$

0 Likes

#14

With CentOS 7 I’m getting GTK 3.22 from @updates. I’m not sure why you don’t have that.

0 Likes

#15

Which package are you talking about? I have gtk2.x86_64 and also gtk3.x86_64 but not a straight “gtk”…

0 Likes

#16

The gtk3.x86_64 package.

0 Likes

#17

Well I’ll be… I just updated “gtk3” and sublime merge is working fine again! Thanks SO MUCH for all of your help!

For the record - I had already run “sudo yum update” several times but somehow gtk3 wasn’t being updated I guess.

0 Likes

#18

I’m not familiar enough to know what was going on there, but glad you got it working.

0 Likes

#19

No worries, thanks again!

0 Likes