tableflip / guvnor

A node process manager that isn't spanners all the way down
MIT License
430 stars 37 forks source link

bs-web errors with "No component with name mdns has been registered" #30

Closed jzumbrun closed 9 years ago

jzumbrun commented 9 years ago

$ bs-web

Uncaught error Error: No component with name mdns has been registered
    at Container._getDependency (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Container.js:224:24)
    at null.<anonymous> (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Dependency.js:104:32)
    at Array.forEach (native)
    at Dependency._testForCircularDependencies (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Dependency.js:99:16)
    at null.<anonymous> (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Dependency.js:17:10)
    at processImmediate [as _immediateCallback] (timers.js:354:15)

/usr/local/lib/node_modules/process-boss/lib/web/BossWeb.js:12
    throw error
          ^
Error: No component with name mdns has been registered
    at Container._getDependency (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Container.js:224:24)
    at null.<anonymous> (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Dependency.js:104:32)
    at Array.forEach (native)
    at Dependency._testForCircularDependencies (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Dependency.js:99:16)
    at null.<anonymous> (/usr/local/lib/node_modules/process-boss/node_modules/wantsit/lib/Dependency.js:17:10)
    at processImmediate [as _immediateCallback] (timers.js:354:15)
$ boss --version
2.5.2
$ node -v
v0.10.36
jzumbrun commented 9 years ago

Found this during re-installation


> boss-mdns@2.2.4 install /home/jon/Projects/pickupgamer/node_modules/process-boss/node_modules/boss-mdns
> node-gyp rebuild

make: Entering directory `/home/jon/Projects/pickupgamer/node_modules/process-boss/node_modules/boss-mdns/build'
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_sd.o
In file included from ../src/dns_sd.cpp:1:0:
../src/mdns.hpp:32:20: fatal error: dns_sd.h: No such file or directory
 #include <dns_sd.h>
                    ^
compilation terminated.
make: *** [Release/obj.target/dns_sd_bindings/src/dns_sd.o] Error 1
make: Leaving directory `/home/jon/Projects/pickupgamer/node_modules/process-boss/node_modules/boss-mdns/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 3.13.0-44-generic
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/jon/Projects/pickupgamer/node_modules/process-boss/node_modules/boss-mdns
gyp ERR! node -v v0.10.36
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok 
npm WARN optional dep failed, continuing boss-mdns@2.2.4
jzumbrun commented 9 years ago

Looks like it is an issue with mdns module itself? I tried to install mdns globally and got the same error.

$ sudo npm install mdns -g
\
> mdns@2.2.4 install /usr/local/lib/node_modules/mdns
> node-gyp rebuild

make: Entering directory `/usr/local/lib/node_modules/mdns/build'
  CXX(target) Release/obj.target/dns_sd_bindings/src/dns_sd.o
In file included from ../src/dns_sd.cpp:1:0:
../src/mdns.hpp:32:20: fatal error: dns_sd.h: No such file or directory
 #include <dns_sd.h>
                    ^
compilation terminated.
make: *** [Release/obj.target/dns_sd_bindings/src/dns_sd.o] Error 1
make: Leaving directory `/usr/local/lib/node_modules/mdns/build'
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:820:12)
gyp ERR! System Linux 3.13.0-44-generic
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/mdns
gyp ERR! node -v v0.10.36
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok 

npm ERR! mdns@2.2.4 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the mdns@2.2.4 install script.
npm ERR! This is most likely a problem with the mdns package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls mdns
npm ERR! There is likely additional logging output above.
npm ERR! System Linux 3.13.0-44-generic
npm ERR! command "/usr/local/bin/node" "/usr/local/bin/npm" "install" "mdns" "-g"
npm ERR! cwd /home/jon/Projects/pickupgamer
npm ERR! node -v v0.10.36
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0
jzumbrun commented 9 years ago

Ok got it. It seem mdns requires libavahi-compat-libdnssd-dev to be install first. For ubuntu 14.04 I ran sudo apt-get install libavahi-compat-libdnssd-dev and uninstalled proccess-boss then re installed and now it works.

achingbrain commented 9 years ago

This should be an optional dependency. I mean, it is in the package.json but boss should handle it being missing at runtime.

I guess the annoying thing is that (as you found out) if you install boss without avahi installed, then install avahi, you have reinstall boss as it compiles the native module at install time. Not sure if we can do anything about that.

Reopening as a reminder to self to handle the missing component more gracefully.

achingbrain commented 9 years ago

This should now not prevent the web interface from starting up in boss > 2.5.3