senecajs / ramanujan Goto Github PK
View Code? Open in Web Editor NEWAn example microservice system using Seneca, based on the example in Chapter 1 of The Tao of Microservices book
Home Page: http://ramanujan.io
License: MIT License
An example microservice system using Seneca, based on the example in Chapter 1 of The Tao of Microservices book
Home Page: http://ramanujan.io
License: MIT License
Is this code production ready?
It would be great if there are steps how to create this and exmplained more... Video tut would help a lot
npm install when I made the error like this:
npm WARN engine [email protected]: wanted: {"node":">=4.0.0"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40","npm":">=2.0.0"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.12.7"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.25","npm":"2.15.6"})
npm WARN engine [email protected]: wanted: {"node":">=0.10.40"} (current: {"node":"0.10.25","npm":"2.15.6"})
[email protected] install /home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/farmhash
node-gyp rebuild
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.25"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/farmhash/.node-gyp"
make: Entering directory /home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/farmhash/build' CXX(target) Release/obj.target/farmhash/src/upstream/farmhash.o CXX(target) Release/obj.target/farmhash/src/bindings.o SOLINK_MODULE(target) Release/obj.target/farmhash.node COPY Release/farmhash.node make: Leaving directory
/home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/farmhash/build'
[email protected] install /home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/msgpack
node-gyp rebuild
gyp WARN EACCES user "root" does not have permission to access the dev dir "/root/.node-gyp/0.10.25"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/msgpack/.node-gyp"
make: Entering directory /home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/msgpack/build' CC(target) Release/obj.target/libmsgpack/deps/msgpack/objectc.o CC(target) Release/obj.target/libmsgpack/deps/msgpack/unpack.o CC(target) Release/obj.target/libmsgpack/deps/msgpack/vrefbuffer.o CC(target) Release/obj.target/libmsgpack/deps/msgpack/zone.o CC(target) Release/obj.target/libmsgpack/deps/msgpack/version.o AR(target) Release/obj.target/deps/msgpack/msgpack.a COPY Release/msgpack.a CXX(target) Release/obj.target/msgpackBinding/src/msgpack.o ../src/msgpack.cc: In function ‘void v8_to_msgpack(v8::Handle<v8::Value>, msgpack_object*, msgpack_zone*, size_t)’: ../src/msgpack.cc:126:93: error: could not convert ‘v8obj’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’ mo->via.str.size = static_cast<uint32_t>(Nan::DecodeBytes(v8obj, Nan::Encoding::UTF8)); ^ ../src/msgpack.cc:129:94: error: could not convert ‘v8obj’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’ Nan::DecodeWrite((char*)mo->via.str.ptr, mo->via.str.size, v8obj, Nan::Encoding::UTF8); ^ ../src/msgpack.cc:136:94: error: could not convert ‘result’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’ mo->via.str.size = static_cast<uint32_t>(Nan::DecodeBytes(result, Nan::Encoding::UTF8)); ^ ../src/msgpack.cc:139:95: error: could not convert ‘result’ from ‘v8::Handle<v8::Value>’ to ‘v8::Local<v8::Value>’ Nan::DecodeWrite((char*)mo->via.str.ptr, mo->via.str.size, result, Nan::Encoding::UTF8); ^ make: *** [Release/obj.target/msgpackBinding/src/msgpack.o] Error 1 make: Leaving directory
/home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/msgpack/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:276:23)
gyp ERR! stack at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:797:12)
gyp ERR! System Linux 3.19.0-59-generic
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/quocdinh/Git/ramanujan/node_modules/sneeze/node_modules/swim/node_modules/msgpack
gyp ERR! node -v v0.10.25
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok
npm ERR! Linux 3.19.0-59-generic
npm ERR! argv "node" "/usr/local/bin/npm" "install"
npm ERR! node v0.10.25
npm ERR! npm v2.15.6
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
npm ERR! This is most likely a problem with the msgpack 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 information on how to open an issue for this project with:
npm ERR! npm bugs msgpack
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!
npm ERR! npm owner ls msgpack
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/quocdinh/Git/ramanujan/npm-debug.log
https://github.com/senecajs/ramanujan/blob/master/fanout/fanout-logic.js#L9-L15
seneca.add('fanout:entry', function(msg, done) {
...
done()
...
this.act('follow:list,kind:followers',{user:entry.user},function(err,userlist){
if(err) return done(err) // done has been called before
I replicated similar code, and tried to send info messages like
this.act('info:entry',entry.data$())
in the post service. But, the services kept on dying with act_not_found error.
So, I tried to find out if the same thing happens in this code base - cloned the project, removed all the services except base, api, entry-store and post and found that the services don't die even though none of the services implement 'info:entry' pattern. Then I came across
var OPTS = (process.env.OPTS || '--seneca.options.debug.undead=true --seneca.options.plugin.mesh.sneeze.silent=1')
in the fuge-config.js and removed it completely, but services were still fine with the message.
I tried matching all the seneca configuration and ended up with very identical code in both my replica and ramanujan, but still my replica failed, while ramanujan was fine with unimplemented messages. Finally, I gave up trying matching code and packages and used
seneca.act({exhausted: true, message: 'not_implemented', default$: {}})
as suggested by senecajs/seneca#219, but it's ugly :)
But I'm still curious about how ramanujan keeps his cool about unimplemented messages. Also please suggest if I should choose to make info messages look like all the other messages in the services like in this project(dunno how!) or go with adding default$:{} for each one of them(a little bit explanation can help).
Thanks 🍻
I'm try to running test into instance for another using seneca-mesh plugin.
But I receive the error message:
Error: seneca: No matching action pattern found for
Please, help me to understand this.
Thx
Just trying to run fuge shell fuge/system.yml
after cloning and installation.
This seems to compile but all services are listed as "stopped":
? fuge> ps
name type status watch tail count
base0 process stopped no yes 0
base1 process stopped no yes 0
front process stopped no yes 0
api process stopped no yes 0
post process stopped no yes 0
entry_store process stopped no yes 0
entry_cache process stopped no yes 0
repl process stopped no yes 0
mine process stopped no yes 0
home process stopped no yes 0
index process stopped no yes 0
search process stopped no yes 0
follow process stopped no yes 0
fanout process stopped no yes 0
timeline0 process stopped no yes 0
timeline1 process stopped no yes 0
timeline_shard process stopped no yes 0
reserve process stopped no yes 0
? fuge>
Then trying start all
leads to starting and terminating with many errors:
running: reserve
running: env "PROXY_HOST=127.0.0.1" "SERVICE_HOST=0.0.0.0" "base0_PORT=10000" "base1_PORT=10001" "front_PORT=10002" "api_PORT=10003" "post_PORT=10004" "entry_store_PORT=10005" "entry_cache_PORT=10006" "repl_PORT=10007" "mine_PORT=10008" "home_PORT=10009" "index_PORT=10010" "search_PORT=10011" "follow_PORT=10012" "fanout_PORT=10013" "timeline0_PORT=10014" "timeline1_PORT=10015" "timeline_shard_PORT=10016" "reserve_PORT=10017" "SERVICE_PORT=20017" bash -c "exec /usr/local/bin/node -r "/Users/zaitsev/.config/yarn/global/node_modules/fuge/fuge.js" reserve-service.js 127.0.0.1 127.0.0.1:39000,127.0.0.1:39001 "
running: __proxy
? fuge> (node:76995) Warning: Possible EventEmitter memory leak detected. 11 finish listeners added. Use emitter.setMaxListeners() to increase limit
(node:76995) Warning: Possible EventEmitter memory leak detected. 11 unpipe listeners added. Use emitter.setMaxListeners() to increase limit
(node:76995) Warning: Possible EventEmitter memory leak detected. 11 drain listeners added. Use emitter.setMaxListeners() to increase limit
(node:76995) Warning: Possible EventEmitter memory leak detected. 11 error listeners added. Use emitter.setMaxListeners() to increase limit
(node:76995) Warning: Possible EventEmitter memory leak detected. 11 close listeners added. Use emitter.setMaxListeners() to increase limit
[post - 77012]: (node:77012) DeprecationWarning: 'root' is deprecated, use 'global'
[entry_cache - 77014]: (node:77014) DeprecationWarning: 'root' is deprecated, use 'global'
[fanout - 77021]: (node:77021) DeprecationWarning: 'root' is deprecated, use 'global'
[base1 - 77009]: (node:77009) DeprecationWarning: 'root' is deprecated, use 'global'
[timeline1 - 77024]: (node:77024) DeprecationWarning: 'root' is deprecated, use 'global'
[repl - 77015]: (node:77015) DeprecationWarning: 'root' is deprecated, use 'global'
[timeline_shard - 77025]: (node:77025) DeprecationWarning: 'root' is deprecated, use 'global'
[follow - 77020]: (node:77020) DeprecationWarning: 'root' is deprecated, use 'global'
[entry_store - 77013]: (node:77013) DeprecationWarning: 'root' is deprecated, use 'global'
[base0 - 77008]: (node:77008) DeprecationWarning: 'root' is deprecated, use 'global'
[timeline0 - 77023]: (node:77023) DeprecationWarning: 'root' is deprecated, use 'global'
[reserve - 77026]: (node:77026) DeprecationWarning: 'root' is deprecated, use 'global'
[index - 77018]: (node:77018) DeprecationWarning: 'root' is deprecated, use 'global'
[front - 77010]: front http://lap254.maths.tcd.ie:8000
process exit [77010]: front
process terminated unexpectedly [77010]: front restarting
running: front
running: env "PROXY_HOST=127.0.0.1" "SERVICE_HOST=0.0.0.0" "base0_PORT=10000" "base1_PORT=10001" "front_PORT=10002" "api_PORT=10003" "post_PORT=10004" "entry_store_PORT=10005" "entry_cache_PORT=10006" "repl_PORT=10007" "mine_PORT=10008" "home_PORT=10009" "index_PORT=10010" "search_PORT=10011" "follow_PORT=10012" "fanout_PORT=10013" "timeline0_PORT=10014" "timeline1_PORT=10015" "timeline_shard_PORT=10016" "reserve_PORT=10017" "SERVICE_PORT=20002" bash -c "exec /usr/local/bin/node -r "/Users/zaitsev/.config/yarn/global/node_modules/fuge/fuge.js" front.js 127.0.0.1 127.0.0.1:39000,127.0.0.1:39001 "
[api - 77011]: (node:77011) DeprecationWarning: 'root' is deprecated, use 'global'
[api - 77011]: api 127.0.0.1 56786
[search - 77019]: (node:77019) DeprecationWarning: 'root' is deprecated, use 'global'
[home - 77017]: (node:77017) DeprecationWarning: 'root' is deprecated, use 'global'
[search - 77019]: search http://127.0.0.1:56787
[mine - 77016]: (node:77016) DeprecationWarning: 'root' is deprecated, use 'global'
[mine - 77016]: mine 127.0.0.1 56789
[home - 77017]: home 127.0.0.1 56788
[front - 77032]: front http://lap254.maths.tcd.ie:8000
process exit [77032]: front
process terminated unexpectedly [77032]: front restarting
running: front
running: env "PROXY_HOST=127.0.0.1" "SERVICE_HOST=0.0.0.0" "base0_PORT=10000" "base1_PORT=10001" "front_PORT=10002" "api_PORT=10003" "post_PORT=10004" "entry_store_PORT=10005" "entry_cache_PORT=10006" "repl_PORT=10007" "mine_PORT=10008" "home_PORT=10009" "index_PORT=10010" "search_PORT=10011" "follow_PORT=10012" "fanout_PORT=10013" "timeline0_PORT=10014" "timeline1_PORT=10015" "timeline_shard_PORT=10016" "reserve_PORT=10017" "SERVICE_PORT=20002" bash -c "exec /usr/local/bin/node -r "/Users/zaitsev/.config/yarn/global/node_modules/fuge/fuge.js" front.js 127.0.0.1 127.0.0.1:39000,127.0.0.1:39001 "
[timeline_shard - 77025]: ERR i8/vl Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].
[base1 - 77009]: ERR hr/f1 Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].
[repl - 77015]: ERR 1w/g4 Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].
[base0 - 77008]: ERR 2s/mf Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].
[timeline_shard - 77025]: ERR ll/3b Error: seneca: Action init:mesh failed: [TIMEOUT].
[reserve - 77026]: ERR 0v/zi Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:3,tag:undefined failed: [TIMEOUT].
[fanout - 77021]: ERR ic/kc Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:3,tag:undefined failed: [TIMEOUT].
[base1 - 77009]: ERR ds/nd Error: seneca: Action init:mesh failed: [TIMEOUT].
[base1 - 77009]: ERR uk/am Error: seneca: Action cmd:listen,role:transport failed: [TIMEOUT].
[base1 - 77009]: jg/base1
[base1 - 77009]:
[base1 - 77009]:
[base1 - 77009]: Seneca Fatal Error
[base1 - 77009]: ==================
[base1 - 77009]:
[base1 - 77009]: Message: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].
[base1 - 77009]:
[base1 - 77009]: Code: act_execute
[base1 - 77009]:
[base1 - 77009]: Details: { message: '[TIMEOUT]',
[base1 - 77009]: pattern: 'name:mesh,plugin:define,role:seneca,seq:2,tag:undefined',
[base1 - 77009]: fn: [Function: plugin_definition],
[base1 - 77009]: cb: [Function: noop],
[base1 - 77009]: instance: 'Seneca/jg/base1',
[base1 - 77009]: 'orig$':
[base1 - 77009]: Error: [TIMEOUT]
[base1 - 77009]: at Object.act_tm [as ontm] (/Users/zaitsev/tests/seneca/ramanujan/node_modules/seneca/seneca.js:1041:46)
[base1 - 77009]: at Timeout.timeout_check [as _onTimeout] (/Users/zaitsev/tests/seneca/ramanujan/node_modules/seneca/node_modules/gate-executor/gate-executor.js:216:16)
[base1 - 77009]: at ontimeout (timers.js:365:14)
[base1 - 77009]: at tryOnTimeout (timers.js:237:5)
[base1 - 77009]: at Timer.listOnTimeout (timers.js:207:5),
[base1 - 77009]: 'message$': '[TIMEOUT]',
[base1 - 77009]: plugin: {} }
[base1 - 77009]:
[base1 - 77009]: Stack:
[base1 - 77009]: at Object.act_tm [as ontm] (/Users/zaitsev/tests/seneca/ramanujan/node_modules/seneca/seneca.js:1041:46)
[base1 - 77009]: at Timeout.timeout_check [as _onTimeout] (/Users/zaitsev/tests/seneca/ramanujan/node_modules/seneca/node_modules/gate-executor/gate-executor.js:216:16)
[base1 - 77009]: at ontimeout (timers.js:365:14)
[base1 - 77009]: at tryOnTimeout (timers.js:237:5)
[base1 - 77009]: at Timer.listOnTimeout (timers.js:207:5)
[base1 - 77009]:
[base1 - 77009]: Instance: Seneca/jg/base1
[base1 - 77009]: ALL ERRORS FATAL: action called with argument fatal$:true (probably a plugin init error, or using a plugin seneca instance)
[base1 - 77009]: at Seneca.handle_result (/Users/zaitsev/tests/seneca/ramanujan/node_modules/seneca/seneca.js:1120:27)
[base1 - 77009]:
[base1 - 77009]: When: 2017-03-23T17:42:03.180Z
[base1 - 77009]:
[base1 - 77009]: Log: {kind:null,plugin:seneca,tag:3.3.0,id:jg/base1,code:act_execute,notice:seneca: Action name:mesh,plugin:define,r
[base1 - 77009]:
[base1 - 77009]: Node:
[base1 - 77009]: { http_parser: '2.7.0', node: '6.9.1', v8: '5.1.281.84', uv: '1.9.1', zlib: '1.2.8', ares: '1.10.1-DEV', icu: '57.1', modules: '48', openssl: '1.0.2j' },
[base1 - 77009]: { debug: false, uv: true, ipv6: true, tls_npn: true, tls_alpn: true, tls_sni: true, tls_ocsp: true, tls: true },
[base1 - 77009]: [ '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 child_process', 'Binding spawn_sync', 'Binding pipe_wrap', 'NativeModule internal/child_process', 'NativeModule string_decoder', 'NativeModule net', 'NativeModule stream', 'NativeModule _stream_readable', 'NativeModule internal/streams/BufferList', 'NativeModule _stream_writable', 'NativeModule _stream_duplex', 'NativeModule _stream_transform', 'NativeModule _stream_passthrough', 'NativeModule internal/net', 'Binding cares_wrap', 'Binding tty_wrap', 'Binding tcp_wrap', 'Binding stream_wrap', 'NativeModule dgram', 'Binding udp_wrap', 'Binding process_wrap', 'NativeModule internal/socket_list', 'NativeModule path', 'NativeModule module', 'NativeModule internal/module', 'NativeModule vm', 'NativeModule fs', 'Binding fs', 'Binding fs_event_wrap', 'NativeModule readline', 'NativeModule internal/readline', 'NativeModule tty', 'Binding signal_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 _stream_wrap', 'Binding js_stream', 'Binding tls_wrap', 'NativeModule _tls_legacy', 'NativeModule dns', 'NativeModule console', 'NativeModule cluster', 'NativeModule internal/cluster' ]
[base1 - 77009]:
[base1 - 77009]: Process:
[base1 - 77009]: pid=77009, arch=x64, platform=darwin,
[base1 - 77009]: path=/usr/local/bin/node,
[base1 - 77009]: argv=[ '/usr/local/bin/node', '/Users/zaitsev/tests/seneca/ramanujan/base/base.js', 'base1', '39001', '127.0.0.1', '127.0.0.1:39000,127.0.0.1:39001' ],
[base1 - 77009]: env={ NVM_RC_VERSION: '', repl_PORT: '10007', TERM_PROGRAM: 'Apple_Terminal', DVM_DIR: '/Users/zaitsev/.dvm', NVM_CD_FLAGS: '-q', TERM: 'xterm-256color', SHELL: '/bin/zsh', CLICOLOR: '1', post_PORT: '10004', TMPDIR: '/var/folders/vt/6y645drx4m3f7tjn2f4rj2lr0000gn/T/', base0_PORT: '10000', Apple_PubSub_Socket_Render: '/private/tmp/com.apple.launchd.FGrcu4gT8u/Render', DOCKER_HOST: 'tcp://192.168.59.103:2376', TERM_PROGRAM_VERSION: '343.7', follow_PORT: '10012', TERM_SESSION_ID: '791D0043-3951-44AA-A949-6F555F7DC710', timeline_shard_PORT: '10016', search_PORT: '10011', index_PORT: '10010', ZSH: '/Users/zaitsev/.oh-my-zsh', GIT_EDITOR: '/Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl -w', USER: 'zaitsev', NVM_DIR: '/Users/zaitsev/.nvm', SERVICE_HOST: '0.0.0.0', SERVICE_PORT: '20001', SSH_AUTH_SOCK: '/private/tmp/com.apple.launchd.MV12yxjKuf/Listeners', entry_cache_PORT: '10006', __CF_USER_TEXT_ENCODING: '0x1F5:0x0:0x0', fanout_PORT: '10013', PAGER: 'less', DOCKER_TLS_VERIFY: '1', LSCOLORS: 'ExFxCxDxBxegedabagacad', timeline1_PORT: '10015', mine_PORT: '10008', PROXY_HOST: '127.0.0.1', PATH: '/Users/zaitsev/mongodb/bin:./node_modules/.bin/:/Users/zaitsev/.npm-global/bin:/Users/zaitsev/bin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/texbin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin', timeline0_PORT: '10014', _: '/usr/bin/env', NVM_NODEJS_ORG_MIRROR: 'https://nodejs.org/dist', front_PORT: '10002', PWD: '/Users/zaitsev/tests/seneca/ramanujan/base', EDITOR: 'subl', LANG: 'en_IE.UTF-8', XPC_FLAGS: '0x0', entry_store_PORT: '10005', XPC_SERVICE_NAME: '0', HOME: '/Users/zaitsev', SHLVL: '2', DOCKER_CERT_PATH: '/Users/zaitsev/.boot2docker/certs/boot2docker-vm', base1_PORT: '10001', home_PORT: '10009', reserve_PORT: '10017', LOGNAME: 'zaitsev', LESS: '-R', LC_CTYPE: 'en_IE.UTF-8', NVM_IOJS_ORG_MIRROR: 'https://iojs.org/dist', api_PORT: '10003', SECURITYSESSIONID: '186a7' }
[base1 - 77009]:
[base1 - 77009]:
[base1 - 77009]:
[base1 - 77009]:
[base1 - 77009]: SENECA TERMINATED at 2017-03-23T17:42:03.444Z. See above for error report.
[base1 - 77009]:
[base1 - 77009]:
process exit [77009]: base1
process terminated unexpectedly [77009]: base1 restarting
The node module 'farmhash' requires node-gyp, which requires python 2.x
Only python 3.x is included in some current LTS distributions (eg. Ubuntu Server 16.04.2 LTS)
Check your environment...
$ python3 -V
...should return the version included in the distribution eg...
Python 3.5.2
However if...
$ python -V
...returns anything other than a version number such as;
The program 'python' can be found in the following packages:
...then...
$ sudo apt-get update
$ sudo apt-get install python
Check your environment again...
$ python -V
...should return...
Python 2.7.12
The steps above will avoid the following error during npm install;
$ sudo npm install
...generates the following error if python is not available;
[email protected] install /home/lfw/projects/dev/senecajs/ramanujan/node_modules/farmhash
node-gyp rebuild
gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
gyp ERR! stack at failNoPython (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:449:14)
gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:353:11
gyp ERR! stack at F (/usr/lib/node_modules/npm/node_modules/which/which.js:69:16)
gyp ERR! stack at E (/usr/lib/node_modules/npm/node_modules/which/which.js:81:29)
gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/which.js:90:16
gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/index.js:44:5
gyp ERR! stack at /usr/lib/node_modules/npm/node_modules/which/node_modules/isexe/access.js:8:5
gyp ERR! stack at FSReqWrap.oncomplete (fs.js:123:15)
gyp ERR! System Linux 4.4.0-77-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/lfw/projects/dev/senecajs/ramanujan/node_modules/farmhash
gyp ERR! node -v v6.10.3
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
[email protected] /home/lfw/projects/dev/senecajs/ramanujan
└── (empty)
npm ERR! Linux 4.4.0-77-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.10.3
npm ERR! npm v3.10.10
npm ERR! code ELIFECYCLE
npm ERR! [email protected] install: node-gyp rebuild
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script 'node-gyp rebuild'.
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 farmhash 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 information on how to open an issue for this project with:
npm ERR! npm bugs farmhash
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls farmhash
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /home/lfw/projects/dev/senecajs/ramanujan/npm-debug.log
npm ERR! code 1
Informal Requirements, Message specification and Service specification links in the readme are broken
HOST: MS Windows 10 Pro
GUEST: Ubuntu 16.04.2 LTS
After executing the following commands on the guest, logged in via SSH from the host;
$ fuge shell fuge/fuge.yml
compiling...
starting shell..
fuge> start all
All services start and appear to be running with the ps command, but after a short time <1 minute, all services begin to fail with similar timeout related errors, e.g.
"Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:3,tag:undefined failed: [TIMEOUT]. "
QUESTION: How can the fuge/fuge.yml be adapted to support this environment?
fuge> [base0 - 2724]: ERR gh/xh Error: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].
[base0 - 2724]: ERR si/2p Error: seneca: Action cmd:listen,role:transport failed: [TIMEOUT].
[base0 - 2724]: ERR zo/qc Error: seneca: Action init:mesh failed: [TIMEOUT].
[base0 - 2724]: p0/base0
[base0 - 2724]:
[base0 - 2724]:
[base0 - 2724]: Seneca Fatal Error
[base0 - 2724]: ==================
[base0 - 2724]:
[base0 - 2724]: Message: seneca: Action name:mesh,plugin:define,role:seneca,seq:2,tag:undefined failed: [TIMEOUT].
[base0 - 2724]:
[base0 - 2724]: Code: act_execute
[base0 - 2724]:
[base0 - 2724]: Details: { message: '[TIMEOUT]',
[base0 - 2724]: pattern: 'name:mesh,plugin:define,role:seneca,seq:2,tag:undefined',
[base0 - 2724]: fn: [Function: plugin_definition],
[base0 - 2724]: cb: [Function: noop],
[base0 - 2724]: instance: 'Seneca/p0/base0',
[base0 - 2724]: 'orig$':
[base0 - 2724]: Error: [TIMEOUT]
[base0 - 2724]: at Object.act_tm [as ontm] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/seneca.js:1041:46)
[base0 - 2724]: at Timeout.timeout_check [as _onTimeout] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/node_modules/gate-executor/gate-executor.js:216:16)
[base0 - 2724]: at ontimeout (timers.js:365:14)
[base0 - 2724]: at tryOnTimeout (timers.js:237:5)
[base0 - 2724]: at Timer.listOnTimeout (timers.js:207:5),
[base0 - 2724]: 'message$': '[TIMEOUT]',
[base0 - 2724]: plugin: {} }
[base0 - 2724]:
[base0 - 2724]: Stack:
[base0 - 2724]: at Object.act_tm [as ontm] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/seneca.js:1041:46)
[base0 - 2724]: at Timeout.timeout_check [as _onTimeout] (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/node_modules/gate-executor/gate-executor.js:216:16)
[base0 - 2724]: at ontimeout (timers.js:365:14)
[base0 - 2724]: at tryOnTimeout (timers.js:237:5)
[base0 - 2724]: at Timer.listOnTimeout (timers.js:207:5)
[base0 - 2724]:
[base0 - 2724]: Instance: Seneca/p0/base0
[base0 - 2724]: ALL ERRORS FATAL: action called with argument fatal$:true (probably a plugin init error, or using a plugin seneca instance)
[base0 - 2724]: at Seneca.handle_result (/home/lfw/projects/dev/senecajs/ramanujan/node_modules/seneca/seneca.js:1120:27)
[base0 - 2724]:
[base0 - 2724]: When: 2017-05-16T13:19:35.369Z
[base0 - 2724]:
[base0 - 2724]: Log: {kind:null,plugin:seneca,tag:3.3.0,id:p0/base0,code:act_execute,notice:seneca: Action name:mesh,plugin:define,r
[base0 - 2724]:
[base0 - 2724]: Node:
[base0 - 2724]: { http_parser: '2.7.0', node: '6.9.0', v8: '5.1.281.84', uv: '1.9.1', zlib: '1.2.8', ares: '1.10.1-DEV', icu: '57.1', modules: '48', openssl: '1.0.2j' },
[base0 - 2724]: { debug: false, uv: true, ipv6: true, tls_npn: true, tls_alpn: true, tls_sni: true, tls_ocsp: true, tls: true },
[base0 - 2724]: [ '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 child_process', 'Binding spawn_sync', 'Binding pipe_wrap', 'NativeModule internal/child_process', 'NativeModule string_decoder', 'NativeModule net', 'NativeModule stream', 'NativeModule _stream_readable', 'NativeModule internal/streams/BufferList', 'NativeModule _stream_writable', 'NativeModule _stream_duplex', 'NativeModule _stream_transform', 'NativeModule _stream_passthrough', 'NativeModule internal/net', 'Binding cares_wrap', 'Binding tty_wrap', 'Binding tcp_wrap', 'Binding stream_wrap', 'NativeModule dgram', 'Binding udp_wrap', 'Binding process_wrap', 'NativeModule internal/socket_list', 'NativeModule path', 'NativeModule module', 'NativeModule internal/module', 'NativeModule vm', 'NativeModule fs', 'Binding fs', 'Binding fs_event_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 _stream_wrap', 'Binding js_stream', 'Binding tls_wrap', 'NativeModule _tls_legacy', 'NativeModule tty', 'NativeModule dns', 'NativeModule console', 'NativeModule cluster', 'NativeModule internal/cluster' ]
[base0 - 2724]:
[base0 - 2724]: Process:
[base0 - 2724]: pid=2724, arch=x64, platform=linux,
[base0 - 2724]: path=/home/lfw/.nvm/versions/node/v6.9.0/bin/node,
[base0 - 2724]: argv=[ '/home/lfw/.nvm/versions/node/v6.9.0/bin/node', '/home/lfw/projects/dev/senecajs/ramanujan/base/base.js' ],
[base0 - 2724]: env={ MANPATH: '/home/lfw/.nvm/versions/node/v6.9.0/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man', XDG_SESSION_ID: '5', NVM_CD_FLAGS: '', TERM: 'xterm-256color', SHELL: '/bin/bash', SSH_CLIENT: '192.168.56.1 59705 22', NVM_PATH: '/home/lfw/.nvm/versions/node/v6.9.0/lib/node', OLDPWD: '/home/lfw', SSH_TTY: '/dev/pts/1', NVM_DIR: '/home/lfw/.nvm', 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:', MAIL: '/var/mail/lfw', PATH: '/home/lfw/bin:/home/lfw/.local/bin:/home/lfw/.nvm/versions/node/v6.9.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin', NVM_NODEJS_ORG_MIRROR: 'https://nodejs.org/dist', PWD: '/home/lfw/projects/dev/senecajs/ramanujan', LANG: 'en_GB.UTF-8', NODE_PATH: '/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript', SHLVL: '1', HOME: '/home/lfw', LANGUAGE: 'en_GB:en', LOGNAME: 'lfw', SSH_CONNECTION: '192.168.56.1 59705 192.168.56.101 22', NVM_BIN: '/home/lfw/.nvm/versions/node/v6.9.0/bin', LESSOPEN: '| /usr/bin/lesspipe %s', NVM_IOJS_ORG_MIRROR: 'https://iojs.org/dist', XDG_RUNTIME_DIR: '/run/user/1000', LESSCLOSE: '/usr/bin/lesspipe %s %s', _: '/home/lfw/.nvm/versions/node/v6.9.0/bin/fuge', BASES: '127.0.0.1:39000,127.0.0.1:39001', HOST: '127.0.0.1', SILENT: 'true', TAG: 'base0', PORT: '39000' }
[base0 - 2724]:
[base0 - 2724]:
[base0 - 2724]:
[base0 - 2724]:
[base0 - 2724]: SENECA TERMINATED at 2017-05-16T13:19:35.529Z. See above for error report.
[base0 - 2724]:
[base0 - 2724]:
[base0] exit - status: crashed duration: 23660
What is this project about :)
Some links, purpose?
so that we can come up with a friendly README :)
I ran every command to start the applications btw for every service I've got this error:
running: set PROXY_HOST=127.0.0.1&&set SERVICE_HOST=0.0.0.0&&set base0_PORT=10000&&set base1_PORT=10001&&set front_PORT=10002&&set api_PORT=10003&&set post_PORT=10004&&set entry_store_PORT=10005&&set entry_cache_PORT=10006&&set repl_PORT=10007&&set mine_PORT=10008&&set home_PORT=10009&&set index_PORT=10010&&set search_PORT=10011&&set follow_PORT=10012&&set fanout_PORT=10013&&set timeline0_PORT=10014&&set timeline1_PORT=10015&&set timeline_shard_PORT=10016&&set reserve_PORT=10017&&set SERVICE_PORT=20014&&
"C:\Program Files\nodejs\node.exe" -r
"...\AppData\Roaming\npm\node_modules\fuge\fuge.js" timeline-service.js 0 127.0.0.1:39000,127.0.0.1:39001 --seneca.options.debug.undead=true --seneca.options.plugin.mesh.sneeze.silent=1
[search - 6376]: module.js:568
[search - 6376]: return process.dlopen(module, path._makeLong(filename));
[search - 6376]: ^
[search - 6376]:
[search - 6376]: Error: %1 It isn't a valid Win32 application.
[search - 6376]: \\?\C:\...\ramanujan\node_modules\farmhash\build\Release\farmhash.node
[search - 6376]: at Error (native)
[search - 6376]: at Object.Module._extensions..node (module.js:568:18)
[search - 6376]: at Module.load (module.js:458:32)
[search - 6376]: at tryModuleLoad (module.js:417:12)
[search - 6376]: at Function.Module._load (module.js:409:3)
[search - 6376]: at Module.require (module.js:468:17)
[search - 6376]: at require (internal/module.js:20:19)
[search - 6376]: at Object.<anonymous> (C:\...\ramanujan\node_modules\farmhash\index.js:4:16)
[search - 6376]: at Module._compile (module.js:541:32)
[search - 6376]: at Object.Module._extensions..js (module.js:550:10)
Just wanted to know if there is any difference on passing eth0 as host vs service_name. I observed that in some services you have used eth0
while in base service you have used base0
and base1
in this file https://github.com/senecajs/ramanujan/blob/master/docker/ramanujan.yml. I am facing timeout issue when passing the service name as host.The services join the mesh network and get started but message act results in a timeout error. Could you throw some light it would help in debugging?
You can also run multiple instances of the same service. This lets you scale to handle load. The underlying seneca-mesh network will automatically round-robin messages between all available services for a given message. Just start the service again:
fuge> start search
And is you now run the ps command in fuge, you'll see the count is 2 instances.
This isn't working for me, it errors as follows:
fuge> start search
starting: search [node search-service.js]
container already running: search
ps shows only one search service running accordingly. Am I missing a flag or a similar issue?
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.