Repository: microsoft/vscode (TypeScript) — Bug Fix

Issue:
Snap crashes when native dialogs open
<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- Please search existing issues to avoid creating duplicates. -->
<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed: https://code.visualstudio.com/insiders/ -->

<!-- Use Help > Report Issue to prefill these. -->
- VSCode Version: 1.47.0 insiders (0913b1aa)
- OS Version: Fedora 32

Steps to Reproduce:

1. Go to `Help -> Check for Updates...` or `Help -> About`
Nothing happens and then VS Code crashes.

<!-- Launch with `code --disable-extensions` to check. -->
Does this issue occur when all extensions are disabled?: Yes



Discussion:
Can you show me any crash output, maybe when running `code --verbose`?
@joaomoreno Sure! Here are the logs when I try to open About.

```
[main 2020-06-24T12:53:44.680Z] menubar#runActionInRenderer { type: 'commandId', commandId: 'workbench.action.showAboutDialog' }
[33368:0624/095344.681821:INFO:CONSOLE(1665)] "%cTRACE color: #888 CommandService#executeCommand workbench.action.showAboutDialog", source: file:///var/lib/snapd/snap/code-insiders/469/usr/share/code-insiders/resources/app/out/vs/workbench/workbench.desktop.main.js (1665)
(code-insiders:33368): GdkPixbuf-WARNING **: 09:53:44.716: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(code-insiders:33368): Gtk-WARNING **: 09:53:44.716: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
(code-insiders:33368): GdkPixbuf-WARNING **: 09:53:44.717: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
**
Gtk:ERROR:/build/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
Server response: {"status":"Success","validDiagnostic
```
Is this the snap package?
Yes.
cc @Tyriar 
@caponetto does running `sudo gdk-pixbuf-query-loaders --update-cache` help ?
@deepak1556 Same error after running this command.
Thanks! will let the snap devs take it from here.
Version: 1.47.0-insider (7923112cdd20575406ec547b55a99c289dd7d7e2)
OS version: Linux x64 5.4.43-1-MANJARO snap

This error happens whenever a modal dialog is created. I got this while trying to Git pull, and move files.

<details><summary>Backtrace:</summary>

