grpc / grpc/grpc-node

Version of protoc included causes GLIBCXX_3.4.21 and CXXABI_1.3.8 errors on Linux

Open
#819 4 comments 0 reactions 0 assignees View on GitHub
package: grpc-tools
Dominant language
TypeScript
Stars
4.8k
Forks
716
Avg merge
2d 3h
Merged PRs (30d)
10

Description

### Problem description
The versions of protoc and grpc_node_plugin installed by grpc-node are incompatible with the version of libstdc++.so.6 that is available on Red Hat and other systems. Even when the Red Hat Devtoolset 8 is installed, which upgrades gcc to v8, the binary needs CXXABI_1.3.8 and GLIBCXX_3.4.21, which are unavailable

### Reproduction steps
Starting from the most recent Red Hat AMI on AWS: ami-0a7e1ebfee7a4570e

- Enable Software Collections devtoolset-8
- yum install devtoolset-8-gcc*
- source /opt/rh/devtoolset-8/enable
- install node 8.15.1
- npm install grpc-tools

$ **node_modules/grpc-tools/bin/protoc**
node_modules/grpc-tools/bin/protoc: /lib64/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by node_modules/grpc-tools/bin/protoc)
node_modules/grpc-tools/bin/protoc: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by node_modules/grpc-tools/bin/protoc)

$ **node_modules/grpc-tools/bin/grpc_node_plugin**
node_modules/grpc-tools/bin/grpc_node_plugin: /lib64/libstdc++.so.6: version 'CXXABI_1.3.8' not found (required by node_modules/grpc-tools/bin/grpc_node_plugin)
node_modules/grpc-tools/bin/grpc_node_plugin: /lib64/libstdc++.so.6: version 'GLIBCXX_3.4.21' not found (required by node_modules/grpc-tools/bin/grpc_node_plugin)

### Environment
- OS: RHEL-7.6 x86_64
- Node version 8.15.1 installed via nvm
- gcc 8.2.1 - installed from devtoolset-8 and enabled with /opt/rh/devtoolset-8/enable
- grpc-tools@1.7.0+

### Additional context
This seems to have been introduced by the bump to 1.7.0. Version 1.6.6 does not have the same problems.

output of ldd of the protoc included with grpc-tools 1.7.2:
ldd protoc
./protoc: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./protoc)
./protoc: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./protoc)
linux-vdso.so.1 => (0x00007fff5596b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fdeb6947000)
libz.so.1 => /lib64/libz.so.1 (0x00007fdeb6731000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fdeb642a000)
libm.so.6 => /lib64/libm.so.6 (0x00007fdeb6128000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fdeb5f12000)
libc.so.6 => /lib64/libc.so.6 (0x00007fdeb5b45000)
/lib64/ld-linux-x86-64.so.2 (0x00007fdeb74c7000)

Protoc 3.6.1 provided by google, downloaded from https://github.com/protocolbuffers/protobuf/releases/download/v3.6.1/protoc-3.6.1-linux-x86_64.zip works fine
ldd protoc
linux-vdso.so.1 => (0x00007fffeb8d2000)
libm.so.6 => /lib64/libm.so.6 (0x00007f18377d8000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f18375bc000)
libc.so.6 => /lib64/libc.so.6 (0x00007f18371ef000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1837ada000)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.