Atom does not start when using x2go #4360

Open
nestoru opened this Issue Dec 1, 2014 · 55 comments

Projects

None yet
@nestoru
nestoru commented Dec 1, 2014
  • I first saw the issue for version v0.152.0 debian package in ubuntu 12.04 VM running on vmware ESXi.

$ [20853:1201/101159:ERROR:browser_main_loop.cc(162)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
Xlib: extension "XInputExtension" missing on display ":10.0".
Xlib: extension "XInputExtension" missing on display ":10.0".
App load time: 368ms
[20877:1201/101159:ERROR:gl_surface_glx.cc(333)] GLX 1.3 or later is required.
[20877:1201/101159:ERROR:gl_surface_x11.cc(57)] GLSurfaceGLX::InitializeOneOff failed.
[20877:1201/101200:ERROR:gpu_child_thread.cc(143)] Exiting GPU process due to errors during initialization
atom: Fatal IO error 11 (Resource temporarily unavailable) on X server :10.0.

  • I then installed it from webupd8 team:

sudo add-apt-repository ppa:webupd8team/atom
sudo apt-get update
sudo apt-get install atom

However I got the same issue.

  • I compiled then from sources following all instructions from README but still got the same issue.

To replicate just right click on a file to get a context menu and once you start moving your mouse it will fail with the error above.

  • I updated to latest version debian package (186) won't even start. It will fail right up front with the same error.
@kevinsawicki kevinsawicki added the linux label Dec 11, 2014
@antond
antond commented Feb 13, 2015

I am on 0.179.0 and facing the same issue on Ubuntu 12.04.5 LTS (precise) with the Trusty Hardware Enablement Stack.

Here's some verbose command output that may help:

~$ LIBGL_DEBUG=verbose atom
~$ [17198:0213/075539:ERROR:browser_main_loop.cc(164)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
Xlib:  extension "XInputExtension" missing on display ":10.0".
Xlib:  extension "XInputExtension" missing on display ":10.0".
App load time: 100ms
Xlib:  extension "XInputExtension" missing on display ":10.0".
Xlib:  extension "XInputExtension" missing on display ":10.0".
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so
libGL: driver does not expose __driDriverGetExtensions_swrast(): /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so: undefined symbol: __driDriverGetExtensions_swrast
ATTENTION: default value of option force_s3tc_enable overridden by environment.
libGL: Can't open configuration file /home/.../.drirc: No such file or directory.
libGL: Can't open configuration file /home/.../.drirc: No such file or directory.
libGL error: failed to load driver: swrast
[17220:0213/075539:ERROR:gl_surface_glx.cc(357)] GLX 1.3 or later is required.
[17220:0213/075539:ERROR:gl_surface_x11.cc(56)] GLSurfaceGLX::InitializeOneOff failed.
[17220:0213/075539:ERROR:gpu_child_thread.cc(145)] Exiting GPU process due to errors during initialization
atom: Fatal IO error 104 (Connection reset by peer) on X server :10.0.

Ubuntu info:

~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise

And the glxinfo output:

~$ glxinfo
name of display: :10.0
libGL error: failed to load driver: swrast
display: :10  screen: 0
direct rendering: No (If you want to find out why, try setting LIBGL_DEBUG=verbose)
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile, 
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float, 
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, GLX_ARB_multisample, 
    GLX_EXT_import_context, GLX_EXT_visual_info, GLX_EXT_visual_rating, 
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB, 
    GLX_EXT_create_context_es2_profile, GLX_MESA_copy_sub_buffer, 
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer, 
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control, 
    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync, 
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer, 
    GLX_SGIX_visual_select_group, GLX_EXT_texture_from_pixmap, 
    GLX_INTEL_swap_event
GLX version: 1.2
GLX extensions:
    GLX_ARB_get_proc_address, GLX_EXT_import_context, GLX_EXT_visual_info, 
    GLX_EXT_visual_rating, GLX_MESA_multithread_makecurrent
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.3 Mesa 4.0.4
OpenGL extensions:
    GL_ARB_imaging, GL_ARB_multitexture, GL_ARB_texture_border_clamp, 
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add, 
    GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3, 
    GL_ARB_transpose_matrix, GL_EXT_abgr, GL_EXT_blend_color, 
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_draw_range_elements, 
    GL_EXT_multi_draw_arrays, GL_EXT_texture_env_add, 
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3, 
    GL_EXT_texture_lod_bias, GL_SGIS_texture_border_clamp, 
    GL_SUN_multi_draw_arrays

7 GLX Visuals
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x025 16 tc  1  16  0 r  y .   6  5  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x026 16 tc  1  16  0 r  y .   6  5  5  0 .  .  0 16  8 16 16 16  0  0 0 None
0x027 16 tc  1  16  0 r  y .   6  5  5  8 .  .  0 16  8 16 16 16 16  0 0 None
0x028 16 dc  1  16  0 r  y .   6  5  5  0 .  .  0 16  0  0  0  0  0  0 0 None
0x029 16 dc  1  16  0 r  y .   6  5  5  0 .  .  0 16  8 16 16 16  0  0 0 None
0x02a 16 dc  1  16  0 r  y .   6  5  5  8 .  .  0 16  8 16 16 16 16  0 0 None
0x02b 16 dc  1  16  0 r  . .   6  5  5  8 .  .  0 16  8 16 16 16 16  0 0 None

This is a VM running on KVM, so the VGA driver for it is generic and not GLX 1.3 capable:

~$ lspci | grep VGA
00:02.0 VGA compatible controller: Cirrus Logic GD 5446

Is there a setting in Atom that can disable this requirement (at an expected expense in rendering quality, of course)?

@rpavlik
rpavlik commented Mar 4, 2015

If this is the general "doesn't work without DRI GLX", consider this a me-too. Running latest release from source on Debian Jessie, in a Virtualbox VM accessed through a Cygwin X-server (which supports aiglx). Initially it crashes on startup because it can't find swrast, after installing swrast I get this error (here just using raw X from guest to host, no ssh forwarding):

[5881:0304/160818:ERROR:browser_main_loop.cc(164)] Running without the SUID sandbox! See https://code.google.com/p/chromium/wiki/LinuxSUIDSandboxDevelopment for more information on developing with the sandbox on.
[5881:0304/160818:INFO:audio_manager_pulse.cc(258)] Failed to connect to the context.  Error: Connection refused
App load time: 116ms
[5913:0304/160819:INFO:renderer_main.cc(211)] Renderer process started
The program 'atom' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
  (Details: serial 259 error_code 2 request_code 12 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)

and sometimes this as well:

[5965:0304/160927:ERROR:gles2_cmd_decoder.cc(3823)] GLES2DecoderImpl: Context lost because context no longer current after resize callback.
[5965:0304/160927:ERROR:gles2_cmd_decoder.cc(3952)] Error: 5 for Command kResizeCHROMIUM
[5965:0304/160927:ERROR:gles2_cmd_decoder.cc(3823)] GLES2DecoderImpl: Context lost because context no longer current after resize callback.
[5965:0304/160927:ERROR:gles2_cmd_decoder.cc(3952)] Error: 5 for Command kResizeCHROMIUM
[5965:0304/160927:ERROR:gles2_cmd_decoder.cc(3823)] GLES2DecoderImpl: Context lost because context no longer current after resize callback.
[5965:0304/160927:ERROR:gles2_cmd_decoder.cc(3952)] Error: 5 for Command kResizeCHROMIUM
@batjko
Contributor
batjko commented Mar 4, 2015

Updated on Ubuntu 14.04 from v177 to the latest version (186) today without a problem, using the .deb installer.

@fusentasticus

On Ubuntu 14.04 (Mint 17) as host (running X client) Atom.io will not run in either x2go or TurboVNC sessions for similar reasons.

So is Atom usable with any remote desktop software when running under Linux?

Is there a way to pass something like " --disable-webgl " to Atom?

Tried with Atom editor version: 0.192.

@fusentasticus

Answering my own question: tigervnc (v 1.4.3.) does the job! Atom starts without a hitch.

@rpavlik
rpavlik commented Apr 24, 2015

Still would be good to know if we could disable unnecessary webgl, since there's no reason to use VNC to access a VM running on the same computer.

@arussell

Confirming that it won't work for me either under X2Go on Ubuntu 14.04 due to the lack of GLX support in an X2Go session. Chromium's --disable-gpu flag silences the complaints about GLX errors, but it still fails to connect to the X server despite this.

@boustanihani

Same here using X2Go & Xubuntu 14.04 :(

@thejordanclark

Not that the distro's really matters it's an Atom issue, but this also is preventing Atom to work through X2Go on Manjaro.

@pla1
pla1 commented May 27, 2015

rdesktop over VPN connection to a Ubuntu 14.04.2 LTS desktop fails with GLX 1.3 or later is required.

Atom version 0.202.0

@elico
elico commented Sep 17, 2015

Same thing on Debian Jessie amd64 using x2go client atom 1.0.11

@thomasjo thomasjo closed this Oct 21, 2015
@jrgifford

@thomasjo Why is this closed without any information? Is the bug fixed?

@thomasjo
Member
thomasjo commented Nov 9, 2015

@jrgifford Pretty sure I didn't mean to close this one. At the very least I don't understand why I did. Thanks for the heads up!

@thomasjo thomasjo reopened this Nov 9, 2015
@arussell

Another "me too" for this. Been hoping to try Atom for a while but my main dev environment is an X2go one, so no luck there. Tried every possible chromium option I could think of that disabled GPU acceleration/WebGL but no dice. Chrome/Chromium on the other hand do work over X2go.

@satulovsky

Me too... trying to use Atom via a manually compiled xrdp 0.9.0. Chrome, however, complaints in the same way as Atom, but starts fine:
$ /opt/google/chrome/chrome
Xlib: extension "XInputExtension" missing on display ":10.0".

@029xue
029xue commented Dec 14, 2015

Same problem using Ubuntu 15.10 desktop.

Any workarounds yet?

@gclifford

I am also getting this issue on Ubuntu Mate 15.10

@dsmithdewarcom

Same issue with dpkg install of v1.5 (atom-amd64.deb) on headless 12.04 server (bare metal) --> vnc

@tonywmnix

I was seeing the same error message and debugged it down to an X extension "BIG-REQUESTS". You can use xtrace to trace all the X traffic and I saw an 8MB message before it crashed.
I first disabled all extensions with (xtrace -e ) and that worked.
My final hack was to copy libxcb.so.1 into /usr/share/atom, open up in editor, and change 'BIG-REQUESTS' to '_IG-REQUESTS'. I figure when the client library asks if this extension is supported it will reply no and no more big messages.
hope this helps

@IronicBadger

@tonywmnix - the libxcb.so.1 hack worked for me with Ubuntu Mate 15.10 via XRDP. Thanks.

@bs-ug
bs-ug commented Mar 11, 2016

@tonywmnix & @IronicBadger
Could you please write a step-by-step instruction? I've no idea how you did it. When I view the file in mc I can't find 'BIG-REQUESTS'. There are only 'big_requests' but when I change them I get errors when running atom (something like "don't know what to do with _ig_requests...").

I've Windows10 host with Xubuntu 15.10 on Hyper-V and RDP session (not the most convenient solution but the only one working reasonably with UHD monitor).

@IronicBadger

@bs-ug I just used vi. Then search for the string and replaced it.

@bs-ug
bs-ug commented Mar 11, 2016

@IronicBadger - So simple! Thanks!

@gary-dalton

@tonywmnix libxcb.so.1 hack worked for me on Debian. Well done

@elico
elico commented Mar 14, 2016

And why not just use a symlink to the original file?
For cases when it is binded to a specific libxcb.so version then it would make sense to use this specific library file.

@nestoru
nestoru commented Mar 14, 2016

Just to give an update here that ubuntu 14.04 LTS with atom 1.5.4 debian package downloaded from https://atom.io/ works out of the box without any issues over xrdp. Cheers, - Nestor

@roterdam

+1 for @tonywmnix this really did fix the issue. It also fixes it for Visual Studio Code.

One of the rare times a GitHub issue saves you so much time. Thanks!

@HaiyangDING

+1 to @tonywmnix 's solution. It works for me.

Ubuntu 14.04.3 LTS + .deb package downloaded from atom.io today.

@ghost
ghost commented Mar 31, 2016

Ubuntu 15.10, headless system accessed over xRDP. Thank you @tonywmnix.

@NelsonCrosby

Thanks @tonywmnix - works great!

In case you're looking for a step-by-step for @tonywmnix's hack:

  • Find libxcb.so.1 (somewhere under /usr) (we'll call it $LIBXCB)
  • cd /usr/local/atom
  • cp "$LIBXCB" .
  • sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' libxcb.so.1

Note that you may need to run the last two as sudo. Also usual disclaimer for running commands off the internet.

@thecodix
thecodix commented Apr 7, 2016

Did the trick for me as well, and works with the beta version too

@50Wliu 50Wliu added the bug label Apr 7, 2016
@pmarecki

@tonywmnix solution works on Fedora 22 xfce, where $LIBXCB=/usr/share/atom, and the .so is in /usr/lib64

@superm1
superm1 commented Apr 27, 2016

Worked for me on Ubuntu 16.04 as well over XVnc. LBXCB=/usr/lib/x86_64-linux-gnu/libxcb.so.1

@elico
elico commented May 1, 2016

@nestoru , what version of ubuntu and what desktop environment are you using with the xrdp?

@nestoru
nestoru commented May 2, 2016

@elico, see my comment above ( Mar 14).

@elico
elico commented May 5, 2016

@nestoru I have seen the comment but maybe I am missing what desktop.

  • GNOME
  • MATE
  • XFCE
  • OTHER..
@nestoru
nestoru commented May 5, 2016

@elico, gotcha. This was tested with lxde.

@NelsonCrosby
NelsonCrosby commented May 5, 2016 edited

@elico It worked for me on XFCE, and didn't break it on GNOME.

@elico
elico commented May 5, 2016

@NelsonCrosby thanks for the details.

@groone
groone commented May 8, 2016

@tonywmnix @NelsonCrosby Thanks! Workaround fixed GLX problems on Ubuntu MATE 16.04 when using it over xrdp.

@danielpclark

If you're having trouble finding the file libxcb.so.1 like I was you can type dpkg -L libxcb1

@AlexZeitler

@NelsonCrosby Thanks for your suggestion. Tried it on Ubuntu 14.04 server with Mate Desktop but it didn't work.
Atom is /usr/bin/atom
libxcb.so.1 is at /usr/lib/x86_64-linux-gnu/libxcb.so.1
Copied libxcb.so.1 to /usr/bin/ but it looks like atom does ignore it.

@danielpclark
danielpclark commented May 31, 2016 edited

@AlexZeitler you need to copy libxcb.so.1 to that atom application installation directory. Once it's there you need to modify the file with: sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' libxcb.so.1

I've gotten this to work with Ubuntu MATE 16.04 with RDP

@AlexZeitler

@danielpclark Thanks, I just located the directory using dpkg -L atom which pointed me to /usr/share/atom.
After copying the modified version of libxcb.so.1 into that directory, I was able to start Atom.

@Cotix
Cotix commented Jun 6, 2016

While the libxcb.so.1 hack makes it possible to start atom, it is very, very slow over x2go. Barely usable.

@elico
elico commented Jun 6, 2016

@Cotix What Link Quality Compression are you using? also what Display Size?
These affect anything inside a x2go session.
I am using it over x2go on a Atom(the remote..) server and it works ok for me on 1440x900.
And It's not related to the libxcb.so.1 but to other properties of the software in general.

@50Wliu 50Wliu referenced this issue Jul 30, 2016
Closed

Atom 1.8.0 Fails to start on RHEL 7.2 #12264

6 of 6 tasks complete
@50Wliu 50Wliu changed the title from Atom Editor v0.152.0 debian package not working for ubuntu 12.04 to Atom does not start when using x2go Jul 30, 2016
@50Wliu 50Wliu added the electron label Jul 30, 2016
@ggodreau

Thanks @NelsonCrosby @tonywmnix !

FYI to others, my atom executable was in /opt/atom; atom was installed via apt.

Ubuntu 16.04.1 LTS
Atom 1.9.8-1webupd80

Here was the full fix:

sudo cp /usr/lib/x86_64-linux-gnu/libxcb.so.1 /opt/atom/
sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /opt/atom/libxcb.so.1

No restart of xrdp service was required; worked immediately

@citleon
citleon commented Aug 20, 2016

Ubuntu 16.04.1 LTS
sudo add-apt-repository ppa:webupd8team/atom
sudo apt-get update
sudo apt-get install atom
sudo cp /usr/lib/x86_64-linux-gnu/libxcb.so.1 /opt/atom/
sudo sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' /opt/atom/libxcb.so.1

Thank you! Atom is working via RDP (xrdp/mate)

@wgv-sethlivingston

Would prefer to see a real solution here rather than a hack.

@jludwi2
jludwi2 commented Sep 26, 2016

It worked fine for my on 16.04.1 using TightVnc and I'm happy it's working
even with a hack. (but I still agree with Seth).

@TerribleNews

Using atom-beta .deb package on Ubuntu 16.04 with LXDE over X2Go and couldn't get atom to start with the same error as above. I happened to be logged into the system locally at the same time and noticed that atom was actually opening on my local desktop when I tried to launch from X2Go before implementing the hack for disabling big messages. I'm not sure if that information helps locate and fix the bug, but I thought I'd provide it in case.

@zparihar
zparihar commented Jan 10, 2017 edited

It worked for me on CentOS 7 with XFCE on X2GO with both the Website Version of Atom and the COPR Repository Version:

Instructions:

METHOD 1: WEBSITE VERSION OF ATOM

yum install libXScrnSaver redhat-lsb-core.x86_64 libXScrnSaver.i686
wget https://atom.io/download/rpm
mv rpm atom-date +%b-%d-%Y-Centos7.x86_64.rpm
rpm -ivh atom-Centos7.x86-64.rpm
yum install libxcb.x86_64
cp /usr/lib64/libxcb.so.1
/usr/share/atom/
cd /usr/share/atom/
sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' libxcb.so.1*

-=======================================-
METHOD 2: COPR REPOSITORY VERSION OF ATOM

wget https://copr-be.cloud.fedoraproject.org/results/alonid/yum-plugin-copr/epel-7-x86_64/00110045-yum-plugin-copr/yum-plugin-copr-1.1.31-508.el7.centos.noarch.rpm
rpm -ivh yum-plugin-copr-1.1.31-508.el7.centos.noarch.rpm
yum copr enable helber/atom
yum update
yum install atom
yum install libxcb.x86_64
cp /usr/lib64/libxcb.so.1* /usr/share/atom/
cd /usr/share/atom/
sed -i 's/BIG-REQUESTS/_IG-REQUESTS/' libxcb.so.1*
-=======================================-

HOWTO INSTALL X2GO with XFCE on Cento7

#1. Add EPEL repository first.
yum install epel-release

#2. Then, install X2Go server package using command:
yum install fuse-sshfs
yum install x2goserver x2goserver-xsession

#3. Install XFCE Desktop
yum -y groupinstall "Xfce"
-=======================================-

Hope this helps!

@clintidau

The libxcb.so.1 hack works for me on Fedora 25 with X2Go and XFCE.

@chagara
chagara commented Jan 21, 2017

@zparihar
this worked for me on rhel 7.2 but, I can only launch it from CL.

@zparihar
zparihar commented Feb 1, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment