Wes Modes
Wes Modes

Reputation: 2136

bcrypt is breaking my meteor application, how do I fix it?

I wasn't sure if this should be a stackoverflow or serverfault question.

I installed Meteor's accounts-password module and it worked locally, but broke my app when deployed to the server. Here's the scoop:

I'm running the latest Meteor 1.0.5 locally on OSX (OS just fully updated) Building with --architecture os.linux.x86_64 Deploying to Ubuntu 14.04.2 LTS x86_64 (just updated) Running nodejs v0.12.1 (freshly built) Serving app with nginx v1.4.0

And still getting:

/home/secrethistory/bundle/programs/server/node_modules/fibers/future.js:245
                                            throw(ex);
                                                  ^
Error: Module did not self-register.
    at Error (native)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at bindings (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/node_modules/bindings/bindings.js:74:15)
    at Object.<anonymous> (/home/secrethistory/bundle/programs/server/npm/npm-bcrypt/node_modules/bcrypt/bcrypt.js:3:35)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)

Any tips or places to look next?

Upvotes: 17

Views: 7789

Answers (3)

noone
noone

Reputation: 6558

Rebuilding bycrypt from souce fixed the problem of mine

npm rebuild bcrypt --build-from-source

Upvotes: 0

David Glasser
David Glasser

Reputation: 1468

As of Meteor 1.0.5 (and this also applies to the forthcoming 1.1), we have not yet gone through the full testing, validation, and QA process with Node 0.12. I would recommend sticking with Node 0.10 until that point. While it is likely that it will mostly work, it's possible that some core changes will be necessary, and as you've seen, binary packages built against the 0.10 ABI don't work with 0.12.

Upvotes: 1

fcobcn
fcobcn

Reputation: 301

The bcrypt module is platform dependant (as fibers), so you need to remove the package after decompressing the bundle in your server:

rm -R path/to/bcrypt

then install it again:

npm install bcrypt

Upvotes: 26

Related Questions