Fibers problems while deploying meteor for apache/passenger

i have problems to deploy a meteor app on debian wheezy
i want to use passenger and apache2 (already configurated) as server.

do you have an idea how to fix it?

meteor version 1.2.1
npm version 3.6.0
node version 5.6.0
debian wheezy

npm install

            > fibers@1.0.5 install /var/meteor/bootstrap4/bundle/programs/server/node_modules/fibers
            > node ./build.js

            (node) child_process: options.customFds option is deprecated. Use options.stdio instead.
            make: Entering directory `/var/meteor/bootstrap4/bundle/programs/server/node_modules/fibers/build'
              CXX(target) Release/obj.target/fibers/src/fibers.o
            ../src/fibers.cc: In function ‘v8::Handle<v8::Signature> uni::NewSignature(v8::Isolate*, v8::Handle<v8::FunctionTemplate>, int, v8::Handle<v8::FunctionTemplate>*)’:
            ../src/fibers.cc:132:54: error: no matching function for call to ‘v8::Signature::New(v8::Isolate*&, v8::Handle<v8::FunctionTemplate>&, int&, v8::Handle<v8::FunctionTemplate>*&)’
            ../src/fibers.cc:132:54: note: candidate is:
            In file included from /var/lib/jenkins/.node-gyp/5.6.0/include/node/node.h:42:0,
                             from ../src/coroutine.h:1,
                             from ../src/fibers.cc:1:
            /var/lib/jenkins/.node-gyp/5.6.0/include/node/v8.h:4674:27: note: static v8::Local<v8::Signature> v8::Signature::New(v8::Isolate*, v8::Local<v8::FunctionTemplate>)
            /var/lib/jenkins/.node-gyp/5.6.0/include/node/v8.h:4674:27: note:   candidate expects 2 arguments, 4 provided
            ../src/fibers.cc: In function ‘void uni::SetResourceConstraints(v8::Isolate*, v8::ResourceConstraints*)’:
            ../src/fibers.cc:140:3: error: ‘SetResourceConstraints’ is not a member of ‘v8’
            ../src/fibers.cc:140:3: note: suggested alternative:
            ../src/fibers.cc:139:7: note:   ‘uni::SetResourceConstraints’
            ../src/fibers.cc: In function ‘v8::Handle<v8::Signature> uni::NewSignature(v8::Isolate*, v8::Handle<v8::FunctionTemplate>, int, v8::Handle<v8::FunctionTemplate>*)’:
            ../src/fibers.cc:133:2: warning: control reaches end of non-void function [-Wreturn-type]
            make: *** [Release/obj.target/fibers/src/fibers.o] Error 1
            make: Leaving directory `/var/meteor/bootstrap4/bundle/programs/server/node_modules/fibers/build'
            gyp ERR! build error
            gyp ERR! stack Error: `make` failed with exit code: 2
            gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:276:23)
            gyp ERR! stack     at emitTwo (events.js:100:13)
            gyp ERR! stack     at ChildProcess.emit (events.js:185:7)
            gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
            gyp ERR! System Linux 3.16.0-0.bpo.4-amd64
            gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--release"
            gyp ERR! cwd /var/meteor/bootstrap4/bundle/programs/server/node_modules/fibers
            gyp ERR! node -v v5.6.0
            gyp ERR! node-gyp -v v3.2.1
            gyp ERR! not ok
            Build failed
            npm WARN meteor-dev-bundle@0.0.0 No description
            npm WARN meteor-dev-bundle@0.0.0 No repository field.
            npm WARN meteor-dev-bundle@0.0.0 No license field.
            npm ERR! Linux 3.16.0-0.bpo.4-amd64
            npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
            npm ERR! node v5.6.0
            npm ERR! npm  v3.6.0
            npm ERR! code ELIFECYCLE

            npm ERR! fibers@1.0.5 install: `node ./build.js`
            npm ERR! Exit status 1
            npm ERR!
            npm ERR! Failed at the fibers@1.0.5 install script 'node ./build.js'.
            npm ERR! Make sure you have the latest version of node.js and npm installed.
            npm ERR! If you do, this is most likely a problem with the fibers package,
            npm ERR! not with npm itself.
            npm ERR! Tell the author that this fails on your system:
            npm ERR!     node ./build.js
            npm ERR! You can get information on how to open an issue for this project with:
            npm ERR!     npm bugs fibers
            npm ERR! Or if that isn't available, you can get their info via:
            npm ERR!     npm owner ls fibers
            npm ERR! There is likely additional logging output above.

            npm ERR! Please include the following file with any support request:
            npm ERR!     /var/meteor/bootstrap4/bundle/programs/server/npm-debug.log

