TritonDataCenter / node-workflow

Task orchestration, creation and running using NodeJS
MIT License
456 stars 66 forks source link

node-gyp rebuild / dtrace-provider 0.2.8 fail under node 0.12.7 (osx 10.10.4) #141

Closed aars closed 8 years ago

aars commented 9 years ago

I'm trying to set up node-workflow-example and/or node-workflow, which both seem to include a pretty old version of dtrace-provider (0.2.8).

node-gyp rebuild fails for this version, but I'm able to install dtrace-provider 0.5.0 without issues, and the latest bunyan without issues as well.

This might not be a node-workflow issue, but I'm lost. Any clues on how to resolve this? What is broken when this doesn't compile/build?

Can I safely update bunyan and dtrace-provider dependencies in package.json to latest? Or is there perhaps a preferred node version I should be using?

Errors are mostly these

In file included from ../dtrace_provider.cc:1:
../dtrace_provider.h:69:44: error: no type named 'Arguments' in namespace 'v8'; did you mean 'v8::internal::Arguments'?
    static v8::Handle<v8::Value> New(const v8::Arguments& args);
                                           ^~~~~~~~~~~~~
                                           v8::internal::Arguments

gyp errors:

fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/DTraceProviderBindings/dtrace_provider.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/aaronh/.nvm/versions/node/v0.12.7/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:269:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1074:12)
gyp ERR! System Darwin 14.4.0
gyp ERR! command "node" "/Users/aaronh/.nvm/versions/node/v0.12.7/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/aaronh/src/node-workflow/node_modules/dtrace-provider
gyp ERR! node -v v0.12.7
gyp ERR! node-gyp -v v2.0.1
gyp ERR! not ok
aars commented 9 years ago

Simply updating bunyan, restify and dtrace-provider to latest results in tests failing.

node test/job-runner.test.js                                                                                 master  ✭
TAP version 13
# setup
ok 1 backend ok
ok 2 factory ok
ok 3 ok wf error
ok 4 OK wf OK
ok 5 Fail wf error
ok 6 Fail wf OK
ok 7 Timeout wf error
ok 8 Timeout wf ok
ok 9 ReQueue wf error
ok 10 ReQueue wf ok
ok 11 Info wf error
ok 12 Info wf ok
# throws on missing opts
ok 13 Expected to throw: TypeError opts (Object) required
# throws on missing opts.runner
ok 14 Expected to throw: TypeError opts.runner (Object) required
# throws on missing opts.backend
ok 15 Expected to throw: TypeError opts.backend (Object) required
# throws on missing opts.job
ok 16 Expected to throw: TypeError opts.job (Object) required
# throws on incorrect opts.sandbox
ok 17 Expected to throw: TypeError opts.sandbox must be an Object
# throws on missing opts.dtrace
ok 18 Expected to throw: TypeError opts.dtrace (Object) required
FATAL ERROR: v8::Object::GetAlignedPointerFromInternalField() Not a Smi
[1]    63187 abort      node test/job-runner.test.js
aars commented 9 years ago

Everything works fine in node v0.10.36 :(

aars commented 9 years ago

Reopened because I would still like to know what the preferred solution is. How should I go about using node-workflow in v0.12.7?

dremekie commented 9 years ago

Hi aars. Were you able to find a way to make this work in 0.12.7?

aars commented 8 years ago

@dremekie No, haven't put in any more effort since.

rmustacc commented 8 years ago

The problem is that the version of dtrace-provider being used doesn't work with the newer version of node.js because node.js does not have a stable ABI for binary addons. The solution would be to bump the dtrace-provider dependency to 0.6.0. We likely need to do similar bumps for restify and bunyan. @kusor can you take care of that?

dandanknight commented 8 years ago

Hi, is this project dead now then? It appears to be unusable with any versions of node past v0.10.x

kusor commented 8 years ago

I'll get it updated to newest version