code-server: The latest cli (1.32.0-245) cause "ERROR SHARED stderr {"data": "Error: /lib64/libstdc++.so.64: version `GLIBCXX_3.4.21` not found"....

Description

Hi, the above problem raised when “Starting shared process[x/5]”, after I update my code-server cli from 1.31.1-100 to 1.32.0-245. It works properly when using the former version. I am wondering whether the latest cli depends on different C++ library from the former one?

PS: The message is: INFO Starting shared process [1/5]… ERROR SHARED stderr {“data”:"Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by /path/to/my/home/.local/share/code-server/dependencies/spdlog.node)\n…

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 19
  • Comments: 45 (3 by maintainers)

Most upvoted comments

Working on a fix for this right now. If all goes well, we’ll have a working CentOS build today!

Cry? /s

not sure… I’ll poke around again… I know I had this exact issue but I ended up fixing it at some point…


$ npm --version 6.9.0 $ node --version v8.15.0 $ yarn --version 1.13.0

maybe npm update? npm install -g npm

Forget about this, you guys. VSCode Insiders has an extension released by Microsoft called “Remote Development” which does the same thing as this, and it actually works.

A working CentOS build today?

@kylecarbs this is the output of the latest version:

[username@hostname code-server1.604-vsc1.32.0-linux-x64]$ ./code-server -v
./code-server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./code-server)
./code-server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./code-server)

I found out that this problem is (for me) caused by the “spdlog.node” binary. I ended up rebuilding that binary from the repo at https://github.com/Microsoft/node-spdlog… And while I have no idea about how to look into the build process of this project, I presume it doesnt build that binary itself but rather downloads it as a dependency (I mean, my system doesnt HAVE a 3.4.21 GLIBCC header to build with, so this has to be the case). Building node-spdlog does NOT take long at all (a few seconds) so I would suggest that this project should build it itself (it also builds a lot of stuff with gcc compiler in general, so adding this would make the builds more OS independent)

EDIT: At the same time, I somehow ruined everything and through cleanups and all, it wouldn’t build the cli-linux-x64 binary anymore (which is code-server), but that’s unrelated to this issue

I’m on Centos 7, just installed/upgraded to latest libstdc++ offered, same issue.

=======================================================================================================
 Package                        Arch                Version                    Repository         Size
=======================================================================================================
Updating:
 libstdc++                      x86_64              4.8.5-36.el7               base              304 k
Updating for dependencies:
 cpp                            x86_64              4.8.5-36.el7               base              5.9 M
 gcc                            x86_64              4.8.5-36.el7               base               16 M
 gcc-c++                        x86_64              4.8.5-36.el7               base              7.2 M
 gcc-gfortran                   x86_64              4.8.5-36.el7               base              6.7 M
 gcc-gnat                       x86_64              4.8.5-36.el7               base               13 M
 gcc-go                         x86_64              4.8.5-36.el7               base              5.9 M
 gcc-objc                       x86_64              4.8.5-36.el7               base              5.7 M
 gcc-objc++                     x86_64              4.8.5-36.el7               base              6.2 M
 gcc-plugin-devel               x86_64              4.8.5-36.el7               base              827 k
 libgcc                         x86_64              4.8.5-36.el7               base              102 k
 libgfortran                    x86_64              4.8.5-36.el7               base              300 k
 libgnat                        x86_64              4.8.5-36.el7               base              966 k
 libgnat-devel                  x86_64              4.8.5-36.el7               base              2.7 M
 libgo                          x86_64              4.8.5-36.el7               base              2.2 M
 libgo-devel                    x86_64              4.8.5-36.el7               base              229 k
 libgomp                        x86_64              4.8.5-36.el7               base              157 k
 libobjc                        x86_64              4.8.5-36.el7               base               79 k
 libquadmath                    x86_64              4.8.5-36.el7               base              189 k
 libquadmath-devel              x86_64              4.8.5-36.el7               base               52 k
 libstdc++-devel                x86_64              4.8.5-36.el7               base              1.5 M

and before this:

=======================================================================================================
 Package                   Arch               Version                        Repository           Size
=======================================================================================================
Updating:
 glibc                     x86_64             2.17-260.el7_6.3               updates             3.7 M
Updating for dependencies:
 glibc-common              x86_64             2.17-260.el7_6.3               updates              12 M
 glibc-devel               x86_64             2.17-260.el7_6.3               updates             1.1 M
 glibc-headers             x86_64             2.17-260.el7_6.3               updates             683 k

@FractalBoy - remote development vs online ide have one big difference - online ride is not using your local resources (CPU and RAM). It can be critical in some cases.

Same problem on CentOS Linux release 7.6.1810 (Core)

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH

Make sure you’re updated, i was able to run it on CentOS 7 after running this: yum install -y git bzip2 gcc gcc-c++ make libX11-devel.x86_64 libxkbfile-devel.x86_64 libsecret-devel.x86_64

Package git-1.8.3.1-20.el7.x86_64 already installed and latest version
Package bzip2-1.0.6-13.el7.x86_64 already installed and latest version
Package gcc-4.8.5-36.el7.x86_64 already installed and latest version
Package gcc-c++-4.8.5-36.el7.x86_64 already installed and latest version
Package 1:make-3.82-23.el7.x86_64 already installed and latest version
Package libX11-devel-1.6.5-2.el7.x86_64 already installed and latest version
Package libxkbfile-devel-1.0.9-3.el7.x86_64 already installed and latest version
Package libsecret-devel-0.18.6-1.el7.x86_64 already installed and latest version
Nothing to do

What to do now? 😃

Still got the same error message:

./code-server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./code-server)
./code-server: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./code-server)

I also tried to run with LD_LIBRARY_PATH but I cannot start share process successfully.

> LD_LIBRARY_PATH=/path/to/newer/lib code-server
...
INFO  Starting shared process [1/5]...
INFO  Starting shared process [2/5]... {"error":"Exited with 1"}
INFO  Starting shared process [3/5]... {"error":"Exited with 1"}
INFO  Starting shared process [4/5]... {"error":"Exited with 1"}
INFO  Starting shared process [5/5]... {"error":"Exited with 1"}

Might be fixed with the latest release.

We lowered the GLIBC version required. Might be able to work on older versions now.

I resolved this issue by install gcc-9.1.0 (gcc-9.1.0.tar.gz) manually in CentOS 7. https://gcc.gnu.org/mirrors.html

My version: code-server1.1156-vsc1.33.1-linux-x64

@EasySoftwarePoland indeed ! the reason why i’m interested with this is to use the physical resource for one of my servers.

In version 1.31.1-100, it’s effective to use LD_LIBRARRY_PATH. But, this approach is no longer valid in later versions. That confuses me.

The same problem Ubuntu “18.04.2 LTS (Bionic Beaver)” (it’s google cloud Ubuntu mini )