Vscode crashing

Hello,
so after updating my vscode from snap store,so i opened the vscode and tried to open any folder the app just crashes.
any solution? fresh installed

This is probably better meant for the #snap category. That being said, do you see any output from running the snap via the terminal, and what is the output of snap version ?

Info
[parkar_brothers@Homelaptop ~]$ snap version
snap     2.45.2-1
snapd    2.45.2-1
series   16
manjaro  -
kernel   5.4.52-1-MANJARO
[parkar_brothers@Homelaptop ~]$ snap info code
name:      code
summary:   Code editing. Redefined.
publisher: Visual Studio Code (vscode*)
store-url: https://snapcraft.io/code
contact:   https://twitter.com/code
license:   unset
description: |
  Visual Studio Code is a lightweight but powerful source code editor which runs on your desktop and
  is available for Linux, macOS and Windows. It comes with built-in support for JavaScript,
  TypeScript and Node.js and has a rich ecosystem of extensions for other languages (such as C++,
  C#, Java, Python, PHP, Go) and runtimes (such as .NET and Unity).
  
  By downloading and using Visual Studio Code, you agree to the license terms
  (https://code.visualstudio.com/License/) and privacy statement
  (https://privacy.microsoft.com/en-us/privacystatement). Visual Studio Code automatically sends
  telemetry data and crash dumps to help us improve the product. If you would prefer not to have
  this data sent please go see
  https://code.visualstudio.com/docs/supporting/FAQ#_how-to-disable-crash-reporting to learn how to
  disable it.
  
  VSCode
  https://github.com/Microsoft/vscode
commands:
  - code
  - code.url-handler
snap-id:      Ht0aUHi7ofh9Fbwh6m7jUN2pAy6kzBiu
tracking:     latest/stable
refresh-date: today at 14:56 IST
channels:
  latest/stable:    17299e41 2020-07-21 (38) 151MB classic
  latest/candidate: ^                              
  latest/beta:      ^                              
  latest/edge:      ^                              
installed:          17299e41            (38) 151MB classic
[parkar_brothers@Homelaptop ~]$
When reproduced:

Go to File > Open Folder && Go to File > Save

Help > About

After 5-7 seconds the App crashes

I see the same on Arch. A core dump gets generated so that may help further debugging.

GDB backtrace shows:

#0  0x00007f0574e48438 in raise () from /snap/core/current/lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f0574e4a03a in abort () from /snap/core/current/lib/x86_64-linux-gnu/libc.so.6
#2  0x00007f057a50f955 in g_assertion_message () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f057a50f9ba in g_assertion_message_expr () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f05775b38b7 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#5  0x00007f05775b3fb5 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#6  0x00007f05775b4084 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#7  0x00007f05775b4278 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#8  0x00007f05775c780d in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#9  0x00007f057752c5c3 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#10 0x00007f05775307a2 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007f05775c7fc3 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007f05776902a4 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#13 0x00007f05776904ef in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#14 0x00007f05776905a7 in gtk_widget_get_preferred_width () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#15 0x00007f05774db73f in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007f057752c5c3 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#17 0x00007f05775307a2 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#18 0x00007f05774dc253 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#19 0x00007f05776902a4 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#20 0x00007f05776904ef in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#21 0x00007f05776905a7 in gtk_widget_get_preferred_width () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#22 0x00007f05776902a4 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#23 0x00007f05776904ef in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#24 0x00007f05776905a7 in gtk_widget_get_preferred_width () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#25 0x00007f05774d6501 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#26 0x00007f057766c136 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#27 0x00007f05776902a4 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#28 0x00007f05776904ef in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#29 0x00007f05776905a7 in gtk_widget_get_preferred_width () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#30 0x00007f057752c5c3 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#31 0x00007f05775307a2 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#32 0x00007f05775e16b7 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#33 0x00007f05776902a4 in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0
#34 0x00007f05776904ef in ?? () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libgtk-3.so.0

There’s an abort() called somewhere from the Gtk3 lib. I tried passing GTK_DEBUG=all in the environment but no success there. However, we have the stack trace:

(gdb) frame 2
#2  0x00007ffbbc889955 in g_assertion_message () from /var/lib/snapd/snap/code/38/usr/share/code/../../lib/x86_64-linux-gnu/libglib-2.0.so.0
(gdb) info registers 
rax            0x0                 0
rbx            0x3c30ee86e000      66180857913344
rcx            0x7ffbb71c2438      140719085593656
rdx            0x6                 6
rsi            0x6fd8d             458125
rdi            0x6fd8d             458125
rbp            0x84                0x84
rsp            0x7ffc24c57240      0x7ffc24c57240
r8             0x3c30ee86e000      66180857913344
r9             0x0                 0
r10            0x8                 8
r11            0x206               518
r12            0x7ffbbcb2cde0      140719179353568
r13            0x7ffc24c57240      140720925405760
r14            0x7ffbb9b428c0      140719129110720
r15            0x3c30ee9466f0      66180858799856
rip            0x7ffbbc889955      0x7ffbbc889955 <g_assertion_message+437>
eflags         0x206               [ PF IF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0

The g_assertion_message is declared as follows:

g_assertion_message (const char     *domain,
                     const char     *file,
                     int             line,
                     const char     *func,
                     const char     *message)

With AMD64 SysV ABI convention, message should be passed in r8, so we get:

(gdb) print (char*)0x3c30ee86e000
$11 = 0x3c30ee86e000 "\032g%\272\315\303\377\377\332\021\242T\375\377\377\377/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)"

Skipping the usesless bits:

gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)

Still, I have no clue why the assert would fail. More investigation is needed.

1 Like

This fix worked for me today no official fix yet so.
You can work around this by symlinking in the host system the gdk-pixbuf-2.0 folder to the expected Debian/Ubuntu path.
try this line:

$ sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
1 Like