Bug 1104922 - node: error while loading shared libraries: libv8.so.v8314-3.14.5
Summary: node: error while loading shared libraries: libv8.so.v8314-3.14.5
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: OpenShift Online
Classification: Red Hat
Component: Image
Version: 2.x
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Michal Fojtik
QA Contact: libra bugs
URL:
Whiteboard:
Depends On:
Blocks: 1106559
TreeView+ depends on / blocked
 
Reported: 2014-06-05 03:58 UTC by Rich Hildred
Modified: 2015-05-15 00:42 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1106559 (view as bug list)
Environment:
Last Closed: 2014-07-15 10:30:13 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Rich Hildred 2014-06-05 03:58:45 UTC
Description of problem:

[rhfp-syndicateme.rhcloud.com repo]\> node index.js
node: error while loading shared libraries: libv8.so.v8314-3.14.5: cannot open shared object file: No such file or directory


Version-Release number of selected component (if applicable):

Node js 10.0

How reproducible:

happens every time I deploy in my post receive hook. I also get the error when I try to run manually (see above)

Steps to Reproduce:
1.
2.
3.

Actual results:

node: error while loading shared libraries: libv8.so.v8314-3.14.5

Expected results:

see a list of the indexed files

Additional info:

Comment 1 Michal Fojtik 2014-06-05 12:53:44 UTC
Rich:

You can try to prefix the 'node' with "scl enable node010 'node'".

Also can you please provide more info, like the output of 'env' command in the script where do you execute 'node' command?

Comment 2 Michal Fojtik 2014-06-05 13:12:52 UTC
FYI, this works when I do 'rhc ssh':

[node-mfojtik.rhcloud.com 539069e6e0b8cd999a00011e]\> echo $LD_LIBRARY_PATH
/opt/rh/v8314/root/usr/lib64:/opt/rh/nodejs010/root/usr/lib64
[node-mfojtik.rhcloud.com 539069e6e0b8cd999a00011e]\> node -v
v0.10.25

Comment 3 francois roland 2014-06-05 14:17:47 UTC
I'm having the same error anytime I type a 'node' or 'npm' command in the rhc ssh command line tool.

I tried both propositions from Michal, and here are the results I get : 

$ scl enable node010 'node'
Unable to open /etc/scl/prefixes/node010!

$ echo $LD_LIBRARY_PATH
/opt/rh/nodejs010/root/usr/lib64

$ node -v
node: error while loading shared libraries: libv8.so.v8314-3.14.5: cannot open shared object file: No such file or directory

