senecajs / ramanujan

An example microservice system using Seneca, based on the example in Chapter 1 of The Tao of Microservices book
http://ramanujan.io
MIT License
197 stars 42 forks source link

Fuge - start all - services missing execution statement #28

Open TomerG2 opened 7 years ago

TomerG2 commented 7 years ago

I'm getting the "missing execution statement" for all services (master branch, last update from 26/3/17 20:05). Is anyone else getting this?

P.s fuge npms.io stats look a bit dodgy, could something like pm2 replace it? Or is it missing a core feature that fuge offers

lfurzewaddock commented 7 years ago

Same here with a fresh install inside an Oracle VM VirtualBox running on MS Win 10 Pro

Output;

? fuge> start all running: fuge_global warning: fuge_global not started, missing execute statement running: base0 warning: base0 not started, missing execute statement running: base1 warning: base1 not started, missing execute statement running: front warning: front not started, missing execute statement running: api warning: api not started, missing execute statement running: post warning: post not started, missing execute statement running: entry_store warning: entry_store not started, missing execute statement running: entry_cache warning: entry_cache not started, missing execute statement running: repl warning: repl not started, missing execute statement running: mine warning: mine not started, missing execute statement running: home warning: home not started, missing execute statement running: index warning: index not started, missing execute statement running: search warning: search not started, missing execute statement running: follow warning: follow not started, missing execute statement running: fanout warning: fanout not started, missing execute statement running: timeline0 warning: timeline0 not started, missing execute statement running: timeline1 warning: timeline1 not started, missing execute statement running: timeline_shard warning: timeline_shard not started, missing execute statement running: reserve warning: reserve not started, missing execute statement running: __proxy

? fuge> ps name type status watch tail count fuge_global process stopped no no 0 base0 process stopped no no 0 base1 process stopped no no 0 front process stopped no no 0 api process stopped no no 0 post process stopped no no 0 entry_store process stopped no no 0 entry_cache process stopped no no 0 repl process stopped no no 0 mine process stopped no no 0 home process stopped no no 0 index process stopped no no 0 search process stopped no no 0 follow process stopped no no 0 fanout process stopped no no 0 timeline0 process stopped no no 0 timeline1 process stopped no no 0 timeline_shard process stopped no no 0 reserve process stopped no no 0

lfurzewaddock commented 7 years ago

Have also tried starting it using ./start.sh

After several minutes, errors start repeating, reporting each service is timing out (sample of 1st error below);

lfw@HP-XW8600-Ubuntu-Server-Dev:~/projects/dev/senecajs/ramanujan$` (node:6578) DeprecationWarning: 'root' is deprecated, use 'global' (node:6598) DeprecationWarning: 'root' is deprecated, use 'global' ERR 3i/yr Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT]. ERR r5/av Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT]. (node:6662) DeprecationWarning: 'root' is deprecated, use 'global' (node:6717) DeprecationWarning: 'root' is deprecated, use 'global' (node:6953) DeprecationWarning: 'root' is deprecated, use 'global' (node:6679) DeprecationWarning: 'root' is deprecated, use 'global' (node:6695) DeprecationWarning: 'root' is deprecated, use 'global' ERR 5n/n0 Error: seneca: Action init:mesh failed: [TIMEOUT]. ERR um/3k Error: seneca: Action cmd:listen,role:transport failed: [TIMEOUT]. ERR al/7d Error: seneca: Action init:mesh failed: [TIMEOUT]. (node:6857) DeprecationWarning: 'root' is deprecated, use 'global'

Seneca Fatal Error

Message: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].

Code: act_execute

Details: { message: '[TIMEOUT]', pattern: 'name:mesh,plugin:define,role:seneca,seq:2,tag:undefined', fn: [Function: plugin_definition], cb: [Function: noop], instance: 'Seneca/gc/base0', 'orig$': Error: [TIMEOUT] at Object.act_tm [as ontm] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/seneca.js:1041:46) at Timeout.timeout_check [as _onTimeout] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/node_modules/gate-executor/gate-executor.js:216:16) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5), 'message$': '[TIMEOUT]', plugin: {} }

Stack: at Object.act_tm [as ontm] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/seneca.js:1041:46) at Timeout.timeout_check [as _onTimeout] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/node_modules/gate-executor/gate-executor.js:216:16) at ontimeout (timers.js:386:14) at tryOnTimeout (timers.js:250:5) at Timer.listOnTimeout (timers.js:214:5)

Instance: Seneca/gc/base0 ALL ERRORS FATAL: action called with argument fatal$:true (probably a plugin init error, or using a plugin seneca instance) at Seneca.handle_result (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/seneca.js:1120:27)

When: 2017-05-08T19:36:41.270Z

Log: {kind:null,plugin:seneca,tag:3.3.0,id:gc/base0,code:act_execute,notice:seneca: Action name:mesh,plugin:define,r

Node: { http_parser: '2.7.0', node: '6.10.3', v8: '5.1.281.101', uv: '1.9.1', zlib: '1.2.11', ares: '1.10.1-DEV', icu: '56.1', modules: '48', openssl: '1.0.2k' }, { debug: false, uv: true, ipv6: true, tls_npn: true, tls_alpn: true, tls_sni: true, tls_ocsp: true, tls: true }, [ 'Binding contextify', 'Binding natives', 'NativeModule events', 'NativeModule util', 'Binding uv', 'NativeModule buffer', 'Binding buffer', 'Binding util', 'NativeModule internal/util', 'NativeModule timers', 'Binding timer_wrap', 'NativeModule internal/linkedlist', 'NativeModule assert', 'NativeModule internal/process', 'Binding config', 'NativeModule internal/process/warning', 'NativeModule internal/process/next_tick', 'NativeModule internal/process/promises', 'NativeModule internal/process/stdio', 'Binding constants', 'NativeModule path', 'NativeModule module', 'NativeModule internal/module', 'NativeModule vm', 'NativeModule fs', 'Binding fs', 'NativeModule stream', 'NativeModule internal/streams/legacy', 'NativeModule _stream_readable', 'NativeModule internal/streams/BufferList', 'NativeModule _stream_writable', 'NativeModule _stream_duplex', 'NativeModule _stream_transform', 'NativeModule _stream_passthrough', 'Binding fs_event_wrap', 'NativeModule net', 'NativeModule internal/net', 'Binding cares_wrap', 'Binding tty_wrap', 'Binding tcp_wrap', 'Binding pipe_wrap', 'Binding stream_wrap', 'NativeModule os', 'Binding os', 'NativeModule http', 'NativeModule _http_incoming', 'NativeModule _http_common', 'Binding http_parser', 'NativeModule internal/freelist', 'NativeModule _http_outgoing', 'NativeModule _http_server', 'NativeModule _http_agent', 'NativeModule _http_client', 'NativeModule url', 'Binding icu', 'NativeModule querystring', 'NativeModule https', 'NativeModule tls', 'Binding crypto', 'NativeModule _tls_common', 'NativeModule _tls_wrap', 'NativeModule crypto', 'NativeModule internal/streams/lazy_transform', 'NativeModule string_decoder', 'NativeModule _stream_wrap', 'Binding js_stream', 'Binding tls_wrap', 'NativeModule _tls_legacy', 'NativeModule tty', 'Binding signal_wrap', 'NativeModule dgram', 'Binding udp_wrap', 'NativeModule dns', 'NativeModule console' ]

Process: pid=6578, arch=x64, platform=linux, path=/usr/bin/nodejs, argv=[ '/usr/bin/nodejs', '/home/lfw/projects/dev/senecajs/ramanujan/base/base.js', 'base0', '39000', '127.0.0.1', '127.0.0.1:39000,127.0.0.1:39001' ], env={ XDG_SESSION_ID: '1', SHELL: '/bin/bash', TERM: 'xterm-256color', SSH_CLIENT: '192.168.56.1 61568 22', SSH_TTY: '/dev/pts/0', USER: 'lfw', LS_COLORS: 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:.tar=01;31:.tgz=01;31:.arc=01;31:.arj=01;31:.taz=01;31:.lha=01;31:.lz4=01;31:.lzh=01;31:.lzma=01;31:.tlz=01;31:.txz=01;31:.tzo=01;31:.t7z=01;31:.zip=01;31:.z=01;31:.Z=01;31:.dz=01;31:.gz=01;31:.lrz=01;31:.lz=01;31:.lzo=01;31:.xz=01;31:.bz2=01;31:.bz=01;31:.tbz=01;31:.tbz2=01;31:.tz=01;31:.deb=01;31:.rpm=01;31:.jar=01;31:.war=01;31:.ear=01;31:.sar=01;31:.rar=01;31:.alz=01;31:.ace=01;31:.zoo=01;31:.cpio=01;31:.7z=01;31:.rz=01;31:.cab=01;31:.jpg=01;35:.jpeg=01;35:.gif=01;35:.bmp=01;35:.pbm=01;35:.pgm=01;35:.ppm=01;35:.tga=01;35:.xbm=01;35:.xpm=01;35:.tif=01;35:.tiff=01;35:.png=01;35:.svg=01;35:.svgz=01;35:.mng=01;35:.pcx=01;35:.mov=01;35:.mpg=01;35:.mpeg=01;35:.m2v=01;35:.mkv=01;35:.webm=01;35:.ogm=01;35:.mp4=01;35:.m4v=01;35:.mp4v=01;35:.vob=01;35:.qt=01;35:.nuv=01;35:.wmv=01;35:.asf=01;35:.rm=01;35:.rmvb=01;35:.flc=01;35:.avi=01;35:.fli=01;35:.flv=01;35:.gl=01;35:.dl=01;35:.xcf=01;35:.xwd=01;35:.yuv=01;35:.cgm=01;35:.emf=01;35:.ogv=01;35:.ogx=01;35:.aac=00;36:.au=00;36:.flac=00;36:.m4a=00;36:.mid=00;36:.midi=00;36:.mka=00;36:.mp3=00;36:.mpc=00;36:.ogg=00;36:.ra=00;36:.wav=00;36:.oga=00;36:.opus=00;36:.spx=00;36:.xspf=00;36:', PATH: '/home/lfw/bin:/home/lfw/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', MAIL: '/var/mail/lfw', PWD: '/home/lfw/projects/dev/senecajs/ramanujan', LANG: 'en_GB.UTF-8', NODE_PATH: '/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript', HOME: '/home/lfw', SHLVL: '2', LANGUAGE: 'en_GB:en', LOGNAME: 'lfw', SSH_CONNECTION: '192.168.56.1 61568 192.168.56.101 22', LESSOPEN: '| /usr/bin/lesspipe %s', XDG_RUNTIMEDIR: '/run/user/1000', LESSCLOSE: '/usr/bin/lesspipe %s %s', : '/usr/bin/node' }

SENECA TERMINATED (on timeout) at `2017-05-08T19:37:13.238Z.