```
13:12:16 systemd-coredum: Process 44002 (code-insiders) of user 1000 dumped core.

Stack trace of thread 44002:
#0  0x00007f29e1848428 raise (libc.so.6 + 0x35428)
#1  0x00007f29e184a02a abort (libc.so.6 + 0x3702a)
#2  0x00007f29e6d0a955 g_assertion_message (libglib-2.0.so.0 + 0x73955)
#3  0x00007f29e6d0a9ba g_assertion_message_expr (libglib-2.0.so.0 + 0x739ba)
#4  0x00007f29e3b5d8b7 n/a (libgtk-3.so.0 + 0x1f78b7)
#5  0x00007f29e3b5df57 n/a (libgtk-3.so.0 + 0x1f7f57)
#6  0x00007f29e3b5e084 n/a (libgtk-3.so.0 + 0x1f8084)
#7  0x00007f29e3b5e278 n/a (libgtk-3.so.0 + 0x1f8278)
#8  0x00007f29e3b7180d n/a (libgtk-3.so.0 + 0x20b80d)
#9  0x00007f29e3ad65c3 n/a (libgtk-3.so.0 + 0x1705c3)
#10 0x00007f29e3ada7a2 n/a (libgtk-3.so.0 + 0x1747a2)
#11 0x00007f29e3b71fc3 n/a (libgtk-3.so.0 + 0x20bfc3)
#12 0x00007f29e3c3a2a4 n/a (libgtk-3.so.0 + 0x2d42a4)
#13 0x00007f29e3c3a4ef n/a (libgtk-3.so.0 + 0x2d44ef)
#14 0x00007f29e3c3a5a7 gtk_widget_get_preferred_width (libgtk-3.so.0 + 0x2d45a7)
#15 0x00007f29e3a8573f n/a (libgtk-3.so.0 + 0x11f73f)
#16 0x00007f29e3ad65c3 n/a (libgtk-3.so.0 + 0x1705c3)
#17 0x00007f29e3ada7a2 n/a (libgtk-3.so.0 + 0x1747a2)
#18 0x00007f29e3a86253 n/a (libgtk-3.so.0 + 0x120253)
#19 0x00007f29e3c3a2a4 n/a (libgtk-3.so.0 + 0x2d42a4)
#20 0x00007f29e3c3a4ef n/a (libgtk-3.so.0 + 0x2d44ef)
#21 0x00007f29e3c3a5a7 gtk_widget_get_preferred_width (libgtk-3.so.0 + 0x2d45a7)
#22 0x00007f29e3a8573f n/a (libgtk-3.so.0 + 0x11f73f)
#23 0x00007f29e3ad65c3 n/a (libgtk-3.so.0 + 0x1705c3)
#24 0x00007f29e3ada7a2 n/a (libgtk-3.so.0 + 0x1747a2)
#25 0x00007f29e3a86253 n/a (libgtk-3.so.0 + 0x120253)
#26 0x00007f29e3c3a2a4 n/a (libgtk-3.so.0 + 0x2d42a4)
#27 0x00007f29e3c3a4ef n/a (libgtk-3.so.0 + 0x2d44ef)
#28 0x00007f29e3c3a5a7 gtk_widget_get_preferred_width (libgtk-3.so.0 + 0x2d45a7)
#29 0x00007f29e3cff352 n/a (libgtk-3.so.0 + 0x399352)
#30 0x00007f29e3c3a2a4 n/a (libgtk-3.so.0 + 0x2d42a4)
#31 0x00007f29e3c3a4ef n/a (libgtk-3.so.0 + 0x2d44ef)
#32 0x00007f29e3c3a5a7 gtk_widget_get_preferred_width (libgtk-3.so.0 + 0x2d45a7)
#33 0x00007f29e3c3a8e0 n/a (libgtk-3.so.0 + 0x2d48e0)
#34 0x00007f29e3d00f02 n/a (libgtk-3.so.0 + 0x39af02)
#35 0x00007f29e3d05a42 n/a (libgtk-3.so.0 + 0x39fa42)
#36 0x00007f29e6fcbcd5 g_closure_invoke (libgobject-2.0.so.0 + 0xfcd5)
#37 0x00007f29e6fde065 n/a (libgobject-2.0.so.0 + 0x22065)
#38 0x00007f29e6fe7160 g_signal_emit_valist (libgobject-2.0.so.0 + 0x2b160)
#39 0x00007f29e6fe749f g_signal_emit (libgobject-2.0.so.0 + 0x2b49f)
#40 0x00007f29e3cf58b4 gtk_widget_realize (libgtk-3.so.0 + 0x38f8b4)
#41 0x000055772cb0eaef n/a (code-insiders + 0x67fdaef)
#42 0x0000557727a9e2e8 n/a (code-insiders + 0x178d2e8)
#43 0x0000557727a9e3b8 n/a (code-insiders + 0x178d3b8)
#44 0x00005577279fb618 n/a (code-insiders + 0x16ea618)
#45 0x00005577279fc3af n/a (code-insiders + 0x16eb3af)
#46 0x0000557728ba8172 n/a (code-insiders + 0x2897172)
#47 0x00005577295014b9 n/a (code-insiders + 0x31f04b9)
#48 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#49 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#50 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#51 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#52 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#53 0x000055772953d4f1 n/a (code-insiders + 0x322c4f1)
#54 0x000055772948cbca n/a (code-insiders + 0x317bbca)
#55 0x000055772957955b n/a (code-insiders + 0x326855b)
#56 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#57 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#58 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#59 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#60 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#61 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#62 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)
#63 0x0000557729490ed8 n/a (code-insiders + 0x317fed8)

Stack trace of thread 44005:
#0  0x00007f29e191aa13 epoll_wait (libc.so.6 + 0x107a13)
#1  0x00005577298abbca n/a (code-insiders + 0x359abca)
#2  0x00005577298a9529 n/a (code-insiders + 0x3598529)
#3  0x000055772982043c n/a (code-insiders + 0x350f43c)
#4  0x00005577297cbc98 n/a (code-insiders + 0x34bac98)
#5  0x00005577297a54a7 n/a (code-insiders + 0x34944a7)
#6  0x00005577297d4d34 n/a (code-insiders + 0x34c3d34)
#7  0x00005577297ded7a n/a (code-insiders + 0x34cdd7a)
#8  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#9  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#10 0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44011:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x000055772ca93059 uv_cond_wait (code-insiders + 0x6782059)
#2  0x000055772ca0d1c8 n/a (code-insiders + 0x66fc1c8)
#3  0x000055772ca0ae8b n/a (code-insiders + 0x66f9e8b)
#4  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#5  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44031:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x000055772ca93059 uv_cond_wait (code-insiders + 0x6782059)
#2  0x000055772ca83d0a n/a (code-insiders + 0x6772d0a)
#3  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#4  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44016:
#0  0x00007f29e742c51d read (libpthread.so.0 + 0x1051d)
#1  0x0000557727a6182f n/a (code-insiders + 0x175082f)
#2  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#3  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#4  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44008:
#0  0x00007f29e191a627 epoll_pwait (libc.so.6 + 0x107627)
#1  0x000055772ca95714 n/a (code-insiders + 0x6784714)
#2  0x000055772ca873c1 uv_run (code-insiders + 0x67763c1)
#3  0x000055772ca0cfd8 n/a (code-insiders + 0x66fbfd8)
#4  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#5  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44006:
#0  0x00007f29e7429709 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd709)
#1  0x0000557729812960 n/a (code-insiders + 0x3501960)
#2  0x0000557729812ed0 n/a (code-insiders + 0x3501ed0)
#3  0x00005577297db5d8 n/a (code-insiders + 0x34ca5d8)
#4  0x00005577297dbd24 n/a (code-insiders + 0x34cad24)
#5  0x00005577297dbae4 n/a (code-insiders + 0x34caae4)
#6  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#7  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#8  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44018:
#0  0x00007f29e7429709 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd709)
#1  0x0000557729812960 n/a (code-insiders + 0x3501960)
#2  0x0000557729812ed0 n/a (code-insiders + 0x3501ed0)
#3  0x00005577297db5d8 n/a (code-insiders + 0x34ca5d8)
#4  0x00005577297dbd24 n/a (code-insiders + 0x34cad24)
#5  0x00005577297dbae4 n/a (code-insiders + 0x34caae4)
#6  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#7  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#8  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44007:
#0  0x00007f29e191aa13 epoll_wait (libc.so.6 + 0x107a13)
#1  0x00005577298abbca n/a (code-insiders + 0x359abca)
#2  0x00005577298a9529 n/a (code-insiders + 0x3598529)
#3  0x000055772982038f n/a (code-insiders + 0x350f38f)
#4  0x00005577297cbc98 n/a (code-insiders + 0x34bac98)
#5  0x00005577297a54a7 n/a (code-insiders + 0x34944a7)
#6  0x00005577284efd94 n/a (code-insiders + 0x21ded94)
#7  0x00005577297ded7a n/a (code-insiders + 0x34cdd7a)
#8  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#9  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#10 0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44009:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x000055772ca93059 uv_cond_wait (code-insiders + 0x6782059)
#2  0x000055772ca0d1c8 n/a (code-insiders + 0x66fc1c8)
#3  0x000055772ca0ae8b n/a (code-insiders + 0x66f9e8b)
#4  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#5  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44010:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x000055772ca93059 uv_cond_wait (code-insiders + 0x6782059)
#2  0x000055772ca0d1c8 n/a (code-insiders + 0x66fc1c8)
#3  0x000055772ca0ae8b n/a (code-insiders + 0x66f9e8b)
#4  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#5  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44003:
#0  0x00007f29e190e74d __poll (libc.so.6 + 0xfb74d)
#1  0x0000557728805552 n/a (code-insiders + 0x24f4552)
#2  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#3  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#4  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44113:
#0  0x00007f29e7429709 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd709)
#1  0x0000557729812960 n/a (code-insiders + 0x3501960)
#2  0x0000557729812ed0 n/a (code-insiders + 0x3501ed0)
#3  0x00005577297db5d8 n/a (code-insiders + 0x34ca5d8)
#4  0x00005577297dbd24 n/a (code-insiders + 0x34cad24)
#5  0x00005577297dbae4 n/a (code-insiders + 0x34caae4)
#6  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#7  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#8  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44019:
#0  0x00007f29e7429709 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd709)
#1  0x0000557729812960 n/a (code-insiders + 0x3501960)
#2  0x0000557729812ed0 n/a (code-insiders + 0x3501ed0)
#3  0x00005577297db5d8 n/a (code-insiders + 0x34ca5d8)
#4  0x00005577297dbd24 n/a (code-insiders + 0x34cad24)
#5  0x00005577297dbae4 n/a (code-insiders + 0x34caae4)
#6  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#7  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#8  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44012:
#0  0x00007f29e742b827 do_futex_wait.constprop.3 (libpthread.so.0 + 0xf827)
#1  0x00007f29e742b8d4 __new_sem_wait_slow.constprop.0 (libpthread.so.0 + 0xf8d4)
#2  0x00007f29e742b97a sem_wait@@GLIBC_2.2.5 (libpthread.so.0 + 0xf97a)
#3  0x000055772ca92eb7 uv_sem_wait (code-insiders + 0x6781eb7)
#4  0x000055772ca4e902 n/a (code-insiders + 0x673d902)
#5  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#6  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44020:
#0  0x00007f29e7429709 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd709)
#1  0x0000557729812960 n/a (code-insiders + 0x3501960)
#2  0x0000557729812ed0 n/a (code-insiders + 0x3501ed0)
#3  0x00005577297db5d8 n/a (code-insiders + 0x34ca5d8)
#4  0x00005577297dbd24 n/a (code-insiders + 0x34cad24)
#5  0x00005577297dbae4 n/a (code-insiders + 0x34caae4)
#6  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#7  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#8  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44014:
#0  0x00007f29e190e74d __poll (libc.so.6 + 0xfb74d)
#1  0x00007f29e6ce2f4c n/a (libglib-2.0.so.0 + 0x4bf4c)
#2  0x00007f29e6ce32e2 g_main_loop_run (libglib-2.0.so.0 + 0x4c2e2)
#3  0x00007f29e69afb66 n/a (libgio-2.0.so.0 + 0xccb66)
#4  0x00007f29e6d0b7d5 n/a (libglib-2.0.so.0 + 0x747d5)
#5  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#6  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44030:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x000055772ca93059 uv_cond_wait (code-insiders + 0x6782059)
#2  0x000055772ca83d0a n/a (code-insiders + 0x6772d0a)
#3  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#4  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44015:
#0  0x00007f29e191aa13 epoll_wait (libc.so.6 + 0x107a13)
#1  0x00005577298abbca n/a (code-insiders + 0x359abca)
#2  0x00005577298a9529 n/a (code-insiders + 0x3598529)
#3  0x000055772982043c n/a (code-insiders + 0x350f43c)
#4  0x00005577297cbc98 n/a (code-insiders + 0x34bac98)
#5  0x00005577297a54a7 n/a (code-insiders + 0x34944a7)
#6  0x00005577297ded7a n/a (code-insiders + 0x34cdd7a)
#7  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#8  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#9  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44017:
#0  0x00007f29e190e74d __poll (libc.so.6 + 0xfb74d)
#1  0x00007f29e6ce2f4c n/a (libglib-2.0.so.0 + 0x4bf4c)
#2  0x00007f29e6ce306c g_main_context_iteration (libglib-2.0.so.0 + 0x4c06c)
#3  0x00007f29d40b3e5e n/a (libdconfsettings.so + 0x4e5e)
#4  0x00007f29e6d0b7d5 n/a (libglib-2.0.so.0 + 0x747d5)
#5  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#6  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44013:
#0  0x00007f29e190e74d __poll (libc.so.6 + 0xfb74d)
#1  0x00007f29e6ce2f4c n/a (libglib-2.0.so.0 + 0x4bf4c)
#2  0x00007f29e6ce306c g_main_context_iteration (libglib-2.0.so.0 + 0x4c06c)
#3  0x00007f29e6ce30a9 n/a (libglib-2.0.so.0 + 0x4c0a9)
#4  0x00007f29e6d0b7d5 n/a (libglib-2.0.so.0 + 0x747d5)
#5  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#6  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44023:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x0000557729812822 n/a (code-insiders + 0x3501822)
#2  0x000055772a21fd1d n/a (code-insiders + 0x3f0ed1d)
#3  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#4  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#5  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44022:
#0  0x00007f29e19105d3 __select (libc.so.6 + 0xfd5d3)
#1  0x0000557729817ed7 n/a (code-insiders + 0x3506ed7)
#2  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#3  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#4  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44024:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x0000557729812822 n/a (code-insiders + 0x3501822)
#2  0x0000557729812ef9 n/a (code-insiders + 0x3501ef9)
#3  0x0000557729812d1f n/a (code-insiders + 0x3501d1f)
#4  0x000055772978d0e8 n/a (code-insiders + 0x347c0e8)
#5  0x00005577297cbc98 n/a (code-insiders + 0x34bac98)
#6  0x00005577297a54a7 n/a (code-insiders + 0x34944a7)
#7  0x00005577297ded7a n/a (code-insiders + 0x34cdd7a)
#8  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#9  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#10 0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44025:
#0  0x00007f29e742b827 do_futex_wait.constprop.3 (libpthread.so.0 + 0xf827)
#1  0x00007f29e742b8d4 __new_sem_wait_slow.constprop.0 (libpthread.so.0 + 0xf8d4)
#2  0x00007f29e742b97a sem_wait@@GLIBC_2.2.5 (libpthread.so.0 + 0xf97a)
#3  0x000055772ca92eb7 uv_sem_wait (code-insiders + 0x6781eb7)
#4  0x0000557727ae6638 n/a (code-insiders + 0x17d5638)
#5  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#6  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44026:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x0000557729812822 n/a (code-insiders + 0x3501822)
#2  0x0000557729812ef9 n/a (code-insiders + 0x3501ef9)
#3  0x0000557729812d1f n/a (code-insiders + 0x3501d1f)
#4  0x00005577297db5ca n/a (code-insiders + 0x34ca5ca)
#5  0x00005577297dbd24 n/a (code-insiders + 0x34cad24)
#6  0x00005577297dbb44 n/a (code-insiders + 0x34cab44)
#7  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#8  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#9  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44028:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x000055772ca93059 uv_cond_wait (code-insiders + 0x6782059)
#2  0x000055772ca83d0a n/a (code-insiders + 0x6772d0a)
#3  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#4  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44033:
#0  0x00007f29e7429709 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd709)
#1  0x00007f29cce468a4 _ZN6spdlog7details16async_log_helper16process_next_msgEv (spdlog.node + 0x298a4)
#2  0x00007f29cce46d98 _ZN6spdlog7details16async_log_helper11worker_loopEv (spdlog.node + 0x29d98)
#3  0x00007f29dbe25c80 n/a (libstdc++.so.6 + 0xb8c80)
#4  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#5  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44044:
#0  0x00007f29e191aa13 epoll_wait (libc.so.6 + 0x107a13)
#1  0x00005577298abbca n/a (code-insiders + 0x359abca)
#2  0x00005577298a9529 n/a (code-insiders + 0x3598529)
#3  0x000055772982043c n/a (code-insiders + 0x350f43c)
#4  0x00005577297cbc98 n/a (code-insiders + 0x34bac98)
#5  0x00005577297a54a7 n/a (code-insiders + 0x34944a7)
#6  0x00005577297ded7a n/a (code-insiders + 0x34cdd7a)
#7  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#8  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#9  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44065:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x0000557729812822 n/a (code-insiders + 0x3501822)
#2  0x0000557729812ef9 n/a (code-insiders + 0x3501ef9)
#3  0x0000557729812d1f n/a (code-insiders + 0x3501d1f)
#4  0x00005577297db5ca n/a (code-insiders + 0x34ca5ca)
#5  0x00005577297dbbcd n/a (code-insiders + 0x34cabcd)
#6  0x00005577297dbb14 n/a (code-insiders + 0x34cab14)
#7  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#8  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#9  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44530:
#0  0x00007f29e19144d9 syscall (libc.so.6 + 0x1014d9)
#1  0x00007f29e6d29ada g_cond_wait_until (libglib-2.0.so.0 + 0x92ada)
#2  0x00007f29e6cb5c39 n/a (libglib-2.0.so.0 + 0x1ec39)
#3  0x00007f29e6cb625b g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x1f25b)
#4  0x00007f29e6d0c22a n/a (libglib-2.0.so.0 + 0x7522a)
#5  0x00007f29e6d0b7d5 n/a (libglib-2.0.so.0 + 0x747d5)
#6  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#7  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44021:
#0  0x00007f29e7429709 pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd709)
#1  0x0000557729812960 n/a (code-insiders + 0x3501960)
#2  0x0000557729812ed0 n/a (code-insiders + 0x3501ed0)
#3  0x00005577297db5d8 n/a (code-insiders + 0x34ca5d8)
#4  0x00005577297dbd24 n/a (code-insiders + 0x34cad24)
#5  0x00005577297dbae4 n/a (code-insiders + 0x34caae4)
#6  0x00005577298159c5 n/a (code-insiders + 0x35049c5)
#7  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#8  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)

Stack trace of thread 44029:
#0  0x00007f29e7429360 pthread_cond_wait@@GLIBC_2.3.2 (libpthread.so.0 + 0xd360)
#1  0x000055772ca93059 uv_cond_wait (code-insiders + 0x6782059)
#2  0x000055772ca83d0a n/a (code-insiders + 0x6772d0a)
#3  0x00007f29e74236ba start_thread (libpthread.so.0 + 0x76ba)
#4  0x00007f29e191a41d __clone (libc.so.6 + 0x10741d)
```
</details>