$ env
MANPATH=/opt/rh/nodejs010/root/usr/share/man::
OPENSHIFT_SECRET_TOKEN=[hidden]
OPENSHIFT_GEAR_MEMORY_MB=512
SELINUX_ROLE_REQUESTED=
GEM_HOME=/var/lib/openshift/5389ccff50044672510000c2/.gem
OPENSHIFT_DEPLOYMENT_TYPE=git
TERM=xterm-256color
SHELL=/bin/bash
OPENSHIFT_MONGODB_DB_USERNAME=admin
OPENSHIFT_MONGODB_DB_LOG_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-root/logs/
OPENSHIFT_LOG_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-root/logs/
TMPDIR=/tmp/
SSH_CLIENT=80.215.167.182 16582 22
OPENSHIFT_NODEJS_PATH_ELEMENT=/var/lib/openshift/5389ccff50044672510000c2//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin
OPENSHIFT_DEPLOYMENTS_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-deployments/
OPENSHIFT_TMP_DIR=/tmp/
SELINUX_USE_CURRENT_RANGE=
OPENSHIFT_REPO_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-root/runtime/repo/
OPENSHIFT_HOMEDIR=/var/lib/openshift/5389ccff50044672510000c2/
OPENSHIFT_MONGODB_DB_PASSWORD=5bzWYi14kJbw
OPENSHIFT_GEAR_NAME=devconitv
OPENSHIFT_NODEJS_PORT=8080
OPENSHIFT_PYPI_MIRROR_URL=http://mirror1.ops.rhcloud.com/mirror/python/web/simple
SSH_TTY=/dev/pts/1
OPENSHIFT_NODEJS_LD_LIBRARY_PATH_ELEMENT=/opt/rh/nodejs010/root/usr/lib64
OPENSHIFT_NODEJS_IDENT=redhat:nodejs:0.10:0.0.18
OPENSHIFT_APP_SSH_PUBLIC_KEY=[path to key]
OPENSHIFT_CLOUD_DOMAIN=rhcloud.com
USER=5389ccff50044672510000c2
LD_LIBRARY_PATH=/opt/rh/nodejs010/root/usr/lib64
TMP_DIR=/tmp/
TMOUT=300
OPENSHIFT_BUILD_DEPENDENCIES_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-root/runtime/build-dependencies/
OPENSHIFT_MONGODB_IDENT=redhat:mongodb:2.4:0.2.11
MAIL=/var/mail/5389ccff50044672510000c2
PATH=/var/lib/openshift/5389ccff50044672510000c2//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin:/bin:/usr/bin:/usr/sbin
PWD=/var/lib/openshift/5389ccff50044672510000c2
OPENSHIFT_NODEJS_LOG_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-root/logs/
OPENSHIFT_MONGODB_DB_HOST=127.7.108.130
OPENSHIFT_APP_DNS=devconitv-conitv.rhcloud.com
LANG=fr_FR.UTF-8
OPENSHIFT_PRIMARY_CARTRIDGE_DIR=/var/lib/openshift/5389ccff50044672510000c2/nodejs/
OPENSHIFT_NODEJS_IP=127.7.108.129
OPENSHIFT_GEAR_DNS=devconitv-conitv.rhcloud.com
PS1=[devconitv-conitv.rhcloud.com \W]\> 
OPENSHIFT_CARTRIDGE_SDK_BASH=/usr/lib/openshift/cartridge_sdk/bash/sdk
SELINUX_LEVEL_REQUESTED=
OPENSHIFT_APP_SSH_KEY=[path to key]
SHLVL=1
OPENSHIFT_DEPLOYMENT_BRANCH=master
HOME=/var/lib/openshift/5389ccff50044672510000c2/
OPENSHIFT_MONGODB_DB_URL=mongodb://admin:[password]@127.7.108.130:27017/
OPENSHIFT_MONGODB_DB_PORT=27017
OPENSHIFT_NODEJS_PID_DIR=/var/lib/openshift/5389ccff50044672510000c2/nodejs//run/
OPENSHIFT_DEPENDENCIES_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-root/runtime/dependencies/
OPENSHIFT_KEEP_DEPLOYMENTS=1
OPENSHIFT_APP_NAME=devconitv
OPENSHIFT_DATA_DIR=/var/lib/openshift/5389ccff50044672510000c2/app-root/data/
TMP=/tmp/
LOGNAME=5389ccff50044672510000c2
OPENSHIFT_NAMESPACE=conitv
OPENSHIFT_AUTO_DEPLOY=true
OPENSHIFT_GEAR_UUID=5389ccff50044672510000c2
OPENSHIFT_BROKER_HOST=openshift.redhat.com
SSH_CONNECTION=80.215.167.182 16582 10.82.241.44 22
OPENSHIFT_APP_UUID=5389ccff50044672510000c2
OPENSHIFT_NODEJS_VERSION=0.10
OPENSHIFT_UMASK=077
OPENSHIFT_NODEJS_DIR=/var/lib/openshift/5389ccff50044672510000c2/nodejs/
HISTFILE=/var/lib/openshift/5389ccff50044672510000c2/app-root/data/.bash_history
OPENSHIFT_CARTRIDGE_SDK_RUBY=/usr/lib/openshift/cartridge_sdk/ruby/sdk.rb
OPENSHIFT_MONGODB_DIR=/var/lib/openshift/5389ccff50044672510000c2/mongodb/
_=/bin/env
OLDPWD=/var/lib/openshift/5389ccff50044672510000c2/

