GithubHelp home page GithubHelp logo

emqx / emqx-rel Goto Github PK

View Code? Open in Web Editor NEW
189.0 42.0 223.0 8.87 MB

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

Makefile 13.61% Shell 35.77% Batchfile 7.02% Erlang 34.81% Dockerfile 3.06% Python 5.03% Mustache 0.69%
mqtt mqtt-broker

emqx-rel's People

Contributors

6293 avatar alexismtr avatar barisvelioglu avatar daadu avatar emqplus avatar gilbertwong96 avatar grutabow avatar hjianbo avatar hmonadjem avatar huangdan avatar k32 avatar khodadadi avatar kienbd avatar pmextra avatar rory-z avatar spring2maz avatar sunny868 avatar terry-xiaoyu avatar thomasfinstad avatar tigercl avatar turtledeng avatar velimir avatar yqfclid avatar zehweh avatar zmstone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

emqx-rel's Issues

Unable to compile (make / make rel) on OSX El-Capitan

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

Complile failure, Dependency emq_mod_retainer

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)

nodetool pid

["rpcterms", Module, Function, ArgsAsString] should be
["rpcterms", Module, Function | ArgsAsString]

build error on amazon aws ec2

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

unable to execute 'emqttd console' - crashing with "cannot get bootfile,no_dot_erlang.boot"

Environment

  • OS: CentOS 6.8
  • Erlang/OTP: 21
  • EMQ: 2.3.11

Description

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

App built on Windows 7 doesn't work

Environment:

Windows 7
emq-relx-2.3.10
Msys2
Erlang/OTP 21.0

Issue

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?

Dynamic Blacklists

Does have any scheme to support dynamic blacklists based on IP or MQTT client IDs?

Want to integrate observer module into emqttd in docker

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.

Make fails due to undefined macro 'SN_RC_MQTT_FAILURE'

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

compile failed on linux32

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

lager can not work in emq2.0

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.

Guide for adding new plugin

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?

Issue with persistent config EMQ 2.3.11

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
*/

build failed in ubuntu 18.04

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

Can't compile on arm64 with OTP 21.1

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.

Trying to build v2.2.0 in docker container, seem to be experiencing bug fixed in v2.3.x

Environment

  • OS: Docker Alpine
  • Erlang/OTP:
  • EMQ: v2.2.0

Description

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?

Mac OSX sierra - after making project, mqtt connection crashes server

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
`

init terminating in do_boot ({cannot get bootfile,no_dot_erlang.boot})

===> 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.

编译出错,mac, erlang 0TA21

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

build error: rebar: Command not found

Environment

  • OS: ubuntu
    Max@gitlab:/emq-relx$ uname -a
    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:
    /emq-relx$ cat /etc/issue
    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

Description

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

any method to set the listen backlog for ssl listener?

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?

debian arm build error

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

  1. get_fields(Bin1, maps:put(Name, Value, Acc));

deps/mongodb/src/connection/mc_worker.erl

  1. 128 line: URStorage = RequestStorage#{Id => RespFun},
  2.       URStorage = RequestStorage(maps:put(Id, RespFun, maps:new())),
    
  3. 152 line: UReqStor = ReqStor#{Id => RespFun},
  4.       UReqStor = ReqStor(maps:put(Id, RespFun, maps:new())),
    

init terminating in do_boot while 'make'

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

elixir plugin compilation with dependency not reachable

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

Cluster Cannot work in 2.0-beta.1

包: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之后,执行该命令的这个节点就会瘫痪掉

Emq Not starting following occurs when server starts

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

Start emqtt at boot on raspberry pi

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 ?

Dependency Error, building v2.0.7

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?

emqtt 2.3.11: ./emqttd console error:

Environment

  • OS: unbuntu 16.04
  • Erlang/OTP: 21
  • EMQ: 2.3.11

Description

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'.

load plugin emq_dashboard wrong

[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?

Can not add new lib

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 ?

Build failed raspbian stretch

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

emqttd_ctl script does not support node cookies with '=' characters

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-

build error

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

Binary crashes after building on Mac OS v10.12.3

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 :

Cannot load any plugin

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}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.