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:
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?
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
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
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
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
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.
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 ?
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.
Alright, thank you very much Michal :)
https://github.com/openshift/origin-server/pull/5480
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
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.
ok ... I got it to work I did: scl enable nodejs010 'node' then at the node prompt require('./index.js');
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.
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.
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?
[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
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
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 >