I can see the libv8.so.v8314-3.14.5 in the /opt/rh/v8314/root/usr/lib64 folder, so I tried to change the LD_LIBRARY_PATH using rhc set-env, but it doesn't work (rhc set-env says 'done', but using echo $LD_LIBRARY_PATH in ssh still prints the old value)

The app is still running but I need node command line to work for some bash scripts and cron jobs

Comment 4 francois roland 2014-06-05 14:46:12 UTC
Some more info...

when doing 
$rhc set-env LD_LIBRARY_PATH=/opt/rh/v8314/root/usr/lib64:/opt/rh/nodejs010/root/usr/lib64 -a appname

it adds a file to the ~/.env/user_vars/ folder with the declared value, but it doesn't change the $LD_LIBRARY_PATH variable unfortunately

I noticed there's no mention of the v8314 lib in the /etc/ld.so.conf.d folder, but I can't change it since I don't have root access. 

I've also been looking for a place like ~./bashrc to add a line like
export LD_LIBRARY_PATH=/opt/rh/v8314/root/usr/lib64:/opt/rh/nodejs010/root/usr/lib64 
but haven't find anything

Comment 5 francois roland 2014-06-05 15:26:46 UTC
update : 

don't know if you guys changed anything but LD_LIBRARY_PATH is now /opt/rh/v8314/root/usr/lib64:/opt/rh/nodejs010/root/usr/lib64 and node command is working again

I also ran 
$ scl enable nodejs010 v8314 'node'

but I'm not sure what fixed things up

Comment 6 Michal Fojtik 2014-06-05 16:07:35 UTC
Francois, we haven't touched anything AFAIK ;-) Have you tried to stop/start?

Yeah, if you have custom script that runs 'node' command, that it is good idea to use 'scl enable' wrapper to assure it will get proper env vars, independent on the OpenShift LD_LIBRARY_PATH.

Comment 7 francois roland 2014-06-05 16:16:20 UTC
Michal, 

No, I didn't stop/start the app before noticing things were back to normal.

So it seems the scl line did the trick. I just checked scl --help to get the correct name for node (was nodejs010 and not node010 as you said earlier)

what do you mean by 'scl enable' wrapper ? Do I have to include this line anytime I need to run a node script ?

I started using the services a few days ago and never had this issue before. Is there a way to 'fix' things permanently ?

Comment 8 Michal Fojtik 2014-06-05 16:22:07 UTC
Francois: Yes, this should work without any 'scl enable', I will fix this tomorrow morning but it will not go into production immediately. In meanwhile, using the 'scl enable' is a 'good' workaround as it make sure everything (LD_LIBRARY_PATH/PATH) is set correctly.

Comment 9 francois roland 2014-06-05 16:23:20 UTC
Alright, 

thank you very much Michal :)

Comment 11 openshift-github-bot 2014-06-06 10:29:42 UTC
Commit pushed to master at https://github.com/openshift/origin-server

https://github.com/openshift/origin-server/commit/e6c3518635e8916cd88dc25a7a237c65b74465a8
Bug 1104922 - Add v8314 collection list of enabled SCL for nodejs cart

Comment 12 Rich Hildred 2014-06-07 03:25:51 UTC
still not working for me env:

MANPATH=/opt/rh/nodejs010/root/usr/share/man:
OPENSHIFT_SECRET_TOKEN=fhHntICnYoeXK-WGrA9wLKofh-7u7W2iBQc9AqJFAI2ECMeVxZW0ZjhBKT8hFb2wRvE4KS7tYUCRrkbgC9CmOogFCUHHE1f6yswtUcoh8wRwuqLNoTSmxrgQm1A1KIV5
OPENSHIFT_GEAR_MEMORY_MB=512
SELINUX_ROLE_REQUESTED=
GEM_HOME=/var/lib/openshift/52544d70e0b8cd9fba00000e/.gem
TERM=xterm-256color
SHELL=/bin/bash
OPENSHIFT_LOG_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/logs/
TMPDIR=/tmp/
SSH_CLIENT=174.88.149.75 57851 22
OPENSHIFT_NODEJS_PATH_ELEMENT=/var/lib/openshift/52544d70e0b8cd9fba00000e//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin
OPENSHIFT_DEPLOYMENTS_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-deployments/
OPENSHIFT_TMP_DIR=/tmp/
SELINUX_USE_CURRENT_RANGE=
OPENSHIFT_REPO_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/runtime/repo/
OPENSHIFT_HOMEDIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/
OPENSHIFT_GEAR_NAME=rhfp
OPENSHIFT_NODEJS_PORT=8080
OPENSHIFT_GEAR_NAME=rhfp
OPENSHIFT_NODEJS_PORT=8080
OPENSHIFT_PYPI_MIRROR_URL=http://mirror1.ops.rhcloud.com/mirror/python/web/simple
SSH_TTY=/dev/pts/0
OPENSHIFT_NODEJS_LD_LIBRARY_PATH_ELEMENT=/opt/rh/nodejs010/root/usr/lib64
OPENSHIFT_NODEJS_IDENT=redhat:nodejs:0.10:0.0.18
OPENSHIFT_APP_SSH_PUBLIC_KEY=/var/lib/openshift/52544d70e0b8cd9fba00000e/.openshift_ssh/id_rsa.pub
OPENSHIFT_CLOUD_DOMAIN=rhcloud.com
USER=52544d70e0b8cd9fba00000e
LD_LIBRARY_PATH=/opt/rh/nodejs010/root/usr/lib64
TMP_DIR=/tmp/
TMOUT=300
OPENSHIFT_BUILD_DEPENDENCIES_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/runtime/build-dependencies/
MAIL=/var/mail/52544d70e0b8cd9fba00000e
PATH=/var/lib/openshift/52544d70e0b8cd9fba00000e//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin:/bin:/usr/bin:/usr/sbin
PWD=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/runtime/repo
OPENSHIFT_NODEJS_LOG_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/logs/
OPENSHIFT_APP_DNS=rhfp-syndicateme.rhcloud.com
OPENSHIFT_NODEJS_LOG_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/logs/
OPENSHIFT_APP_DNS=rhfp-syndicateme.rhcloud.com
LANG=en_CA.UTF-8
OPENSHIFT_PRIMARY_CARTRIDGE_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/nodejs/
OPENSHIFT_GEAR_DNS=rhfp-syndicateme.rhcloud.com
OPENSHIFT_NODEJS_IP=127.13.15.129
PS1=[rhfp-syndicateme.rhcloud.com \W]\>
OPENSHIFT_CARTRIDGE_SDK_BASH=/usr/lib/openshift/cartridge_sdk/bash/sdk
SELINUX_LEVEL_REQUESTED=
OPENSHIFT_APP_SSH_KEY=/var/lib/openshift/52544d70e0b8cd9fba00000e/.openshift_ssh/id_rsa
SHLVL=1
HOME=/var/lib/openshift/52544d70e0b8cd9fba00000e/
OPENSHIFT_NODEJS_PID_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/nodejs//run/
OPENSHIFT_DEPENDENCIES_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/runtime/dependencies/
OPENSHIFT_APP_NAME=rhfp
OPENSHIFT_DATA_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/data/
TMP=/tmp/
LOGNAME=52544d70e0b8cd9fba00000e
OPENSHIFT_GEAR_UUID=52544d70e0b8cd9fba00000e
OPENSHIFT_NAMESPACE=syndicateme
OPENSHIFT_BROKER_HOST=openshift.redhat.com
SSH_CONNECTION=174.88.149.75 57851 10.108.9.149 22
OPENSHIFT_APP_UUID=52544d70e0b8cd9fba00000e
OPENSHIFT_NODEJS_VERSION=0.10
OPENSHIFT_UMASK=077
OPENSHIFT_NODEJS_DIR=/var/lib/openshift/52544d70e0b8cd9fba00000e/nodejs/
HISTFILE=/var/lib/openshift/52544d70e0b8cd9fba00000e/app-root/data/.bash_history
OPENSHIFT_CARTRIDGE_SDK_RUBY=/usr/lib/openshift/cartridge_sdk/ruby/sdk.rb
_=/bin/env
OLDPWD=/var/lib/openshift/52544d70e0b8cd9fba00000e