apache error.log:
module.js:341
throw err;
^

Error: Cannot find module 'fibers'
at Function.Module._resolveFilename (module.js:339:15)
at Function.Module._load (module.js:290:25)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/var/meteor/bootstrap4/bundle/programs/server/b
at Module._compile (module.js:413:34)
at Object.Module._extensions…js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)

Meteor currently does not support newer versions of nodejs.

You should install node version 0.10.4x and run your app with that.

1 Like

thank you for your answer - i am very new to this stuff.
does it mean that i’ve got to have a seperate linux machine for the meteor live environment
or is it possible to run two different node versions at the same time on one machine?
what if i have to use more actual node modules than these for the 0.10.4x version?

You can use nvm for running multiple versions of node within the same computer.

The npm packages you want to use in your meteor application must be 0.10.4x compatible.

1 Like

thanx, so i uninstalled fibers, installed nvm, activated the 0.10,42 version of node, reinstalled fibers and deployed the app again with npm install. i had only the deprecated messages but no error.
restarted apache2 with passenger included.
the application did not work and the apache error.log file had this error

Error: /var/meteor/bootstrap4/bundle/programs/server/node_modules/fibers/bin/linux-x64-v8-4.6/fibers.node is missing. Try reinstalling node-fibers?
at Object.<anonymous> (/var/meteor/bootstrap4/bundle/programs/server/node_modules/fibers/fibers.js:16:8)
at Module._compile (module.js:413:34)
at Object.Module._extensions…js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/var/meteor/bootstrap4/bundle/programs/server/boot.js:1:75)
at Module._compile (module.js:413:34)
at Object.Module._extensions…js (module.js:422:10)

any idea?

Did you do cd programs/server && npm install in your project folder?

Are you deploying a meteor bundle that you created with meteor build or are you trying to run from your application source code?

Is this a deployment or a development environment?

Did you follow the passenger documentation https://www.phusionpassenger.com/library/walkthroughs/deploy/meteor/

thank you, with your help i got it to work!
i am sending my meteor app to github and a checkin automaticly starts jenkins on my test server which builds the applicatiion.
this is my first meteor project (just for fun) and only a test on my private server (debian, apache2, passenger, node, mongodb, bootstrap4).
here is my simple jenkins deploy script:

file=./build/meteorBootstrap4.tar.gz
fileDir=./build
destDir=/.../bootstrap4
prog=/.../bootstrap4/bundle/programs/server


if [ -d $filedir ]
then
    rm -R $fileDir
fi

mkdir $fileDir

meteor build $fileDir



if [ -d $destDir ]
then
    rm -R $destDir
fi

mkdir $destDir

tar -zxf $file -C $destDir

chown user:group $destDir -R

nvm use 0

npm install --prefix $prog
1 Like

Very nice!

And why apache? Do you need it for something else? Because my understanding is for nginx to be much leaner and more efficient.

yes you’re right with nginx.
i am using apache because i have many other applications running on it, php applications and tomcat containers using mod_jk, so it is all organized in one httpd.conf and over one ip with port 80.
kind regards

Well, that makes sense :slight_smile: