massakam opened a new pull request, #285:
URL: https://github.com/apache/pulsar-client-node/pull/285

   ### Motivation
   
   The latest version of pulsar-client does not work on Rocky Linux 8.
   ```sh
   $ head -n 2 /etc/os-release
   
   NAME="Rocky Linux"
   VERSION="8.7 (Green Obsidian)"
   
   $ npm ls
   
   nodejs@ /home/massakam/temp/nodejs
   └── pulsar-client@1.8.0
   
   $ node consumer.js
   
   node:internal/modules/cjs/loader:1243
     return process.dlopen(module, path.toNamespacedPath(filename));
                    ^
   
   Error: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required 
by 
/home/massakam/temp/nodejs/node_modules/pulsar-client/lib/binding/Pulsar.node)
       at Module._extensions..node (node:internal/modules/cjs/loader:1243:18)
       at Module.load (node:internal/modules/cjs/loader:1037:32)
       at Module._load (node:internal/modules/cjs/loader:878:12)
       at Module.require (node:internal/modules/cjs/loader:1061:19)
       at require (node:internal/modules/cjs/helpers:103:18)
       at Object.<anonymous> 
(/home/massakam/temp/nodejs/node_modules/pulsar-client/src/pulsar-binding.js:24:17)
       at Module._compile (node:internal/modules/cjs/loader:1159:14)
       at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
       at Module.load (node:internal/modules/cjs/loader:1037:32)
       at Module._load (node:internal/modules/cjs/loader:878:12) {
     code: 'ERR_DLOPEN_FAILED'
   }
   
   Node.js v18.12.1
   ```
   
   The binary file `Pulsar.node` requires up to `GLIBCXX_3.4.26`, but this is 
not available on Rocky.
   ```sh
   $ strings node_modules/pulsar-client/lib/binding/Pulsar.node | grep -o 
'GLIBCXX_[0-9\.]\+' | sort | uniq
   
   GLIBCXX_3.4
   GLIBCXX_3.4.11
   GLIBCXX_3.4.14
   GLIBCXX_3.4.15
   GLIBCXX_3.4.18
   GLIBCXX_3.4.19
   GLIBCXX_3.4.20
   GLIBCXX_3.4.21
   GLIBCXX_3.4.22
   GLIBCXX_3.4.26
   GLIBCXX_3.4.9
   
   $ strings /lib64/libstdc++.so.6 | grep 'GLIBCXX_'
   
   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
   GLIBCXX_3.4.20
   GLIBCXX_3.4.21
   GLIBCXX_3.4.22
   GLIBCXX_3.4.23
   GLIBCXX_3.4.24
   GLIBCXX_3.4.25
   GLIBCXX_DEBUG_MESSAGE_LENGTH
   GA+GLIBCXX_ASSERTIONS
   ```
   
   This is probably because the glibc version included in the Docker image 
`node:18-bullseye` used to build `Pulsar.node` is too high.
   
   ### Modifications
   
   Build the binary for Linux OSes that use glibc on `node:18-buster` (based on 
Debian 10.0) instead of `node:18-bullseye` (based on Debian 11.0). The binary 
built on `node:18-buster` requires only up to `GLIBCXX_3.4.22` and works 
properly on Rocky.
   ```sh
   $ strings lib/binding/Pulsar.node | grep -o 'GLIBCXX_[0-9\.]\+' | sort | uniq
   
   GLIBCXX_3.4
   GLIBCXX_3.4.11
   GLIBCXX_3.4.14
   GLIBCXX_3.4.15
   GLIBCXX_3.4.18
   GLIBCXX_3.4.19
   GLIBCXX_3.4.20
   GLIBCXX_3.4.21
   GLIBCXX_3.4.22
   GLIBCXX_3.4.9
   ```
   
   ### Verifying this change
   
   - [ ] Make sure that the change passes the CI checks.
   
   ### Documentation
   
   <!-- DO NOT REMOVE THIS SECTION. CHECK THE PROPER BOX ONLY. -->
   
   - [ ] `doc-not-needed` 


-- 
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

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

Reply via email to