when I try to do  the scl thing:

[rhfp-syndicateme.rhcloud.com repo]\> scl enable node010 'node' node index.js
Unable to open /etc/scl/prefixes/node010!

this has worked properly for months, and just stopped working on the 4th.

Comment 13 Rich Hildred 2014-06-07 03:32:37 UTC
ok ... I got it to work

I did:

scl enable nodejs010 'node'

then at the node prompt

require('./index.js');

Comment 14 Yan Du 2014-06-09 08:32:58 UTC
Test on devenv_4850, issue can't be reproduced.

[n10a-111.dev.rhcloud.com repo]\>  echo $LD_LIBRARY_PATH
/opt/rh/v8314/root/usr/lib64
[n10a-111.dev.rhcloud.com repo]\> node -v
v0.6.20

Move bug to verified.

Comment 15 Michal Fojtik 2014-06-09 12:29:25 UTC
Rich: The problem is that LD_LIBRARY_PATH=/opt/rh/nodejs010/root/usr/lib64 is missing the V8 path as the V8 became part of Software Collection... My patch should correct this, but it is not in production yet.

Comment 16 Tomas Tomecek 2014-06-09 17:56:13 UTC
Same issue here.

A week ago it worked smoothly, but for last 5 days, my cron job with lots of '$ node' is raising that ^ line.

What is the ETA for this fix to get into production?

Comment 18 Peter Ruan 2014-06-09 22:52:47 UTC
[nodeapp-jqw1vv.stg.rhcloud.com app-root]\> echo $LD_LIBRARY_PATH
/opt/rh/v8314/root/usr/lib64
[nodeapp-jqw1vv.stg.rhcloud.com app-root]\> node -v
v0.6.20
[nodeapp-jqw1vv.stg.rhcloud.com app-root]\> node

Comment 19 openshift-github-bot 2014-06-18 20:55:21 UTC
Commit pushed to master at https://github.com/openshift/origin-server

https://github.com/openshift/origin-server/commit/0df76261a078181439887a852bfbb58f683ed9c7
Bug 1104922 - Bump the nodejs cartridge version to trigger update

Comment 20 Meng Bo 2014-06-19 10:11:04 UTC
After upgrade/migrate from devenv-stage_883 to latest devenv, the node has the correct version and the scl nodejs010 related paths are included in the NODEJS_PATH_ELEMENT.

[farmstand-dym.dev.rhcloud.com 53a2b757b9298a3fd10002e2]\> env|grep PATH_ELEMENT
OPENSHIFT_NODEJS_PATH_ELEMENT=/var/lib/openshift/53a2b757b9298a3fd10002e2//.node_modules/.bin:/opt/rh/nodejs010/root/usr/bin
OPENSHIFT_NODEJS_LD_LIBRARY_PATH_ELEMENT=/opt/rh/nodejs010/root/usr/lib64:/opt/rh/v8314/root/usr/lib64

[farmstand-dym.dev.rhcloud.com 53a2b757b9298a3fd10002e2]\> node -v
v0.10.25
[farmstand-dym.dev.rhcloud.com 53a2b757b9298a3fd10002e2]\> node
>


Note You need to log in before you can comment on or make changes to this bug.