BewareMyPower opened a new issue, #286:
URL: https://github.com/apache/pulsar-client-node/issues/286

   ### Motivation
   
   The EOL of CentOS 7 is 2024-06-30, see 
https://wiki.centos.org/About/Product. However, the Node.js client does not 
support CentOS 7.
   
   ### Reproduce
   
   First, build the `napi-xxx.tar.gz` for x86_64 glibc linux and run the 
`centos:7` container.
   
   ```bash
   docker build --build-arg PLATFORM=x86_64 --build-arg ARCH=x86_64 --build-arg 
NODE_VERSION=18 \
     -t node-build-x86_64 -f pkg/linux/Dockerfile_linux_glibc .
   docker run -i -v $PWD:/pulsar-client-node node-build-x86_64 \
     /pulsar-client-node/pkg/linux/build-napi-inside-docker.sh
   docker run -v $PWD:/pulsar-client-node -it centos:7 /bin/bash
   ```
   
   Then, run the following commands inside the container:
   
   ```bash
   yum update -y
   curl -O -L 
https://nodejs.org/download/release/v16.19.0/node-v16.19.0-linux-x64.tar.gz
   tar zxf node-v16.19.0-linux-x64.tar.gz
   export PATH=$PWD/node-v16.19.0-linux-x64/bin:$PATH
   tar zxf 
/pulsar-client-node/build/stage/pulsar-client-node-1.9.0-rc.0/napi-linux-glibc-x64.tar.gz
   ```
   
   Now, we can see `Pulsar.node` can be loaded because of the high `GLIBCXX` 
version for CentOS 7.
   
   ```bash
   # node
   Welcome to Node.js v16.19.0.
   Type ".help" for more information.
   > const Pulsar = require('./binding/Pulsar.node')
   Uncaught:
   Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required 
by /root/binding/Pulsar.node)
       at Object.Module._extensions..node 
(node:internal/modules/cjs/loader:1249:18)
       at Module.load (node:internal/modules/cjs/loader:1043:32)
       at Function.Module._load (node:internal/modules/cjs/loader:878:12)
       at Module.require (node:internal/modules/cjs/loader:1067:19)
       at require (node:internal/modules/cjs/helpers:103:18) {
     code: 'ERR_DLOPEN_FAILED'
   }
   ```
   
   We can see the supported GLIBCXX versions of `libstdc++.so` on CentOS 7 are:
   
   ```bash
   # strings /usr/lib64/libstdc++.so.6 | grep ^GLIBCXX_[0-9]
   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
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pulsar.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to