You can work around this by symlinking in the host system the gdk-pixbuf-2.0 folder to the expected Debian/Ubuntu path.
```
sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
```
@joaomoreno given the workaround from @amyspark , is this a path issue with the variables set here https://github.com/microsoft/vscode/blob/master/resources/linux/snap/electron-launch#L26 ? Would love some input from snap devs.
> * VSCode Version: 1.47.0 insiders ([0913b1a](https://github.com/microsoft/vscode/commit/0913b1aa43191d8af0ccb4a133d9a8d7c1a81d69))
> * OS Version: Fedora 32
> 
> Steps to Reproduce:
> 
> 1. Go to `Help -> Check for Updates...` or `Help -> About`
>    Nothing happens and then VS Code crashes.
> 
> Does this issue occur when all extensions are disabled?: Yes

You can uninstall the old vscode and reinstall the binary package from **yum repository** to solve this problem.
![image](https://user-images.githubusercontent.com/57554478/87277032-11fc8100-c514-11ea-8751-58dd52f9cd54.png)

In the meantime, for those having issues with dialogs in the `snap` install, the `flatpak` version works for me: https://flathub.org/apps/details/com.visualstudio.code

```
Version: 1.47.0
Commit: d5e9aa0227e057a60c82568bf31c04730dc15dcd
Date: 2020-07-09T08:30:34.302Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Linux x64 5.6.16-1-MANJARO
```
cc @flexiondotorg Maybe you have some thoughts?
@sergiusens This has started to crash for a lot of users recently. Do you have any thoughts? Check out this comment: https://github.com/microsoft/vscode/issues/100940#issuecomment-651225395
@deepak1556 Given we are clueless here and that this does not reproduce in Ubuntu, our supported OS, I don't think this warrants a `candidate` label.
If there is a direct fix and problem understood, feel free to move back.
I'm having the same issues after last update, I'm running the snap version in Manjaro. It crashes in various scenarios. When trying to delete a file from the side panel, when trying to close a new file with unsaved changes, and a few more...
Any thoughts on this would be much appreciated.
Cheers!

PS: This: https://github.com/microsoft/vscode/issues/100940#issuecomment-651225395 fixed it for now
Same with me. Manjaro - snap version. Start crashing after update to 1.47.  https://github.com/microsoft/vscode/issues/100940#issuecomment-651225395 works fine. 
Same here since VSCode Snap version Revision 36. I've updated to Revision 37 (version 485c41f9) and seems to fail in the same scenarios.

Workarounds that worked for me:

A) Reverting the package to Revision 35 (snap version cd9ea648) works with no issues.
B)  https://github.com/microsoft/vscode/issues/100940#issuecomment-651225395 works fine as well at the moment.

Subscribed to this issue to remove that link on future snap updates to check if the issue has been solved.
Same issue here on Fedora 32 and VSCode installed using Snap version **17299e41**.

```
(code:10071): GdkPixbuf-WARNING **: 15:44:48.422: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(code:10071): Gtk-WARNING **: 15:44:48.422: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
(code:10071): GdkPixbuf-WARNING **: 15:44:48.422: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
**
Gtk:ERROR:/build/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination
```
It crashes on "Help > About", "Find & replace", deleting a folder and some others that I don't remember right now.
The same issue with Arch

```
smart@thinkpad$ snap version
snap    2.45.2-1
snapd   2.45.2-1
series  16
arch    -
kernel  5.7.9-arch1-1
~
smart@thinkpad$ 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 11:51 MSK
channels:
  latest/stable:    17299e41 2020-07-21 (38) 151MB classic
  latest/candidate: ↑                              
  latest/beta:      ↑                              
  latest/edge:      ↑                              
installed:          17299e41            (38) 151MB classic
~
smart@thinkpad$
```

---


VVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
This fix works for me: https://github.com/microsoft/vscode/issues/100940#issuecomment-651225395 !!!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Faced this same issue on OpenSUSE 15.1. With [vscode-eslint](https://github.com/Microsoft/vscode-eslint) installed, it crashes on start. The stable snap channel has already been updated to the latest release (17299e41) with no option of rolling back.

I, eventually, removed the snap version and installed using [these instructions](https://en.opensuse.org/Visual_Studio_Code) and the crashing doesn't happen any more - even on opening the dialogs.
Same here Manjaro KDE plasma

**UPDATE**:

This given fix worked for me : [#100940 ](https://github.com/microsoft/vscode/issues/100940#issuecomment-651225395)(comment) !!



```
[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'm using the snap on RHEL 8 and I observed the following:
```
$ code --status
(code:14079): GdkPixbuf-WARNING **: 14:44:27.974: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
Gtk-Message: 14:44:27.990: Failed to load module "pk-gtk-module"
Gtk-Message: 14:44:27.990: Failed to load module "canberra-gtk-module"
Gtk-Message: 14:44:27.991: Failed to load module "pk-gtk-module"
Gtk-Message: 14:44:27.991: Failed to load module "canberra-gtk-module"
GLib-GIO-Message: 14:44:28.004: Using the 'memory' GSettings backend.  Your settings will not be saved or shared with other applications.
[main 2020-07-22T12:44:28.073Z] Warning: The --status argument can only be used if Code is already running. Please run it again after Code has started.
```
Investigating about directories shows maybe the cause:
```
$ ll /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0
ls: cannot access '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0': No such file or directory

$ ll /usr/lib64/gdk-pixbuf-2.0/2.10.0/
total 8.0K
drwxr-xr-x. 2 root root 4.0K Jul  8 14:17 loaders/
-rw-r--r--. 1 root root 3.2K Jul  8 14:20 loaders.cache
```

I hope this helps solving this issue.
Could this bug be related to this "issue" and might it be necessary to add this to the snap build configuration:
https://bugs.launchpad.net/snapcraft/+bug/1576289
Following this comment I tried the same on Fedora 32:

```
sudo mkdir -p /usr/lib/x86_64-linux-gnu
sudo ln -s /usr/lib64/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
```
The error is still persists (not same message though):

```
(code:61774): Gtk-WARNING **: 15:47:40.622: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:/build/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
Server response: {"status":"Success","validDiagnostic
```

Same issue on Manjaro 64, latest stable snap release (91899dce). Crashes on startup as a modal was supposed to open.
Works well after reverting to 1.46 (a5d1cc28)
I'm getting this issue since the June release - and is still present on the July one. Solution was to apply the aforementioned fix https://github.com/microsoft/vscode/issues/100940#issuecomment-651225395 after creating this folder (otherwise symlinking doesn't work):

```sh
sudo mkdir /usr/lib/x86_64-linux-gnu/
```
>Version: 1.48.0-insider
Commit: db40434f562994116e5b21c24015a2e40b2504e6
Date: 2020-08-12T08:04:29.917Z
Electron: 7.3.2
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Linux x64 5.4.52-1-MANJARO snap

Trying to launch the snap version of vscode on Solus, I get a bunch of errors:
```
/usr/lib/gio/modules/libgioremote-volume-monitor.so: undefined symbol: g_mount_operation_get_is_tcrypt_hidden_volume
Failed to load module: /usr/lib/gio/modules/libgioremote-volume-monitor.so
/snap/code/40/usr/share/code/../../lib/x86_64-linux-gnu/libgnutls.so.30: version `GNUTLS_3_6_3' not found (required by /usr/lib/gio/modules/libgiognutls.so)
Failed to load module: /usr/lib/gio/modules/libgiognutls.so
/snap/core/current/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.25' not found (required by /usr/lib/libcrypto.so.1.1)
Failed to load module: /usr/lib/gio/modules/libgioopenssl.so
```
I believe this is related. I was also getting the pixbuf error when trying to start, but adding the symlink fixed it.
Same here, can reproduce on snap version 1.48.1  - Manjaro Linux.

Running this solved it:
```bash
sudo mkdir /usr/lib/x86_64-linux-gnu/
sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
```

Still need to be fixed though.
> Same here, can reproduce on snap version 1.48.1 - Manjaro Linux.
> 
> Running this solved it:
> 
> ```shell
> sudo mkdir /usr/lib/x86_64-linux-gnu/
> sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
> ```
> 
> Still need to be fixed though.

Yes, please Microsoft (or Snap), fix this bug. Thanks. I am on Manjaro KDE running the linux kernel 5.8.1-3
Same issue here on Arch, resolved with:

> sudo mkdir /usr/lib/x86_64-linux-gnu/
> sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
Can confirm code was working but now all system dialogs crash code.

The following workaround is available on gentoo:
mkdir /usr/lib/x86_64-linux-gnu
ln -s /usr/lib64/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0

Please fix this microsoft I have been banging my head on this and its very disruptive.
So is this gonna get fixed or nah? I see it slipped out of the August milestone.
vscode snap crash

os: manjaro xfce
version: e790b931

steps to reproduce:
1- open code
2- try to open a folder


code --verbose  output:

[7057:0912/095652.724280:INFO:CONSOLE(1705)] "%cTRACE color: #888 telemetry/views.welcomeAction [object Object]", source: file:///var/lib/snapd/snap/code/43/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (1705)
[7057:0912/095652.727004:INFO:CONSOLE(1705)] "%cTRACE color: #888 CommandService#executeCommand workbench.action.files.openFolder", source: file:///var/lib/snapd/snap/code/43/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (1705)
/usr/lib/gio/modules/libgioremote-volume-monitor.so: undefined symbol: g_mount_operation_get_is_tcrypt_system_volume
Failed to load module: /usr/lib/gio/modules/libgioremote-volume-monitor.so
/usr/lib/gio/modules/libgioremote-volume-monitor.so: undefined symbol: g_mount_operation_get_is_tcrypt_system_volume
Failed to load module: /usr/lib/gio/modules/libgioremote-volume-monitor.so
(code:7057): GdkPixbuf-WARNING **: 09:56:52.781: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
(code:7057): Gtk-WARNING **: 09:56:52.781: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
(code:7057): GdkPixbuf-WARNING **: 09:56:52.781: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
**
Gtk:ERROR:/build/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
/dev/fd/3: No such file or directory
Server response:

+1
Same problem.

OS: Manjaro KDE
Snap: e790b931   Rev: 43

[main 2020-09-12T22:20:24.137Z] menubar#runActionInRenderer { type: 'commandId', commandId: 'workbench.action.files.openFolder' }
[51570:0913/002024.144566:INFO:CONSOLE(1705)] "%cTRACE color: #888 CommandService#executeCommand workbench.action.files.openFolder", source: file:///var/lib/snapd/snap/code/43/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (1705)
/usr/lib/gio/modules/libgioremote-volume-monitor.so: undefined symbol: g_mount_operation_get_is_tcrypt_system_volume
Failed to load module: /usr/lib/gio/modules/libgioremote-volume-monitor.so
/usr/lib/gio/modules/libgioremote-volume-monitor.so: undefined symbol: g_mount_operation_get_is_tcrypt_system_volume
Failed to load module: /usr/lib/gio/modules/libgioremote-volume-monitor.so
(code:51570): GdkPixbuf-WARNING **: 00:20:24.176: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
(code:51570): Gtk-WARNING **: 00:20:24.176: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.

(code:51570): GdkPixbuf-WARNING **: 00:20:24.176: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
**
Gtk:ERROR:/build/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
Wondering if this is what I saw https://github.com/microsoft/vscode/issues/106588
This fixed it for me on Manjaro 20.1 XFCE:

sudo mkdir /usr/lib/x86_64-linux-gnu/
sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0

What the Snap team at MS is doing? This thing has been a problem since forever. Would be nice if someone finally fixes it.
This solve my problems ([107037](https://github.com/microsoft/vscode/issues/107037)) with VSCode in Manjaro KDE (20.1):

> This fixed it for me on Manjaro 20.1 XFCE:
> 
> sudo mkdir /usr/lib/x86_64-linux-gnu/
> sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
> 
> What the Snap team at MS is doing? This thing has been a problem since forever. Would be nice if someone finally fixes it.


> Version: 1.47.0-insider ([7923112](https://github.com/microsoft/vscode/commit/7923112cdd20575406ec547b55a99c289dd7d7e2))
> OS version: Linux x64 5.4.43-1-MANJARO snap
> 
> This error happens whenever a modal dialog is created. I got this while trying to Git pull, and move files.
> 
> Backtrace:
> You can work around this by symlinking in the host system the gdk-pixbuf-2.0 folder to the expected Debian/Ubuntu path.
> 
> ```
> sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
> ```

I'm running ubuntu inside a Virtualbox machine, and, I don't have GPU, in my case I needed to run vscode disabling the GPU flag

```
code --disable-gpu
```
For OpenSUSE (Tumbleweed in my case) the correct commands are:
```
mkdir -p /usr/lib/x86_64-linux-gnu/
ln -s /usr/lib64/gdk-pixbuf-2.0/ /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
```
I see this is marked as September milestone, but no linked PRs. Is this actually being worked on?
> Version: 1.47.0-insider ([7923112](https://github.com/microsoft/vscode/commit/7923112cdd20575406ec547b55a99c289dd7d7e2))
> OS version: Linux x64 5.4.43-1-MANJARO snap
> 
> This error happens whenever a modal dialog is created. I got this while trying to Git pull, and move files.
> 
> Backtrace:
> You can work around this by symlinking in the host system the gdk-pixbuf-2.0 folder to the expected Debian/Ubuntu path.
> 
> ```
> sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
> ```

Works for me, thanks!
3 months and no fix. Obiviously no one at the Microsoft snsp team, or VS Code team cares about this. It does not affect their "supported distro". The workaround is obviously to stop using Microsoft created snaps. They don't care to keep them running. They just want the "appearence" of supporting it. 
Same problem here using Fedora 32 with Snap: [59ca51be-190c-4e55-c5809a88-5d6edddf.dmp](https://github.com/microsoft/vscode/files/5293930/59ca51be-190c-4e55-c5809a88-5d6edddf.log)

Even the workaround at https://github.com/microsoft/vscode/issues/100940#issuecomment-678711777 doesn't work for me.

Does this issue occur when all extensions are disabled? Yes
Same problem here with RHEL 7.8 with latest Snap and all extensions disabled with the command line:
`code --disable-extensions --verbose --log debug`

The workaround at [#100940 (comment)](https://github.com/microsoft/vscode/issues/100940#issuecomment-678711777) doesn't work here, however, the error log is different after to apply the workaround:

```
[main 2020-09-29T06:22:30.375Z] menubarService#updateMenubar 1
[main 2020-09-29T06:22:33.735Z] menubar#runActionInRenderer { type: 'commandId', commandId: 'workbench.action.files.save' }
[7069:0929/082233.742834:INFO:CONSOLE(1705)] "%cTRACE color: #888 CommandService#executeCommand workbench.action.files.save", source: file:///var/lib/snapd/snap/code/45/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js (1705)
(code:7069): Gtk-WARNING **: 08:22:33.831: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:/build/gtk+3.0-24RAPQ/gtk+3.0-3.22.24/./gtk/gtkiconhelper.c:493:ensure_surface_for_gicon: assertion failed: (destination)
/dev/fd/3: No such file or directory
Server response:

```

A correct workaround for me is to use Flatpak package instead of Snap, it seems to work for now.
> This fixed it for me on Manjaro 20.1 XFCE:
> 
> sudo mkdir /usr/lib/x86_64-linux-gnu/
> sudo ln -s /usr/lib/gdk-pixbuf-2.0 /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0

This fixed it for me. Same OS and DE
This issue was reported by many people over one year ago and there is still no official fix from Microsoft team. How is it possible?
> For OpenSUSE (Tumbleweed in my case) the correct commands are:
> 
> ```
> mkdir -p /usr/lib/x86_64-linux-gnu/
> ln -s /usr/lib64/gdk-pixbuf-2.0/ /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0
> ```

Same for recent Gentoo `amd64`.

Resolving patch:
diff --git a/build/hygiene.js b/build/hygiene.js
--- a/build/hygiene.js
+++ b/build/hygiene.js
@@ -53,6 +53,7 @@ const indentationFilter = [
 	'!src/vs/base/node/terminateProcess.sh',
 	'!src/vs/base/node/cpuUsage.sh',
 	'!test/unit/assert.js',
+	'!resources/linux/snap/electron-launch',
 
 	// except specific folders
 	'!test/automation/out/**',
@@ -115,7 +116,6 @@ const copyrightFilter = [
 	'!**/*.js.map',
 	'!build/**/*.init',
 	'!resources/linux/snap/snapcraft.yaml',
-	'!resources/linux/snap/electron-launch',
 	'!resources/win32/bin/code.js',
 	'!resources/web/code-web.js',
 	'!resources/completions/**',
diff --git a/src/main.js b/src/main.js
--- a/src/main.js
+++ b/src/main.js
@@ -132,12 +132,6 @@ registerListeners();
 // Cached data
 const nodeCachedDataDir = getNodeCachedDir();
 
-// Remove env set by snap https://github.com/microsoft/vscode/issues/85344
-if (process.env['SNAP']) {
-	delete process.env['GDK_PIXBUF_MODULE_FILE'];
-	delete process.env['GDK_PIXBUF_MODULEDIR'];
-}
-
 /**
  * Support user defined locale: load it early before app('ready')
  * to have more things running in parallel.
diff --git a/src/vs/base/common/processes.ts b/src/vs/base/common/processes.ts
--- a/src/vs/base/common/processes.ts
+++ b/src/vs/base/common/processes.ts
@@ -110,7 +110,8 @@ export function sanitizeProcessEnvironment(env: IProcessEnvironment, ...preserve
 		/^ELECTRON_.+$/,
 		/^GOOGLE_API_KEY$/,
 		/^VSCODE_.+$/,
-		/^SNAP(|_.*)$/
+		/^SNAP(|_.*)$/,
+		/^GDK_PIXBUF_.+$/,
 	];
 	const envKeys = Object.keys(env);
 	envKeys
diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts
--- a/src/vs/code/electron-main/app.ts
+++ b/src/vs/code/electron-main/app.ts
@@ -3,7 +3,7 @@
  *  Licensed under the MIT License. See License.txt in the project root for license information.
  *--------------------------------------------------------------------------------------------*/
 
-import { app, ipcMain as ipc, systemPreferences, shell, contentTracing, protocol, IpcMainEvent, BrowserWindow, dialog, session } from 'electron';
+import { app, ipcMain as ipc, systemPreferences, contentTracing, protocol, IpcMainEvent, BrowserWindow, dialog, session } from 'electron';
 import { IProcessEnvironment, isWindows, isMacintosh } from 'vs/base/common/platform';
 import { WindowsMainService } from 'vs/platform/windows/electron-main/windowsMainService';
 import { IWindowOpenable } from 'vs/platform/windows/common/windows';
@@ -86,6 +86,7 @@ import { ActiveWindowManager } from 'vs/platform/windows/common/windowTracker';
 export class CodeApplication extends Disposable {
 	private windowsMainService: IWindowsMainService | undefined;
 	private dialogMainService: IDialogMainService | undefined;
+	private nativeHostMainService: INativeHostMainService | undefined;
 
 	constructor(
 		private readonly mainIpcServer: Server,
@@ -213,7 +214,9 @@ export class CodeApplication extends Disposable {
 			contents.on('new-window', (event, url) => {
 				event.preventDefault(); // prevent code that wants to open links
 
-				shell.openExternal(url);
+				if (this.nativeHostMainService) {
+					this.nativeHostMainService.openExternal(undefined, url);
+				}
 			});
 
 			session.defaultSession.setPermissionRequestHandler((webContents, permission /* 'media' | 'geolocation' | 'notifications' | 'midiSysex' | 'pointerLock' | 'fullscreen' | 'openExternal' */, callback) => {
@@ -542,8 +545,8 @@ export class CodeApplication extends Disposable {
 		const encryptionChannel = createChannelReceiver(encryptionMainService);
 		electronIpcServer.registerChannel('encryption', encryptionChannel);
 
-		const nativeHostMainService = accessor.get(INativeHostMainService);
-		const nativeHostChannel = createChannelReceiver(nativeHostMainService);
+		const nativeHostMainService = this.nativeHostMainService = accessor.get(INativeHostMainService);
+		const nativeHostChannel = createChannelReceiver(this.nativeHostMainService);
 		electronIpcServer.registerChannel('nativeHost', nativeHostChannel);
 		sharedProcessClient.then(client => client.registerChannel('nativeHost', nativeHostChannel));
 
diff --git a/src/vs/platform/issue/electron-main/issueMainService.ts b/src/vs/platform/issue/electron-main/issueMainService.ts
--- a/src/vs/platform/issue/electron-main/issueMainService.ts
+++ b/src/vs/platform/issue/electron-main/issueMainService.ts
@@ -8,7 +8,7 @@ import * as os from 'os';
 import product from 'vs/platform/product/common/product';
 import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv';
 import { ICommonIssueService, IssueReporterData, IssueReporterFeatures, ProcessExplorerData } from 'vs/platform/issue/common/issue';
-import { BrowserWindow, ipcMain, screen, IpcMainEvent, Display, shell } from 'electron';
+import { BrowserWindow, ipcMain, screen, IpcMainEvent, Display } from 'electron';
 import { ILaunchMainService } from 'vs/platform/launch/electron-main/launchMainService';
 import { PerformanceInfo, isRemoteDiagnosticError } from 'vs/platform/diagnostics/common/diagnostics';
 import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsService';
@@ -21,6 +21,7 @@ import { IDialogMainService } from 'vs/platform/dialogs/electron-main/dialogs';
 import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
 import { zoomLevelToZoomFactor } from 'vs/platform/windows/common/windows';
 import { FileAccess } from 'vs/base/common/network';
+import { INativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService';
 
 const DEFAULT_BACKGROUND_COLOR = '#1E1E1E';
 
@@ -42,7 +43,8 @@ export class IssueMainService implements ICommonIssueService {
 		@ILaunchMainService private readonly launchMainService: ILaunchMainService,
 		@ILogService private readonly logService: ILogService,
 		@IDiagnosticsService private readonly diagnosticsService: IDiagnosticsService,
-		@IDialogMainService private readonly dialogMainService: IDialogMainService
+		@IDialogMainService private readonly dialogMainService: IDialogMainService,
+		@INativeHostMainService private readonly nativeHostMainService: INativeHostMainService
 	) {
 		this.registerListeners();
 	}
@@ -155,7 +157,7 @@ export class IssueMainService implements ICommonIssueService {
 		});
 
 		ipcMain.on('vscode:openExternal', (_: unknown, arg: string) => {
-			shell.openExternal(arg);
+			this.nativeHostMainService.openExternal(undefined, arg);
 		});
 
 		ipcMain.on('vscode:closeIssueReporter', (event: IpcMainEvent) => {
diff --git a/src/vs/platform/menubar/electron-main/menubar.ts b/src/vs/platform/menubar/electron-main/menubar.ts
--- a/src/vs/platform/menubar/electron-main/menubar.ts
+++ b/src/vs/platform/menubar/electron-main/menubar.ts
@@ -6,7 +6,7 @@
 import * as nls from 'vs/nls';
 import { isMacintosh, language } from 'vs/base/common/platform';
 import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService';
-import { app, shell, Menu, MenuItem, BrowserWindow, MenuItemConstructorOptions, WebContents, Event, KeyboardEvent } from 'electron';
+import { app, Menu, MenuItem, BrowserWindow, MenuItemConstructorOptions, WebContents, Event, KeyboardEvent } from 'electron';
 import { getTitleBarStyle, INativeRunActionInWindowRequest, INativeRunKeybindingInWindowRequest, IWindowOpenable } from 'vs/platform/windows/common/windows';
 import { OpenContext } from 'vs/platform/windows/node/window';
 import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
@@ -813,7 +813,7 @@ export class Menubar {
 	}
 
 	private openUrl(url: string, id: string): void {
-		shell.openExternal(url);
+		this.nativeHostMainService.openExternal(undefined, url);
 		this.reportMenuActionTelemetry(id);
 	}
 
diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts
--- a/src/vs/platform/native/electron-main/nativeHostMainService.ts
+++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts
@@ -337,11 +337,27 @@ export class NativeHostMainService extends Disposable implements INativeHostMain
 	}
 
 	async openExternal(windowId: number | undefined, url: string): Promise<boolean> {
-		shell.openExternal(url);
+		if (isLinux && process.env.SNAP && process.env.SNAP_REVISION) {
+			NativeHostMainService._safeSnapOpenExternal(url);
+		} else {
+			shell.openExternal(url);
+		}
 
 		return true;
 	}
 
+	private static _safeSnapOpenExternal(url: string): void {
+		const gdkPixbufModuleFile = process.env['GDK_PIXBUF_MODULE_FILE'];
+		const gdkPixbufModuleDir = process.env['GDK_PIXBUF_MODULEDIR'];
+		delete process.env['GDK_PIXBUF_MODULE_FILE'];
+		delete process.env['GDK_PIXBUF_MODULEDIR'];
+
+		shell.openExternal(url);
+
+		process.env['GDK_PIXBUF_MODULE_FILE'] = gdkPixbufModuleFile;
+		process.env['GDK_PIXBUF_MODULEDIR'] = gdkPixbufModuleDir;
+	}
+
 	async moveItemToTrash(windowId: number | undefined, fullPath: string): Promise<boolean> {
 		return shell.moveItemToTrash(fullPath);
 	}
diff --git a/src/vs/platform/update/electron-main/updateService.linux.ts b/src/vs/platform/update/electron-main/updateService.linux.ts
--- a/src/vs/platform/update/electron-main/updateService.linux.ts
+++ b/src/vs/platform/update/electron-main/updateService.linux.ts
@@ -12,8 +12,8 @@ import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/e
 import { ILogService } from 'vs/platform/log/common/log';
 import { createUpdateURL, AbstractUpdateService, UpdateNotAvailableClassification } from 'vs/platform/update/electron-main/abstractUpdateService';
 import { IRequestService, asJson } from 'vs/platform/request/common/request';
-import { shell } from 'electron';
 import { CancellationToken } from 'vs/base/common/cancellation';
+import { INativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService';
 
 export class LinuxUpdateService extends AbstractUpdateService {
 
@@ -25,7 +25,8 @@ export class LinuxUpdateService extends AbstractUpdateService {
 		@ITelemetryService private readonly telemetryService: ITelemetryService,
 		@IEnvironmentMainService environmentService: IEnvironmentMainService,
 		@IRequestService requestService: IRequestService,
-		@ILogService logService: ILogService
+		@ILogService logService: ILogService,
+		@INativeHostMainService private readonly nativeHostMainService: INativeHostMainService
 	) {
 		super(lifecycleMainService, configurationService, environmentService, requestService, logService);
 	}
@@ -64,9 +65,9 @@ export class LinuxUpdateService extends AbstractUpdateService {
 		// Use the download URL if available as we don't currently detect the package type that was
 		// installed and the website download page is more useful than the tarball generally.
 		if (product.downloadUrl && product.downloadUrl.length > 0) {
-			shell.openExternal(product.downloadUrl);
+			this.nativeHostMainService.openExternal(undefined, product.downloadUrl);
 		} else if (state.update.url) {
-			shell.openExternal(state.update.url);
+			this.nativeHostMainService.openExternal(undefined, state.update.url);
 		}
 
 		this.setState(State.Idle(UpdateType.Archive));
diff --git a/src/vs/platform/update/electron-main/updateService.win32.ts b/src/vs/platform/update/electron-main/updateService.win32.ts
--- a/src/vs/platform/update/electron-main/updateService.win32.ts
+++ b/src/vs/platform/update/electron-main/updateService.win32.ts
@@ -19,11 +19,11 @@ import { IRequestService, asJson } from 'vs/platform/request/common/request';
 import { checksum } from 'vs/base/node/crypto';
 import { tmpdir } from 'os';
 import { spawn } from 'child_process';
-import { shell } from 'electron';
 import { CancellationToken } from 'vs/base/common/cancellation';
 import { timeout } from 'vs/base/common/async';
 import { IFileService } from 'vs/platform/files/common/files';
 import { URI } from 'vs/base/common/uri';
+import { INativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService';
 
 async function pollUntil(fn: () => boolean, millis = 1000): Promise<void> {
 	while (!fn()) {
@@ -66,7 +66,8 @@ export class Win32UpdateService extends AbstractUpdateService {
 		@IEnvironmentMainService environmentService: IEnvironmentMainService,
 		@IRequestService requestService: IRequestService,
 		@ILogService logService: ILogService,
-		@IFileService private readonly fileService: IFileService
+		@IFileService private readonly fileService: IFileService,
+		@INativeHostMainService private readonly nativeHostMainService: INativeHostMainService
 	) {
 		super(lifecycleMainService, configurationService, environmentService, requestService, logService);
 	}
@@ -177,7 +178,7 @@ export class Win32UpdateService extends AbstractUpdateService {
 
 	protected async doDownloadUpdate(state: AvailableForDownload): Promise<void> {
 		if (state.update.url) {
-			shell.openExternal(state.update.url);
+			this.nativeHostMainService.openExternal(undefined, state.update.url);
 		}
 		this.setState(State.Idle(getUpdateType()));
 	}


Test patch:
diff --git a/src/vs/base/test/common/processes.test.ts b/src/vs/base/test/common/processes.test.ts
--- a/src/vs/base/test/common/processes.test.ts
+++ b/src/vs/base/test/common/processes.test.ts
@@ -24,7 +24,9 @@ suite('Processes', () => {
 			VSCODE_PORTABLE: 'x',
 			VSCODE_PID: 'x',
 			VSCODE_NODE_CACHED_DATA_DIR: 'x',
-			VSCODE_NEW_VAR: 'x'
+			VSCODE_NEW_VAR: 'x',
+			GDK_PIXBUF_MODULE_FILE: 'x',
+			GDK_PIXBUF_MODULEDIR: 'x',
 		};
 		processes.sanitizeProcessEnvironment(env);
 		assert.equal(env['FOO'], 'bar');