lfurzewaddock commented 7 years ago

@TomerG2 I believe the beta version of fuge is required since pull #25

$ npm install -g fuge@beta

However, after fuge v0.8.1 proxy support was dropped, which means if you choose to use Docker containers, you will need to run native Docker on Mac/Windows, not Oracle VM VirtualBox. Unfortunately, to run native Docker on Mac/Windows the CPU must support both virtualisation and SLAT (aka EPT).

See apparatus/fuge pull request #139 Link to Docker Native system requirements

greggstelmach commented 7 years ago

By installing the fuge@beta I was able to get past the "missing execute statement" errors and ps showed all were running, but then I get this:

[base1 - 4176]: Seneca Fatal Error
[base1 - 4176]: ==================
[base1 - 4176]:
[base1 - 4176]: Message: seneca: use-plugin: Could not load plugin mesh defined in seneca-mesh due to error: %1 is not a valid Win32 application.
[base1 - 4176]: \\?\C:\gitrepos\ramanujan\node_modules\farmhash\build\Release\farmhash.node.
[base1 - 4176]:
[base1 - 4176]: Code: plugin_load_failed
ggn06awu commented 7 years ago

@greggstelmach see https://github.com/senecajs/seneca-mesh/issues/62

Installing the beta version of Fuge solved the issues for me on a clean 16.04 Ubuntu, thanks @lfurzewaddock!