question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

grpc_node.node: undefined symbol: OPENSSL_init_ssl

See original GitHub issue

Problem description

PANIC on scl NODE EL7.

Reproduction steps

> new grpc.Client('localhost', grpc.credentials.createSsl(Buffer.alloc(1))).waitForReady(Date.now(), ()=>{}); 
undefined
> node: symbol lookup error: /xx/node_modules/grpc/src/node/extension_binary/node-v72-linux-x64-glibc/grpc_node.node: undefined symbol: OPENSSL_init_ssl

Environment

grpc@1.24.3

$ node -v
v12.18.2
$ which node
/opt/rh/rh-nodejs12/root/usr/bin/node
$ rpm -qf /opt/rh/rh-nodejs12/root/usr/bin/node
rh-nodejs12-nodejs-12.18.2-1.el7.x86_64
$ rpm -qi rh-nodejs12-nodejs-12.18.2-1.el7.x86_64
Name        : rh-nodejs12-nodejs
Version     : 12.18.2
Release     : 1.el7
Architecture: x86_64
Install Date: Tue 25 Aug 2020 03:49:13 AM CDT
Group       : Development/Languages
Size        : 35528528
License     : MIT and ASL 2.0 and ISC and BSD
Signature   : RSA/SHA1, Mon 24 Aug 2020 10:16:17 AM CDT, Key ID 4eb84e71f2ee9d55
Source RPM  : rh-nodejs12-nodejs-12.18.2-1.el7.src.rpm
Build Date  : Mon 20 Jul 2020 08:42:40 AM CDT
Build Host  : c1bk.rdu2.centos.org
Relocations : (not relocatable)
Packager    : CBS <cbs@centos.org>
Vendor      : CentOS
URL         : http://nodejs.org/
Summary     : JavaScript runtime
Description :
Node.js is a platform built on Chrome's JavaScript runtime
for easily building fast, scalable network applications.
Node.js uses an event-driven, non-blocking I/O model that
makes it lightweight and efficient, perfect for data-intensive
real-time applications that run across distributed devices.
$ ldd /opt/rh/rh-nodejs12/root/usr/bin/node
        linux-vdso.so.1 =>  (0x00007ffd236ff000)
        libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f73dfc4b000)
        libssl.so.10 => /lib64/libssl.so.10 (0x00007f73df9d9000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f73df7d5000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f73df4ce000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f73df1cc000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f73defb6000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f73ded9a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f73de9cc000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f73de7b6000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f73de569000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f73de280000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f73de07c000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f73dde49000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f73e00ae000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f73ddc39000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f73dda35000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f73dd81b000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f73dd5f4000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f73dd392000)

To get SCL ver installed:

yum --enablerepo=extras install centos-release-scl-rh
yum install rh-nodejs12

Additional context

This is happening both with bundled binary from June 4th and with extension that’s been compiled from source on this machine. WTF guys this is extremely unexpected and is impeding deployment.

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:11 (4 by maintainers)

github_iconTop GitHub Comments

1reaction
murgatroid99commented, Oct 6, 2020

According to this documentation, “The OPENSSL_init_ssl() function was added in OpenSSL 1.1.0.” The most likely cause of this error is that you have an earlier version of OpenSSL. I suggest upgrading your OpenSSL installation.

Alternatively, you may want to use @grpc/grpc-js instead of grpc. We created that package to avoid these kinds of problems.

0reactions
celestekingcommented, Oct 8, 2020

We’ve got lost in translation. You should be more on fresh air. Have I not been so pushy, it would’ve stopped at comment #3 and nothing would’ve been done regarding this bug. Closing as this has been taken care of by grpc upstream and will hopefully land back into this repo soon. Thanks.

Read more comments on GitHub >

github_iconTop Results From Across the Web

gRPC service in Node.js: Tutorial, Examples and Best practices
In this article, we will demonstrate how to build a gRPC-powered API in Nodejs. First, let's learn what gRPC is.
Read more >
What is gRPC ? How to implement gRPC in Node.js
Everyone talks about gRPC. Have you ever wonder how it works or how to implement it in Nodejs. Read the full article to...
Read more >
nodejs is throwing symbol lookup error - Stack Overflow
Can you try uninstalling latest zmq module by npm uninstall zmq and try with specific version of zmq npm install zmq@2.4.0.
Read more >
gRPC Node.js Client - DataStax Documentation
Install stargate-grpc-node-client using either npm or yarn : npm command ... You'll get undefined or another falsy value based on the expected data...
Read more >
grpc/grpc - Gitter
... ssl_transport_security.cc:(.text+0x5ff): undefined reference to ... Does anyone know why I am getting these with node 14 + grpc with typescript ?
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found