emqx / emqx-rel Goto Github PK
View Code? Open in Web Editor NEWRelease Project for EMQX Broker prior to 4.3. Newer releases are built here: https://github.com/emqx/emqx
Home Page: https://www.emqx.com
License: Apache License 2.0
Release Project for EMQX Broker prior to 4.3. Newer releases are built here: https://github.com/emqx/emqx
Home Page: https://www.emqx.com
License: Apache License 2.0
Erlang OTP: 19.3
getting this error when running "make":
make[2]: Nothing to be done for `all'.
mix local.hex --force
make[1]: mix: No such file or directory
make[1]: *** [all] Error 1
make: *** [deps] Error 2
getting this when running "make rel"
===> Application metadata exists but version is not available: /Users/liam/Documents/dev/myapp/erlang/emq-relx/deps/emq_elixir_plugin/elixir/lib/mix/test/fixtures/archive
I am building release v2.0.7 using docker,
The emq-relx Make recipe has started to fail, with the error:
Dependency emq_mod_retainer is specified as a dependency but is not reachable by the system.
I see a in a recent commit emqx/emqx-retainer@1e3063a that emq_mod_retainer project has been renamed to emq_retainer
Would this be causing the build to fail, is there any way to work around this? (without waiting on a release)
["rpcterms", Module, Function, ArgsAsString] should be
["rpcterms", Module, Function | ArgsAsString]
DEPEND esockd.d
ERLC esockd.erl esockd_acceptor.erl esockd_acceptor_sup.erl esockd_access.erl esockd_app.erl esockd_cidr.erl esockd_connection.erl esockd_connection_sup.erl esockd_gen.erl esockd_keepalive.erl esockd_listener.erl esockd_listener_sup.erl esockd_net.erl esockd_ratelimit.erl esockd_server.erl esockd_sup.erl esockd_transport.erl esockd_udp.erl
src/esockd_cidr.erl:59: syntax error before:
src/esockd_cidr.erl:63: syntax error before:
src/esockd_cidr.erl:54: function parse_addr/1 undefined
src/esockd_cidr.erl:55: function parse_cidr/3 undefined
src/esockd_cidr.erl:128: Warning: function start_mask/2 is unused
src/esockd_cidr.erl:136: Warning: function end_mask/2 is unused
src/esockd_cidr.erl:158: Warning: function bmask/2 is unused
src/esockd_cidr.erl:163: Warning: function calc_end_address/2 is unused
src/esockd_cidr.erl:166: Warning: function bor_with_mask/2 is unused
src/esockd_cidr.erl:171: Warning: function band_with_mask/2 is unused
src/esockd_cidr.erl:176: Warning: function bit_count/1 is unused
make[2]: *** [ebin/esockd.app] Error 1
make[1]: *** [app] Error 2
make[1]: Leaving directory `/root/emqttd-2.0.6/deps/esockd'
make: *** [deps] Error 2
emq compiled successfully from the source code and erl/opt proper versions installed on CentOS 6.8.
Same issue is seen when executing on Mac 10.12.6
./bin/emqttd console
init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})
Crash dump is being written to: erl_crash.dump...done
emqttd (master) $ erl
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Please suggest
Windows 7
emq-relx-2.3.10
Msys2
Erlang/OTP 21.0
After building on Msys2, when I tried to run _./rel/emqttd/bin/emqttd console, I got following errors:
=CRASH REPORT==== 4-Jul-2018::16:33:16.352000 ===
crasher:
initial call: lager_handler_watcher:init/1
pid: <0.125.0>
registered_name: []
exception exit: noproc
in function gen:do_for_proc/2 (gen.erl, line 228)
in call from gen_event:rpc/2 (gen_event.erl, line 239)
in call from lager_handler_watcher:install_handler2/3 (src/lager_handler_watcher.erl, line 117)
in call from lager_handler_watcher:init/1 (src/lager_handler_watcher.erl, line 51)
in call from gen_server:init_it/2 (gen_server.erl, line 374)
in call from gen_server:init_it/6 (gen_server.erl, line 342)
ancestors: [lager_handler_watcher_sup,lager_sup,<0.113.0>]
message_queue_len: 0
messages: []
links: [<0.116.0>]
dictionary: []
trap_exit: false
status: running
heap_size: 610
stack_size: 27
reductions: 234
neighbours:
=CRASH REPORT==== 4-Jul-2018::16:33:18.333000 ===
crasher:
initial call: esockd_listener:init/1
pid: <0.367.0>
registered_name: []
exception error: bad argument
in function apply/3
called as apply({gen_logger,error_logger_logger,2},error,[])
in call from esockd_listener:init/1 (src/esockd_listener.erl, line 97)
in call from gen_server:init_it/2 (gen_server.erl, line 374)
in call from gen_server:init_it/6 (gen_server.erl, line 342)
ancestors: [<0.364.0>,esockd_sup,<0.145.0>]
message_queue_len: 0
messages: []
links: [<0.364.0>]
dictionary: []
trap_exit: true
status: running
heap_size: 610
stack_size: 27
reductions: 1164
neighbours:
16:33:18.366 [error] Autocluster exception: {badmatch,{error,{{'EXIT',{{badmatch,{error,{{badarg,[{erlang,apply,[{gen_logger,error_logger_logger,2},error,[]],[]},{esockd_listener,init,1,[{file,"src/esockd_listener.erl"},{line,97}]},{gen_server,init_it,2,[{file,"gen_server.erl"},{line,374}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]},{child,undefined,listener,{esockd_listener,start_link,['mqtt:tcp',{{0,0,0,0},1883},[{connopts,[]},{sockopts,[{send_timeout_close,true},{send_timeout,15000},binary,{packet,raw},{reuseaddr,true},{backlog,1024},{nodelay,true}]},{acceptors,16},{max_clients,102400},{access,[{allow,all}]}],<0.366.0>,{gen_logger,error_logger_logger,2}]},transient,4294967295,worker,[esockd_listener]}}}},[{esockd_listener_sup,start_link,4,[{file,"src/esockd_listener_sup.erl"},{line,62}]},{supervisor,do_start_child_i,3,[{file,"supervisor.erl"},{line,379}]},{supervisor,do_start_child,2,[{file,"supervisor.erl"},{line,365}]},{supervisor,handle_start_child,2,[{file,"supervisor.erl"},{line,671}]},{supervisor,handle_call,3,[{file,"supervisor.erl"},{line,420}]},{gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,661}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,690}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]}},{child,undefined,{listener_sup,{'mqtt:tcp',{{0,0,0,0},1883}}},{esockd_listener_sup,start_link,['mqtt:tcp',{{0,0,0,0},1883},[{connopts,[]},{sockopts,[{send_timeout_close,true},{send_timeout,15000},binary,{packet,raw},{reuseaddr,true},{backlog,1024},{nodelay,true}]},{acceptors,16},{max_clients,102400},{access,[{allow,all}]}],{emqttd_client,start_link,[[{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,1024},{max_packet_size,65536},{keepalive_backoff,0.75}]]}]},transient,infinity,supervisor,[esockd_listener_sup]}}}}
Which causes most of the functions to not work.
What have I done wrong, or it's a problem with relx 2.3.10?
Does have any scheme to support dynamic blacklists based on IP or MQTT client IDs?
./rebar compile
==> getopt (compile)
ERROR: OTP release 20 does not match required regex R16|17|18|19
ERROR: compile failed while processing /home/liuchong/work/emqttd/deps/getopt: rebar_abort
I want to develop some function with emqx, but I do not known how to debug emqx ? Thanks.
Hi
I try to build emq from source in docker but failed.
env:
EMQ:2.3.11
Erlang/OTP : install from rabbitmq/erlang-rpm
erl:Erlang/OTP 21 [erts-10.1.1] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe]
os:centos7
output:
make[1]: Leaving directory `/emqttd/deps/emq_auth_jwt'
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/emqttd/deps
/usr/lib64/erlang/lib
/emqttd/apps
===> Failed to solve release:
Dependency observer is specified as a dependency but is not reachable by the system.
https://github.com/emqtt/emq-relx/blob/master/vars.config#L17 :
{runner_bin_dir, "$RUNNER_ROOT_DIR/bin/"} should be {runner_bin_dir, "$RUNNER_ROOT_DIR/bin"}.
the last "/" is needless, otherwise,
https://github.com/emqtt/emq-relx/blob/master/bin/emqttd#L124 and https://github.com/emqtt/emq-relx/blob/master/bin/emqttd#L266 will be wrong.
REF: emqx/emqx-sn#58
Build on ARM Debian failing with following issue from emq_sn:
make[1]: Entering directory '/home/pi/emq-relx/deps/emq_sn'
DEPEND emq_sn.d
ERLC emq_sn_app.erl emq_sn_asleep_timer.erl emq_sn_broadcast.erl emq_sn_config.erl emq_sn_gateway.erl emq_sn_gateway_sup.erl emq_sn_message.erl emq_sn_normal_topics.erl emq_sn_predefined_topics.erl emq_sn_sup.erl emq_sn_topic_manager.erl
src/emq_sn_gateway.erl:592: undefined macro 'SN_RC_MQTT_FAILURE'
src/emq_sn_gateway.erl:810: function transform/2 undefined
src/emq_sn_gateway.erl:598: Warning: function send_publish/8 is unused
../../erlang.mk:1174: recipe for target 'ebin/emq_sn.app' failed
make[2]: *** [ebin/emq_sn.app] Error 1
../../erlang.mk:992: recipe for target 'app' failed
make[1]: *** [app] Error 2
make[1]: Leaving directory '/home/pi/emq-relx/deps/emq_sn'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2
make[3]: Entering directory /opt/emqttd-relx/deps/bson' DEPEND bson.d ERLC bson.erl bson_binary.erl bson_schema.erl src/bson_binary.erl:55: illegal use of variable 'Name' in map make[4]: *** [ebin/bson.app] Error 1 make[3]: *** [app] Error 2 make[3]: Leaving directory
/opt/emqttd-relx/deps/bson'
make[2]: *** [deps] Error 2
make[2]: Leaving directory /opt/emqttd-relx/deps/mongodb' make[1]: *** [deps] Error 2 make[1]: Leaving directory
/opt/emqttd-relx/deps/emq_auth_mongo'
make: *** [deps] Error 2
I keep getting this message when building emq-relx on Ubuntu 16.04 LTS with Erlang OTP 19.
Anything I'm missing?
when i update emqttd to emq2.0, I did not change the configurations, but when i use lager:error, it prints nothing. (tested in ubuntu14.04)
Then I change the level to info:
{lager, [ {colored, true}, {async_threshold, 5000}, {error_logger_redirect, false}, {crash_log, "log/emqttd_crash.log"}, {handlers, [ {lager_console_backend, info}, %%NOTICE: Level >= error %%{lager_emqtt_backend, error}, {lager_file_backend, [ {formatter_config, [time, " ", pid, " [",severity,"] ", message, "\n"]}, {file, "log/emqttd_error.log"}, {level, info}, {size, 104857600}, {date, "$D0"}, {count, 30} ]} ]} ]},
it also prints nothing.
emqttd-relx is being used to make a build of the broker. It seems there is no instruction how to add new plugin to emqttd-relx and build it. Can someone help?
I need to understand how the persistent conf works as defined in the emq.conf.
When my subscriber client is disconnected from the n/w (due to any failure), the msgs from the publisher are reported dropped by the EMQ broker. I require these msgs to be delivered to the subscriber once it comes back. Is there any other configuration which is needed to be taken care in conjunction.
/*
mqtt.mqueue.type = simple
mqtt.mqueue.max_length = 0
mqtt.mqueue.low_watermark = 20%
mqtt.mqueue.high_watermark = 60%
mqtt.mqueue.store_qos0 = true
*/
master branch build failed in ubuntu 18.04.
==> cuttlefish (compile)
Compiled src/cuttlefish_duration_parse.peg
Compiled src/conf_parse.peg
Compiled src/cuttlefish_vmargs.erl
Compiled src/cuttlefish_duration.erl
Compiled src/cuttlefish_enum.erl
Compiled src/cuttlefish_translation.erl
Compiled src/cuttlefish_validator.erl
src/cuttlefish_unit.erl:3: can't find include lib "eunit/include/eunit.hrl"
src/cuttlefish_unit.erl:72: undefined macro 'assertEqual/2'
src/cuttlefish_unit.erl:96: undefined macro 'assertMatch/2'
src/cuttlefish_unit.erl:101: undefined macro 'assertMatch/2'
src/cuttlefish_unit.erl:106: function assert_error_in_phase/2 undefined
src/cuttlefish_unit.erl:118: function assert_error_in_phase/2 undefined
src/cuttlefish_unit.erl:124: function assert_error/1 undefined
src/cuttlefish_unit.erl:4: Warning: export_all flag enabled - all functions will be exported
ERROR: compile failed while processing /home/kevin/Downloads/emq-relx-2.3.7/deps/cuttlefish: rebar_abort
Makefile:17: recipe for target 'compile' failed
make[2]: *** [compile] Error 1
make[2]: Leaving directory '/home/kevin/Downloads/emq-relx-2.3.7/deps/cuttlefish'
../../erlang.mk:312: recipe for target 'deps' failed
make[1]: *** [deps] Error 2
make[1]: Leaving directory '/home/kevin/Downloads/emq-relx-2.3.7/deps/emqttd'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2
I managed to compile and install Erlang 21.1 on Armbian running on an H6 SoC (arm64).
Following the steps to compile emqx, I get the following error:
cloning into 'neotoma'...
==> getopt (get-deps)
==> neotoma (get-deps)
./rebar compile
==> getopt (compile)
=ERROR REPORT==== 13-Nov-2018::23:59:19.277357 ===
beam/beam_load.c(1878): Error loading module compile:
This BEAM file was compiled for a later version of the run-time system than 21.
To fix this, please recompile this module with an 21 compiler.
(Use of opcode 164; this emulator supports only up to 163.)
=ERROR REPORT==== 13-Nov-2018::23:59:19.277391 ===
Loading of /usr/local/lib/erlang/lib/compiler-7.2.6/ebin/compile.beam failed: badfile
unexpected error compiling src/getopt.erl
{'EXIT',{undef,[{compile,file,
["src/getopt.erl",
[{outdir,"ebin"},
debug_info,warn_unused_vars,warn_export_all,
warn_shadow_vars,warn_unused_import,
warn_unused_function,warn_bif_clash,
warn_unused_record,warn_deprecated_function,
warn_obsolete_guard,strict_validation,
warn_export_vars,warn_exported_vars,
warn_missing_spec,warn_untyped_record,debug_info,
{i,"include"},
return]],
[]},
{rebar_erlc_compiler,internal_erl_compile,4,[]},
{rebar_base_compiler,compile,3,[]},
{rebar_base_compiler,compile_worker,3,[]}]}}
ERROR: compile failed while processing /home/masual/emq/emqx-rel/deps/getopt: rebar_abort
Makefile:17: recipe for target 'compile' failed
make[2]: *** [compile] Error 1
make[2]: Leaving directory '/home/masual/emq/emqx-rel/deps/cuttlefish'
../../erlang.mk:312: recipe for target 'deps' failed
make[1]: *** [deps] Error 2
make[1]: Leaving directory '/home/masual/emq/emqx-rel/deps/emqx'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2
For the error I understand that some modules are built to be compiled with Erlang OTP 22. I also tryed installing OTP 22 but the Makefile checks that the version should be 21 and stops the compilation too.
The output of erl is:
$ erl
Erlang/OTP 21 [erts-10.1] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1]
Eshell V10.1 (abort with ^G)
1>
Any help will be appreciated.
For instance I could not find where asn1
is used. Trimming down the list will result in a smaller release size.
I am trying to upgrade from v2.1.2 to v2.2.0
Note I cannot go to v2.3.x as I need to use the stable version of emq.
I am building within docker,
I have a custom build which clones emq-relx
at the release tag then runs Make
to build the release..
I seem to be experiencing the bug referenced in emqx/emqx#1389
Would that be possible?
i.e. I am getting
terminated with reason: no try clause matching ok in emqttd_client:'-send_fun/2-fun-2-'/4 line 142
I see the fix was to pin esockd to v5.1
dep_esockd = git https://github.com/emqtt/esockd v5.1
Maybe this wasn't done on the v2.2.x release perhaps?
Every time trying connect via an MQTT client, Server responds with error, disconnecting the client.
Running on:
Version 2.3.1 - Mac OSX sierra 10.12.6 (Erlang/OTP 19 [erts-8.3])
Error:
`
gen_server <0.1453.0> terminated with reason: no try clause matching ok in emqttd_client:'-send_fun/2-fun-2-'/4 line 142
2017-12-07 13:27:21.251 [error] <0.1390.0> Supervisor 'esockd_connection_sup - <0.1390.0>' had child connection started with emqttd_client:start_link([{max_publish_rate,0},{client_idle_timeout,30000},{client_enable_stats,false},{max_clientid_len,...},...]) at <0.1463.0> exit with reason no try clause matching ok in emqttd_client:'-send_fun/2-fun-2-'/4 line 142 in context connection_crashed
`
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/root/emqx/deps
/usr/local/lib/erlang/lib
/root/emqx/apps
===> Resolved emqx-3.0
===> Including Erts from /usr/local/lib/erlang
===> release successfully created!
root@15e45d27b0f7:~/emqx# ls
Dockerfile LICENSE Makefile README.md _rel bin ct data deps docker-compose.yml erlang.mk rel relx relx.config vars.config
root@15e45d27b0f7:~/emqx# ./_rel/emqx/
bin/ data/ erts-10.1.1/ etc/ hook_lua/ lib/ log/ releases/
root@15e45d27b0f7:~/emqx# ./_rel/emqx/bin/emqx console
init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})
Crash dump is being written to: erl_crash.dump...done
I am using erlang:latest to build the image. erlang:latest is based on ubuntu. I am building and running it within docker.
sed "s/{{EXTRA_OPTS}}/ {d,namespaced_types},/" Emakefile.src > Emakefile
erl -noinput -eval 'up_to_date = make:all()' -s erlang halt
GEN rebar.config
GEN rebar.config
ERLC emq_coap_app.erl emq_coap_config.erl emq_coap_mqtt_adapter.erl emq_coap_ps_resource.erl emq_coap_ps_topics.erl emq_coap_registry.erl emq_coap_resource.erl emq_coap_server.erl emq_coap_sup.erl emq_coap_timer.erl
src/emq_coap_ps_resource.erl:241: field location_path undefined in record coap_content
src/emq_coap_ps_resource.erl:260: field location_path undefined in record coap_content
src/emq_coap_ps_resource.erl:19: Warning: undefined callback function coap_get/4 (behaviour 'coap_resource')
src/emq_coap_ps_resource.erl:19: Warning: undefined callback function coap_observe/4 (behaviour 'coap_resource')
src/emq_coap_ps_resource.erl:240: Warning: variable 'LocPath' is unused
src/emq_coap_ps_resource.erl:273: Warning: erlang:now/0: Deprecated BIF. See the "Time and Time Correction in Erlang" chapter of the ERTS User's Guide for more information.
make[2]: *** [ebin/emq_coap.app] Error 1
make[1]: *** [app] Error 2
I have an elixir plugin containing hooks, acl, auth modules to run with emqttd v 2.0 broker. I referred http://elixir-lang.org/crash-course.html#adding-elixir-to-existing-erlang-programs to make it work with the emqttd. The issues I am facing is:
OS: ubuntu
Max@gitlab:/emq-relx$ uname -a/emq-relx$ cat /etc/issue
Linux gitlab 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
Max@gitlab:
Ubuntu 16.04.2 LTS \n \l
Erlang/OTP:
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [hipe]
EMQ:
git clone https://github.com/emqtt/emq-relx.git
A description of the issue
Max@gitlab:~/emq-relx$ make
make[1]: Entering directory '/home/Max/emq-relx/deps/goldrush'
make[1]: rebar: Command not found
Makefile:13: recipe for target 'deps' failed
make[1]: *** [deps] Error 127
make[1]: Leaving directory '/home/Max/emq-relx/deps/goldrush'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2
Hello,
we need to export the ssl port (8883) to devices, so necessary to set a bigger backlog for this port,
but I tried to set following configurations:
mqtt.listener.ssl.backlog = 8192
or
mqtt.listener.ssl.tcp.backlog = 8192
it didn't work, the mqttd failed to start, how to set the backlog for SSL listener?
erlang version: erlang/stable,now 1:17.3-dfsg-4 all
deps/bson/src/bson_binary.erl:55: illegal use of variable 'Name' in map
deps/mongodb/src/connection/mc_worker.erl
URStorage = RequestStorage(maps:put(Id, RespFun, maps:new())),
UReqStor = ReqStor(maps:put(Id, RespFun, maps:new())),
Working on OSX11
My erlang version is:
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false] [dtrace]
Eshell V7.3 (abort with ^G)
I attempt to ‘make’, but got make error every time.
DEP emqttd
DEP emq_dashboard
DEP emq_recon
DEP emq_reloader
DEP emq_stomp
DEP emq_plugin_template
DEP emq_mod_rewrite
DEP emq_mod_presence
DEP emq_mod_retainer
DEP emq_mod_subscription
DEP emq_auth_clientid
DEP emq_auth_username
DEP emq_auth_ldap
DEP emq_auth_http
DEP emq_auth_mysql
DEP emq_auth_pgsql
DEP emq_auth_redis
DEP emq_auth_mongo
DEP emq_sn
DEP emq_coap
DEP gproc
{"init terminating in do_boot",{undef,[{rebar_utils,wordsize,[],[]},{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,670}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,228}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,229}]},{erl_eval,expr_list,6,[{file,"erl_eval.erl"},{line,878}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,422}]},{erl_eval,exprs,5,[{file,"erl_eval.erl"},{line,122}]},{init,start_it,1,[]}]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()
DEP lager
{"init terminating in do_boot",{undef,[{rebar_utils,wordsize,[],[]},{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,670}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,228}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,229}]},{erl_eval,expr_list,6,[{file,"erl_eval.erl"},{line,878}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,422}]},{erl_eval,exprs,5,[{file,"erl_eval.erl"},{line,122}]},{init,start_it,1,[]}]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()
DEP gen_logger
{"init terminating in do_boot",{undef,[{rebar_utils,wordsize,[],[]},{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,670}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,228}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,229}]},{erl_eval,expr_list,6,[{file,"erl_eval.erl"},{line,878}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,422}]},{erl_eval,exprs,5,[{file,"erl_eval.erl"},{line,122}]},{init,start_it,1,[]}]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()
DEP esockd
DEP mochiweb
{"init terminating in do_boot",{undef,[{rebar_utils,wordsize,[],[]},{erl_eval,do_apply,6,[{file,"erl_eval.erl"},{line,670}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,228}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,229}]},{erl_eval,expr_list,6,[{file,"erl_eval.erl"},{line,878}]},{erl_eval,expr,5,[{file,"erl_eval.erl"},{line,422}]},{erl_eval,exprs,5,[{file,"erl_eval.erl"},{line,122}]},{init,start_it,1,[]}]}}
Crash dump is being written to: erl_crash.dump...done
init terminating in do_boot ()
make[2]: *** No targets. Stop.
make[1]: *** [deps] Error 2
make: *** [deps] Error 2
The compilation with the elixir plugin is failing at the moment.
Generated emq_elixir_plugin app
rm -rf /Users/luiscalado/repos/work/emq-relx/deps/emq_elixir_plugin/elixir/lib/mix/test
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/Users/luiscalado/repos/work/emq-relx/deps
/usr/local/Cellar/erlang/20.3.6/lib/erlang/lib
/Users/luiscalado/repos/work/emq-relx/apps
/Users/luiscalado/repos/work/emq-relx/_rel
===> Failed to solve release:
Dependency elixir is specified as a dependency but is not reachable by the system.
make: *** [relx-rel] Error 127
If we start the broker with bin\emqttd start
command, the broker will consume more and more cpu/memory and then crash.
包:emqttd-centos64-v2.0-beta.1-20160830.zip
系统环境:LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.2.1511 (Core)
Release: 7.2.1511
Codename: Core
集群中每台集群的node节点配置正确,也可以正常start;
但是执行cluster join之后,执行该命令的这个节点就会瘫痪掉
emqttd ctl is starting...[ok]
emqttd hook is starting...[ok]
emqttd router is starting...[ok]
emqttd pubsub is starting...[ok]
emqttd stats is starting...[ok]
emqttd metrics is starting...[ok]
emqttd pooler is starting...[ok]
emqttd trace is starting...[ok]
emqttd client manager is starting...[ok]
emqttd session manager is starting...[ok]
emqttd session supervisor is starting...[ok]
emqttd wsclient supervisor is starting...[ok]
emqttd broker is starting...[ok]
emqttd alarm is starting...[ok]
emqttd mod supervisor is starting...[ok]
emqttd bridge supervisor is starting...[ok]
emqttd access control is starting...[ok]
emqttd system monitor is starting...[ok]
{error,{bad_return,{{emqttd_app,start,[normal,[]]},
{'EXIT',{{badmatch,undefined},
[{emqttd_plugins,plugin,1,
[{file,"src/emqttd_plugins.erl"},{line,116}]},
{emqttd_plugins,'-list/0-lc$^0/1-0-',1,
[{file,"src/emqttd_plugins.erl"},{line,102}]},
{emqttd_plugins,'-list/0-lc$^0/1-0-',1,
[{file,"src/emqttd_plugins.erl"},{line,102}]},
{emqttd_plugins,list,0,
[{file,"src/emqttd_plugins.erl"},{line,102}]},
{emqttd_plugins,load_plugins,2,
[{file,"src/emqttd_plugins.erl"},{line,74}]},
{emqttd_app,start,2,[{file,"src/emqttd_app.erl"},{line,49}]},
{application_master,start_it_old,4,
[{file,"application_master.erl"},{line,273}]}]}}}}}
([email protected])4>
07:16:59.036 [info] Application emqttd exited: exited in: :emqttd_app.start(:normal, [])
** (EXIT) an exception was raised:
** (MatchError) no match of right hand side value: :undefined
(emqttd) src/emqttd_plugins.erl:116: :emqttd_plugins.plugin/1
(emqttd) src/emqttd_plugins.erl:102: :emqttd_plugins."-list/0-lc$^0/1-0-"/1
(emqttd) src/emqttd_plugins.erl:102: :emqttd_plugins."-list/0-lc$^0/1-0-"/1
(emqttd) src/emqttd_plugins.erl:102: :emqttd_plugins.list/0
(emqttd) src/emqttd_plugins.erl:74: :emqttd_plugins.load_plugins/2
(emqttd) src/emqttd_app.erl:49: :emqttd_app.start/2
(kernel) application_master.erl:273: :application_master.start_it_old/4
07:16:59.033 [error] CRASH REPORT Process <0.1566.0> with 0 neighbours exited with reason: no match of right hand value undefined in emqttd_plugins:plugin/1 line 116 in application_master:init/4 line 134
I successfully built Emqtt on raspberry pi 3 model b using these series of commands
sudo apt-get update
sudo apt-get install erlang-dev erlang-edoc erlang-eunit erlang-reltool erlang-crypto erlang-eldap erlang-public-key erlang-runtime-tools erlang-ssl
sudo apt-get install wget libssl-dev ncurses-dev
wget http://www.erlang.org/download/otp_src_18.3.tar.gz
tar -xzvf otp_src_19.3.tar.gz
cd otp_src_18.3/
./configure
make
sudo make install
git clone https://github.com/emqtt/emq-relx.git
cd emq-relx && make
cd _rel/emqttd && ./bin/emqttd console
and the emqtt works as expected with console and start.
But I couldn't make it start at boot. I tried this script https://github.com/emqtt/emq-package/blob/master/deb/debian/init.script
with these changes :
NAME=emqttd
DAEMON=/opt/emqttd/bin/$NAME
SCRIPTNAME=/etc/init.d/$NAME
but it doesn't work
Errors:
In the first place it said that the emqtt user not found then I added that user and set it as owner of the opt/emqttd folder.
now the status is :
emqttd.service - LSB: Erlang MQTT Broker
Loaded: loaded (/etc/init.d/emqttd)
Active: failed (Result: exit-code) since Thu 2018-01-04 11:28:08 WET; 51s ago
Process: 538 ExecStart=/etc/init.d/emqttd start (code=exited, status=1/FAILURE)
Jan 04 11:28:08 rpi-expactiv_06 systemd[1]: emqttd.service: control process exited, code=exited status=1
Jan 04 11:28:08 rpi-expactiv_06 systemd[1]: Failed to start LSB: Erlang MQTT Broker.
Jan 04 11:28:08 rpi-expactiv_06 systemd[1]: Unit emqttd.service entered failed state.
pi@rpi-expactiv_06:~ $ nano /etc/init.d/emqttd
Is there something I'am missing ?
I am building release v2.0.7 using docker,
I am getting a runtime error,
[error] Lager failed to install handler {lager_syslog_backend,{"emq",local0}} into lager_event, retrying later : {error, {"no such file or directory", "syslog.app"}}
Looking at the Makefile for tag v2.0.7 lager
is a dependency,
Comparing to 2.1, it appears that lager_syslog has been added as a dependency for 2.1
How could a dependency that wasn't in 2.0.7 be working it's way into my build?
A description of the issue
Max@gitlab:~/emq-relx-2.3.11/_rel/emqttd/bin$ ./emqttd console
erlexec: Error 13 executing '/home/Max/emq-relx-2.3.11/_rel/emqttd/erts-10.0/bin/beam.smp'.
[error] [error] Failed to start connection on 0.0.0.0:18083 - {'EXIT',{undef,[{mochiweb_http,start_link,[{esockd_connection,[#Port<0.2509>,#Fun<esockd_transport.2.122912610>,[]]},{emq_dashboard,handle_request,[{state,"/home/qjzh/emq-relx/_rel/emqttd/lib/emq_dashboard-2.3.11/priv/www",#Fun<emq_dashboard.1.119262490>}]}],[]},{esockd_connection_sup,handle_call,3,[{file,"src/esockd_connection_sup.erl"},{line,146}]},{gen_server,try_handle_call,4,[{file,"gen_server.erl"},{line,636}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,665}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]}}
what's wrong when emq load emq_dashboard?
Hi.
I write a plugin and it depend on eredis_cluster, but when I create the release, eredis_cluster didn't appear in _rel/emqttd/lib/
make[1]: Leaving directory '/home/solomon/workspace/erlang/emq-relx/deps/emq_auth_jwt'
make[1]: Entering directory '/home/solomon/workspace/erlang/emq-relx/deps/emq_rf'
make[2]: Entering directory '/home/solomon/workspace/erlang/emq-relx/deps/eredis_cluster'
make[2]: Leaving directory '/home/solomon/workspace/erlang/emq-relx/deps/eredis_cluster'
DEPEND emq_rf.d
ERLC emq_rf.erl emq_rf_acl.erl emq_rf_app.erl emq_rf_auth.erl emq_rf_client.erl emq_rf_http.erl emq_rf_http_api.erl emq_rf_http_auth.erl emq_rf_message.erl emq_rf_redis.erl emq_rf_session.erl emq_rf_sup.erl
APP emq_rf.app.src
make[1]: Leaving directory '/home/solomon/workspace/erlang/emq-relx/deps/emq_rf'
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/home/solomon/workspace/erlang/emq-relx/deps
/usr/lib/erlang/lib
/home/solomon/workspace/erlang/emq-relx/apps
/home/solomon/workspace/erlang/emq-relx/_rel
===> Resolved emqttd-2.3.6
===> Including Erts from /usr/lib/erlang
===> release successfully created!
-> % ls _rel/emqttd/lib/
asn1-5.0.5 eldap-1.2.3 emq_auth_username-2.3.6 emq_rf-1 gen_logger-1.2 luerl-0.3 public_key-1.5.2
bcrypt-git emq_auth_clientid-2.3.6 emq_coap-2.3.6 emq_sn-2.3.6 goldrush-0.1.9 mnesia-4.15.3 recon-2.3.2
bson-v0.2.2 emq_auth_http-2.3.6 emq_dashboard-2.3.6 emq_stomp-2.3.6 gproc-git mochiweb-4.2.1 runtime_tools-1.12.5
clique-git emq_auth_jwt-2.3.6 emq_lua_hook-2.3.6 emqttd-2.3.6 inets-6.5 mongodb-3.0.0 sasl-3.1.1
compiler-7.1.5 emq_auth_ldap-2.3.6 emq_modules-2.3.6 emq_web_hook-2.3.6 jsx-2.9.0 mysql-1.3.1 ssl-8.2.5
crypto-4.2.1 emq_auth_mongo-2.3.6 emq_plugin_template-2.3.6 epgsql-3.4.1 jwerl-0.2.0 observer-2.7 stdlib-3.4.5
cuttlefish-2.0.10-7-g26989cf emq_auth_mysql-2.3.6 emq_recon-2.3.6 eredis-1.1.0 kernel-5.4.3 os_mon-2.4.4 syntax_tools-2.1.4
ecpool-0.2 emq_auth_pgsql-2.3.6 emq_reloader-2.3.6 esockd-5.2 lager-3.2.2 pbkdf2-2.0.1 syslog-1.0.5
ekka-0.2.2 emq_auth_redis-2.3.6 emq_retainer-2.3.6 gen_coap-0.2.0 lager_syslog-3.0.1 poolboy-1.5.1 xmerl-1.3.16
Is there something I'am missing ?
I am getting a compilation error with the CoAP module when I try to compile the version 2.1.0 on Raspbian stretch running on Raspberry pi model B V1.2. Any help is highly appreciated. Thanks
$ sudo make
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emqttd'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/cuttlefish'
./rebar get-deps
==> getopt (get-deps)
==> goldrush (get-deps)
==> lager (get-deps)
==> neotoma (get-deps)
==> cuttlefish (get-deps)
./rebar compile
==> getopt (compile)
==> goldrush (compile)
==> lager (compile)
==> neotoma (compile)
==> cuttlefish (compile)
==> getopt (escriptize)
==> goldrush (escriptize)
==> lager (escriptize)
==> neotoma (escriptize)
==> cuttlefish (escriptize)
./rebar skip_deps=true escriptize
==> cuttlefish (escriptize)
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/cuttlefish'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/goldrush'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/goldrush'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/gproc'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/gproc'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/lager'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/lager'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/esockd'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/gen_logger'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/gen_logger'
GEN rebar.config
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/esockd'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/ekka'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/jsx'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/jsx'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/ekka'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/mochiweb'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/mochiweb'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/pbkdf2'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/pbkdf2'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/lager_syslog'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make -f c_src/Makefile.erlang.mk
make[4]: Entering directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make[4]: Nothing to be done for 'all'.
make[4]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/syslog'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/lager_syslog'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make -f c_src/Makefile.erlang.mk
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/bcrypt'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/clique'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/clique'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emqttd'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_modules'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_modules'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_dashboard'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_dashboard'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_retainer'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_retainer'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_recon'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/recon'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/recon'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_recon'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_reloader'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_reloader'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_clientid'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_clientid'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_username'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_username'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_ldap'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/ecpool'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/ecpool'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_ldap'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_http'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_http'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mysql'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/mysql'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/mysql'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mysql'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_pgsql'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/epgsql'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/epgsql'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_pgsql'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_redis'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/eredis'
sed "s/{{EXTRA_OPTS}}/ {d,namespaced_types},/" Emakefile.src > Emakefile
erl -noinput -eval 'up_to_date = make:all()' -s erlang halt
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/eredis'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_redis'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mongo'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/mongodb'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/bson'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/bson'
make[3]: Entering directory '/home/pi/emq-relx-2.1.0/deps/poolboy'
make[3]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/poolboy'
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/mongodb'
GEN rebar.config
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_auth_mongo'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_sn'
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_sn'
make[1]: Entering directory '/home/pi/emq-relx-2.1.0/deps/emq_coap'
make[2]: Entering directory '/home/pi/emq-relx-2.1.0/deps/gen_coap'
XYRL core_link_scanner.xrl core_link_parser.yrl
Compiler function leex:compile/3 failed:
{undef,[{leex,compile,
["/home/pi/emq-relx-2.1.0/deps/gen_coap/src/core_link_scanner",
"/home/pi/emq-relx-2.1.0/deps/gen_coap/src/core_link_scanner",
{options,[],"/home/pi/emq-relx-2.1.0/deps/gen_coap/src",
undefined,[],1,true,999,[],[],
"/home/pi/emq-relx-2.1.0/deps/gen_coap"}],
[]},
{erl_compile,compile_file,4,[{file,"erl_compile.erl"},{line,304}]},
{erl_compile,compile3,3,[{file,"erl_compile.erl"},{line,285}]},
{erl_compile,'-compiler_runner/1-fun-0-',1,
[{file,"erl_compile.erl"},{line,92}]}]}
make[2]: *** No rule to make target 'gen_coap.d'. Stop.
make[2]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/gen_coap'
../../erlang.mk:312: recipe for target 'deps' failed
make[1]: *** [deps] Error 2
make[1]: Leaving directory '/home/pi/emq-relx-2.1.0/deps/emq_coap'
erlang.mk:310: recipe for target 'deps' failed
make: *** [deps] Error 2
Steps:
For example if I have a following configuration in the etc/emq.conf:
node.cookie = 'd!C!v-p_XNSAIv5eIcXyLH%5gv4e=QFkjsf$p>8j@DC;?r[jy%7eH%TZUk^Qci-s'
It would not work if I ran './bin/emqttd_ctl clients list':
Node '[email protected]' not responding to pings.
https://github.com/emqtt/emq-relx/blob/8b6b49ad94b2f4dee7478e9a10d064a2c5f468ce/bin/emqttd_ctl#L71
Should we change the command 'cut -d = -f 2' to 'cut -d = -f 2-' ?
Like follows:
COOKIE=egrep '^[ \t]*node.cookie[ \t]*=[ \t]*' $RUNNER_ETC_DIR/emq.conf 2> /dev/null | tail -1 | cut -d = -f 2-
use elang 19.1
git clone https://github.com/emqtt/emq-relx.git
cd emq-relx && make
make got the error:
src/esockd_cidr.erl:59: syntax error before: ?
I downloaded the source code package, compiled directly on the centos7 server exploded compilation error, as follows:
make[1]: Entering directory `/usr/local/emq_kafka_gather/emq-relx/deps/goldrush'
make[1]: Leaving directory `/usr/local/emq_kafka_gather/emq-relx/deps/goldrush'
make[1]: Entering directory `/usr/local/emq_kafka_gather/emq-relx/deps/emqttd'
DEP esockd
make[2]: Entering directory `/usr/local/emq_kafka_gather/emq-relx/deps/cuttlefish'
./rebar get-deps
==> getopt (get-deps)
==> goldrush (get-deps)
==> lager (get-deps)
==> neotoma (get-deps)
==> cuttlefish (get-deps)
./rebar compile
==> getopt (compile)
==> goldrush (compile)
==> lager (compile)
==> neotoma (compile)
==> cuttlefish (compile)
==> getopt (escriptize)
==> goldrush (escriptize)
==> lager (escriptize)
==> neotoma (escriptize)
==> cuttlefish (escriptize)
./rebar skip_deps=true escriptize
==> cuttlefish (escriptize)
make[2]: Leaving directory `/usr/local/emq_kafka_gather/emq-relx/deps/cuttlefish'
make[2]: Entering directory `/usr/local/emq_kafka_gather/emq-relx/deps/gproc'
make[2]: Leaving directory `/usr/local/emq_kafka_gather/emq-relx/deps/gproc'
make[2]: Entering directory `/usr/local/emq_kafka_gather/emq-relx/deps/lager'
make[2]: Leaving directory `/usr/local/emq_kafka_gather/emq-relx/deps/lager'
make[2]: Entering directory `/usr/local/emq_kafka_gather/emq-relx/deps/esockd'
make[3]: Entering directory `/usr/local/emq_kafka_gather/emq-relx/deps/gen_logger'
make[3]: Leaving directory `/usr/local/emq_kafka_gather/emq-relx/deps/gen_logger'
DEPEND esockd.d
ERLC esockd.erl esockd_acceptor.erl esockd_acceptor_sup.erl esockd_access.erl esockd_app.erl esockd_cidr.erl esockd_connection.erl esockd_connection_sup.erl esockd_gen.erl esockd_keepalive.erl esockd_listener.erl esockd_listener_sup.erl esockd_net.erl esockd_proxy_protocol.erl esockd_ratelimit.erl esockd_server.erl esockd_ssl.erl esockd_sup.erl esockd_transport.erl esockd_udp.erl esockd_util.erl
src/esockd_cidr.erl:61: syntax error before:
src/esockd_cidr.erl:65: syntax error before:
src/esockd_cidr.erl:56: function parse_addr/1 undefined
src/esockd_cidr.erl:57: function parse_cidr/3 undefined
src/esockd_cidr.erl:130: Warning: function start_mask/2 is unused
src/esockd_cidr.erl:138: Warning: function end_mask/2 is unused
src/esockd_cidr.erl:160: Warning: function bmask/2 is unused
src/esockd_cidr.erl:165: Warning: function calc_end_address/2 is unused
src/esockd_cidr.erl:168: Warning: function bor_with_mask/2 is unused
src/esockd_cidr.erl:173: Warning: function band_with_mask/2 is unused
src/esockd_cidr.erl:178: Warning: function bit_count/1 is unused
make[3]: *** [ebin/esockd.app] Error 1
make[2]: *** [app] Error 2
make[2]: Leaving directory `/usr/local/emq_kafka_gather/emq-relx/deps/esockd'
make[1]: *** [deps] Error 2
make[1]: Leaving directory `/usr/local/emq_kafka_gather/emq-relx/deps/emqttd'
make: *** [deps] Error 2
in goldrush error info: rebar command not found
copy rebar to goldrush folder,modify makefile @ReaBar to ./rebar
the question is ok
I am building on Mac OS v10.12.3 with Erlang v19. I had a few issues while building initially since the rel/ folder was not present. I fixed that by using the configuration from the downloadable mac os version and after that all the build issues disappeared.
After building, when I try to run the binary, this is what I get:
$ ./_rel/emqttd/bin/emqttd foreground
!!!!
!!!! WARNING: ulimit -n is 256; 1024 is the recommended minimum.
!!!!
Exec: /Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd/erts-8.2/bin/erlexec -noshell -noinput +Bd -boot /Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd/releases/2.1/emqttd -mode embedded -boot_var ERTS_LIB_DIR /Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd/erts-8.2/../lib -mnesia dir "/Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd/data/mnesia/[email protected]" -config /Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd/data/configs/app.2017.02.22.12.20.54.config -args_file /Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd/data/configs/vm.2017.02.22.12.20.54.args -vm_args /Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd/data/configs/vm.2017.02.22.12.20.54.args -- foreground
Root: /Users/fabian/dev/sorted/playground/emq-relx/_rel/emqttd
starting emqttd on node '[email protected]'
emqttd ctl is starting...[ok]
emqttd hook is starting...[ok]
emqttd router is starting...[ok]
emqttd pubsub is starting...[ok]
emqttd stats is starting...[ok]
emqttd metrics is starting...[ok]
emqttd pooler is starting...[ok]
emqttd trace is starting...[ok]
emqttd client manager is starting...[ok]
emqttd session manager is starting...[ok]
emqttd session supervisor is starting...[ok]
emqttd wsclient supervisor is starting...[ok]
emqttd broker is starting...[ok]
emqttd alarm is starting...[ok]
emqttd mod supervisor is starting...[ok]
emqttd bridge supervisor is starting...[ok]
emqttd access control is starting...[ok]
emqttd system monitor is starting...[ok]
12:21:00.838 [error] CRASH REPORT Process <0.996.0> with 0 neighbours exited with reason: no match of right hand value undefined in emqttd_plugins:plugin/1 line 116 in application_master:init/4 line 134
[os_mon] cpu supervisor port (cpu_sup): Erlang has closed
{"Kernel pid terminated",application_controller,"{application_start_failure,emqttd,{bad_return,{{emqttd_app,start,[normal,[]]},{'EXIT',{{badmatch,undefined},[{emqttd_plugins,plugin,1,[{file,"src/emqttd_plugins.erl"},{line,116}]},{emqttd_plugins,'-list/0-lc$^0/1-0-',1,[{file,"src/emqttd_plugins.erl"},{line,102}]},{emqttd_plugins,'-list/0-lc$^0/1-0-',1,[{file,"src/emqttd_plugins.erl"},{line,102}]},{emqttd_plugins,list,0,[{file,"src/emqttd_plugins.erl"},{line,102}]},{emqttd_plugins,load_plugins,2,[{file,"src/emqttd_plugins.erl"},{line,74}]},{emqttd_app,start,2,[{file,"src/emqttd_app.erl"},{line,48}]},{application_master,start_it_old,4,[{file,"application_master.erl"},{line,273}]}]}}}}}"}
Kernel pid terminated (application_controller) ({application_start_failure,emqttd,{bad_return,{{emqttd_app,start,[normal,[]]},{'EXIT',{{badmatch,undefined},[{emqttd_plugins,plugin,1,[{file,"src/emqttd
Crash dump is being written to: log/crash.dump...done
Any help would be much appreciated :
Here is my log file content after starting the server:
starting emqttd on node '[email protected]'
emqttd ctl is starting...[ok]
emqttd hook is starting...[ok]
emqttd router is starting...[ok]
emqttd pubsub is starting...[ok]
emqttd stats is starting...[ok]
emqttd metrics is starting...[ok]
emqttd pooler is starting...[ok]
emqttd trace is starting...[ok]
emqttd client manager is starting...[ok]
emqttd session manager is starting...[ok]
emqttd session supervisor is starting...[ok]
emqttd wsclient supervisor is starting...[ok]
emqttd broker is starting...[ok]
emqttd alarm is starting...[ok]
emqttd mod supervisor is starting...[ok]
emqttd bridge supervisor is starting...[ok]
emqttd access control is starting...[ok]
emqttd system monitor is starting...[ok]
emqttd 2.3 is running now
Eshell V8.3 (abort with ^G)
([email protected])1> 05:07:35.219 [error] Autocluster exception: {badmatch,undefined}
I cannot understand why I had this error, but my real problem now is that I cannot load any plugin.
When I tried to load such a plugin I got this error as follows:
./emqttd_ctl plugins load emq_auth_clientid
Reason:{badmatch,undefined}, get_stacktrace:[{emqttd_plugins,plugin,1,
[{file,"src/emqttd_plugins.erl"},
{line,116}]},
{emqttd_plugins,
'-list/0-lc$^0/1-0-',1,
[{file,"src/emqttd_plugins.erl"},
{line,102}]},
{emqttd_plugins,
'-list/0-lc$^0/1-0-',1,
[{file,"src/emqttd_plugins.erl"},
{line,102}]},
{emqttd_plugins,list,0,
[{file,"src/emqttd_plugins.erl"},
{line,102}]},
{emqttd_plugins,find_plugin,1,
[{file,"src/emqttd_plugins.erl"},
{line,169}]},
{emqttd_plugins,load,1,
[{file,"src/emqttd_plugins.erl"},
{line,129}]},
{emqttd_cli,plugins,1,
[{file,"src/emqttd_cli.erl"},
{line,302}]},
{emqttd_ctl,run,1,
[{file,"src/emqttd_ctl.erl"},
{line,83}]}]
RPC to [email protected] error: {badmatch,undefined}
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.