Commit Graph

2701 Commits

Author SHA1 Message Date
firest 59ce864f45 chore: add upgrade callback for exclusive_subscription 2022-07-01 18:43:18 +08:00
firest 8abf647452 fix(exclusive): add upgarde codes 2022-07-01 18:35:08 +08:00
Xinyu Liu 2a89443377
Merge branch 'main-v4.4' into copy-of_main-v4.3 2022-06-29 22:27:49 +08:00
Thales Macedo Garitezi 5c89998049 fix(hooks): return error on hook-removed subscription rather than deleting it
Following https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901178
2022-06-29 11:08:22 -03:00
Xinyu Liu 565b6b0eb3
Merge branch 'main-v4.4' into copy-of_main-v4.3 2022-06-23 22:44:53 +08:00
Shawn ee6a2155e2 fix: correct the emqx.appup.src 2022-06-23 22:22:24 +08:00
firest 73b72f40e5 chore: update emqx.appup.src 2022-06-23 17:57:41 +08:00
firest f732b41c5c fix(ctl): remove the warning log when the mgmt upgrade 2022-06-23 17:51:32 +08:00
firest a90f91d3e8 chore: update emqx.appup.src 2022-06-23 17:04:15 +08:00
firest 746b996de4 feat(exclusive): update schema and conf 2022-06-23 17:03:51 +08:00
firest 7084e510d6 feat(exclusive): refactor the implementation 2022-06-23 16:31:48 +08:00
firest 6599b71b5e feat: add exclusive subscription 2022-06-23 16:31:48 +08:00
Thales Macedo Garitezi 4bda62b195 fix(hooks): use hook response to stop subscriptions
Fixes https://github.com/emqx/emqx-lua-hook/issues/118

1) If the Lua hook returns an empty list, it should replace the final
topic filter list.
2) The subscribed topics after running the 'client.subscribe' hook
should not contain topics filtered out by the hooks.
2022-06-21 17:06:39 -03:00
Thales Macedo Garitezi 7d303ae7fe fix(acl): do not leave placeholders unreplaced
If there is no information in the `ClientInfo` map that can be used to
template a placeholder, then we should avoid letting the literal
placeholder match.  Otherwise, the literal placeholder will allow
messages to be published/received unintentionally.

One can still use `{eq, <<"%c">>}` if matching the placeholder is
really desired.
2022-06-20 14:52:51 -03:00
Thales Macedo Garitezi 13f575bc84 chore(relup): bump release and app vsns, update appups 2022-06-15 13:45:05 -03:00
Thales Macedo Garitezi b93a0743ac Merge branch 'main-v4.3' into 'main-v4.4' 2022-06-15 10:48:02 -03:00
JianBo He 00fe560dac
Merge branch 'main-v4.3' into chore/fix-loaded-plugin 2022-06-14 09:47:14 +08:00
JianBo He 5f75f03be8 chore(appup): update emqx.appup.src 2022-06-13 15:15:01 +08:00
Rory Z 9975f3dda8 chore: fix when load plugins, update loaded file error 2022-06-11 17:34:22 +08:00
Thales Macedo Garitezi 1733f19608
chore: bump version and update changelog 2022-06-10 16:30:27 -03:00
Thales Macedo Garitezi 1ba8ad4c25
fix(metrics): inc `connack.auth_error` when using MQTT 3.1
Since MQTT 3.1 uses a different reason code for auth failures, it was
failing to increase the corresponding metric that works for MQTT 5.0.
2022-06-10 15:00:57 -03:00
JianBo He c32edfde18 chore(appup): recovering lost hot update commands 2022-06-02 10:42:55 +08:00
JianBo He 9c91788a9e Merge tag 'v4.3.15-rc.5' into merge-main-v4.3-into-v4.4 2022-06-01 17:01:10 +08:00
DDDHuang 983a699592 fix: better release up log 2022-06-01 14:39:50 +08:00
DDDHuang 4347fa1b95 fix: adjust old logger config 2022-06-01 14:35:23 +08:00
JianBo He ce1dd88676 chore: fix bad `add_module` instrs 2022-05-27 21:54:57 +08:00
JianBo He 2ca952bbe6 chore: update emqx.appup.src 2022-05-27 18:22:39 +08:00
JianBo He 6c765b3e02 Merge tag 'v4.3.15-rc.3' into merge-main-v4.3-into-v4.4 2022-05-27 18:13:38 +08:00
Xinyu Liu 526d8a8200
Merge pull request #8065 from HJianBo/fix-xref-bad-func-name
fix(alram): fix bad function name
2022-05-27 16:55:54 +08:00
JianBo He 975c7eb095
Merge branch 'main-v4.3' into trace-large-msg-format-as-iolist 2022-05-27 16:42:04 +08:00
JianBo He bfa54523c6 chore: revert the needless appup.src changes by #8061 2022-05-27 16:15:00 +08:00
JianBo He 9200fc2512 fix(alram): fix bad function name 2022-05-27 16:12:11 +08:00
zhongwencool 87b4bddaae chore: add changelog for trace 2022-05-27 14:15:43 +08:00
JianBo He 7ee5f90516 Merge tag 'v4.3.15-rc.3' into merge-main-v4.3-into-v4.4 2022-05-27 11:09:11 +08:00
zhongwencool 637202e463 fix: heap size is growing very fast when trace large msg 2022-05-27 11:04:49 +08:00
DDDHuang 78e5aa30d7 fix: rule engine clear resource bad name & type 2022-05-27 11:00:03 +08:00
JianBo He 157bcffd6f
Merge branch 'main-v4.3' into shared_dispatch_full_inflight 2022-05-26 16:53:35 +08:00
DDDHuang 64a455bf8e fix: old date format style example & some code format 2022-05-26 16:06:04 +08:00
DDDHuang e1ad8aab46 fix: date format funs & logger conf & appup & change log 2022-05-26 13:13:00 +08:00
DDDHuang 4fc5cb2817 fix: rule engine date format fun & date to timestamp 2022-05-26 12:57:53 +08:00
DDDHuang 664ebcc192 fix: log date format by emqx_calendar 2022-05-26 12:57:53 +08:00
DDDHuang 34ec0cc04b fix: logger formatter 2022-05-26 12:57:53 +08:00
JianBo He c5349cef64 Merge remote-tracking branch 'ce/main-v4.3' into merge-main-v4.3-into-v4.4 2022-05-26 11:18:15 +08:00
Georgy Sychev 31d4c92a17 fix(shared): retry dispatch when inflights are full 2022-05-25 20:31:10 +04:00
Zaiming (Stone) Shi 5a84b2c623 chore: only deal with 0-100 scale sysmem high watermark 2022-05-25 16:35:08 +02:00
Zaiming (Stone) Shi 1bebbd6ee5 fix(emqx_os_mon): ensure alarm is deactivated on unsupported platforms 2022-05-25 16:21:53 +02:00
Zaiming (Stone) Shi 17b9baf509 fix(alarm): fix false sysmem usage alarm
Use information from lc app to trigger sysmem alarm set/clear actions
2022-05-25 15:35:42 +02:00
Shawn 98a06f25b0 fix: remove downgrade emqx_metrics instrs from emqx.appup.src 2022-05-23 12:48:38 +08:00
Shawn b330f0f2a2 fix: conflicts between main-v4.3 and main-v4.4 2022-05-23 11:57:26 +08:00
Shawn ca842aa869 fix: merge main-v4.3 to main-v4.4 2022-05-23 11:23:27 +08:00
JimMoen 69abca17f2 chore(appup): bump app version & update appup 2022-05-22 22:06:02 +08:00
JimMoen 9435fe0bb9 refactor(metrics): more understandable auth metrics
`client.auth.success`/`client.auth.failure`
`client.auth.success.anonymous`
2022-05-20 17:48:41 +08:00
JianBo He 411ee84a35 chore(session): fix bad indent 2022-05-19 09:23:58 +08:00
Georgy Sychev b345002e84 feat(shared): redispatch to another shared sub, when no ACK received 2022-05-18 18:28:58 +04:00
EMQ-YangM de1d8909c3 fix: hexstr2bin support half byte 2022-05-18 17:45:26 +08:00
zhongwencool 554548dbfb chore: update emqx.appup.src and changelog 2022-05-05 16:52:33 +08:00
zhongwencool 761436c967 fix: don't allow empty username if username_as_clientid is true 2022-05-05 10:50:53 +08:00
Zaiming (Stone) Shi 4330edd674 fix(appup): bump to 4.4.4-beta.1
also fix emqx appup instructions
2022-04-23 11:50:07 +02:00
Zaiming (Stone) Shi 0bf55b99e3 chore: fix appup after merge from 4.3 2022-04-23 10:32:13 +02:00
Zaiming (Stone) Shi 723f294119 Merge remote-tracking branch 'origin/main-v4.3' into merge-v43-to-v44 2022-04-23 10:07:25 +02:00
Ilya Averyanov 41746e8d7a feat(emqx_auth_jwt): use JWT for ACL checks 2022-04-22 12:22:58 +03:00
firest 8fcff16bff fix: fix bad indent 2022-04-21 15:11:28 +08:00
firest 03cdcab6f6 chore: bump emqx version 2022-04-18 18:27:19 +08:00
firest 8a269099ad fix(frame): remove empty topic check, because it checked in emqx_channel 2022-04-18 14:23:22 +08:00
JianBo He 89c65b6535 Merge tag 'v4.3.14-rc.4' into merge-main-v4.3-into-v4.4 2022-04-16 11:28:07 +08:00
JimMoen 6168745f90 chore: update copyright 2022-04-14 11:23:25 +08:00
JianBo He 47a5bc3f09
Revert "Add support for JWT authorization" 2022-04-14 10:44:06 +08:00
Ilya Averyanov d8db671abb feat(emqx_auth_jwt): use JWT for ACL checks 2022-04-13 13:17:27 +03:00
JianBo He 9feb4dba30 chore: fix duplicated load_module for emqx.appup.src 2022-04-08 20:54:46 +08:00
JianBo He 7461484b9e Merge tag 'v4.3.14-rc.1' into merge-main-v4.3-into-v4.4
Version v4.3.14-rc.1
2022-04-08 19:29:30 +08:00
Xinyu Liu 0a77e1a9b1
Merge pull request #7558 from lafirest/fix/empty_topic_with_alias
fix(frame): fix empty topic check error
2022-04-08 18:07:42 +08:00
firest eec204517f fix(frame): fix empty topic check error 2022-04-08 16:26:07 +08:00
Shawn d155c3adb5 fix: add emqx_app into appup.src 2022-04-08 16:09:10 +08:00
Zaiming (Stone) Shi b294bad88e
Merge pull request #7462 from gsychev/bridge_local_forwards
feat(shared_sub): per group strategies and local strategy
2022-04-07 16:30:05 +01:00
Zaiming (Stone) Shi 9694c3277d fix(appup): re-generate emqx.appup.src 2022-04-07 15:17:02 +02:00
Georgy Sychev 0c74227995 feat(shared_sub): per group strategies and local strategy
Adds backward compatible per group strategy for shared subscriptions
Adds local shared subscription strategy
2022-04-07 13:40:02 +04:00
JimMoen 1910249058 chore: update CHANGES-4.3.md and appup 2022-04-07 17:26:59 +08:00
JimMoen 0297dd723e feat(emqx): provide cluster_name api 2022-04-07 17:21:37 +08:00
JianBo He dfea07fd0f Merge remote-tracking branch 'ce/main-v4.3' into merge-v43-to-v44 2022-04-07 09:37:47 +08:00
Thales Macedo Garitezi 63146cb148
chore: update appup files and bump emqx_modules app vsn 2022-04-06 09:11:07 -03:00
Thales Macedo Garitezi aa19283ff2
fix: ensure default values for `loaded_{plugins,modules}`
Fixes #7455 .

This tries to populate `loaded_{plugins,modules}` files with default
values before loading them, in case they don't exist.
2022-04-06 09:08:21 -03:00
Zaiming (Stone) Shi bad227c45d chore: re-generate appup files 2022-04-06 13:33:33 +02:00
Zaiming (Stone) Shi f3a7c75871 Merge remote-tracking branch 'origin/main-v4.3' into dev/v4.4.3 2022-04-06 13:24:37 +02:00
Shawn 905e831edc chore: bump emqx to 4.4.3 2022-04-06 14:22:54 +08:00
Georgy Sychev 1a715c8708 feat(emqx_dashboard): subsciption to update password
emqx_dashboard restarted in ekka hook
Closes #3155
2022-04-05 10:40:09 +02:00
Zaiming (Stone) Shi a54813dd69 fix(appup): re-generate appup from 4.3.13 2022-04-02 23:00:41 +02:00
Zaiming (Stone) Shi 0ac979361e fix(appup): re-generate emqx.appup.src 2022-03-31 10:06:32 +02:00
zhongwencool fe6af95f88 chore: remove useless stacktrace from catch. 2022-03-31 16:01:20 +08:00
Zaiming (Stone) Shi 48a65981af Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-03-31 09:28:58 +02:00
firest bf68735664 fix(frame): forbidden empty topic in strict mode 2022-03-30 10:42:56 +08:00
zhongwencool 16b8fc6edc fix: emqx.appup.src 2022-03-29 21:39:44 +08:00
zhongwencool 4ee586a738 fix: appup.src 2022-03-29 17:12:35 +08:00
zhongwencool 06adcb9126 Merge branch 'dev/v4.3.14' into export-test-case-v4.3.14 2022-03-29 15:55:24 +08:00
zhongwencool b47aef63a1 fix: emqx.appup.src 2022-03-29 15:16:57 +08:00
zhongwencool f9a85614d4 chore: export test function for ee's hot-conf 2022-03-29 14:52:35 +08:00
JimMoen b17fd40091 chore(exhook): update appup.src, add field when updating module 2022-03-28 15:54:38 +08:00
Yang Miao c0da7bcee0
Merge pull request #7407 from EMQ-YangM/add_client_check_acl_complete
feat: add rule events: 'client.connack', 'client.check_acl_complete'
2022-03-28 10:31:27 +08:00
EMQ-YangM 059fc6e3c7 feat(emqx_rule_events): add field 'is_cache' 2022-03-25 18:05:25 +08:00
EMQ-YangM 3eab6b436b fix(appup): load_module emqx_access_control 2022-03-25 11:27:28 +08:00
EMQ-YangM e0d142c625 feat: add client.check_acl_complete event 2022-03-25 11:08:30 +08:00
JimMoen 38c515908f feat(hook): put emqx_hook with more fields 2022-03-25 09:58:13 +08:00
Zaiming (Stone) Shi 2d97b1bb89 chore: delete warning message for session upgrade/downgrade 2022-03-24 12:26:09 +01:00
Zaiming (Stone) Shi 692e2c79a2 chore: update appups after merge 2022-03-22 20:58:34 +01:00
Zaiming (Stone) Shi 6ea8d2f270 Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-03-22 20:54:22 +01:00
JianBo He 604c384660 fix(channel): send will_msg if client has been kicked 2022-03-21 10:56:55 +08:00
JianBo He 8d3e953eef fix(channel): send DISCONNECT packet if connection has been kicked
fix #7241
2022-03-21 10:56:37 +08:00
Zaiming (Stone) Shi d56650e78b test: fix session downgrade/upgrade in tests 2022-03-18 17:57:17 +01:00
Zaiming (Stone) Shi 21ed258d58 fix(session): compatible to 4.3 takeover 2022-03-18 12:23:13 +01:00
zhongwencool b8afd2760c
Merge pull request #7318 from zhongwencool/fix-bad-str
fix: Add name string legitimacy check.
2022-03-17 17:49:25 +08:00
zhongwencool bfadcebb9c chore: remind the user to delete bad appid/username. 2022-03-16 15:23:10 +08:00
zhongwencool f70d777623 chore: update appup 2022-03-16 11:19:25 +08:00
zhongwencool b44512cdab fix: Add string legitimacy check. 2022-03-16 10:31:41 +08:00
William Yang 81ed61b001 feat: add load control app 2022-03-15 14:02:42 +01:00
zhongwencool dd86ece33e
Merge pull request #7308 from zhongwencool/set-keepalive-via-body
feat: Support set keepalive via queryString & Body HTTP API.
2022-03-15 14:30:42 +08:00
zhongwencool 4adc914372 feat: Support set keepalive via queryString & Body HTTP API. 2022-03-15 10:40:01 +08:00
Chris Hicks 32fac8b67b
Merge pull request #7299 from mononym/fix-typo-in-log-message
fix: typo in log message
2022-03-14 12:55:04 +01:00
Chris 55eddfa16c fix: typo in log message 2022-03-14 10:18:18 +01:00
JimMoen 8ea84e4a01 chore(appup): update appup.src 2022-03-10 12:12:42 +08:00
JimMoen c0b688b51f feat(frame): utf-8 string check in `strict_mode` 2022-03-10 11:23:44 +08:00
Zaiming (Stone) Shi 27617539f1 fix(appup): adjust update-appup.sh for 4.4. 2022-03-08 19:31:21 +01:00
Zaiming (Stone) Shi 571456b3c4 Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-03-08 18:59:38 +01:00
Zaiming (Stone) Shi d8e29f19cb refactor(appup): always generate appup from script 2022-03-08 13:24:54 +01:00
DDDHuang fbd70b02bc fix: override plugins list 2022-03-07 10:32:49 +08:00
DDDHuang 278fa96bc1 fix(plugins): usort plugin list 2022-03-04 10:46:09 +08:00
JianBo He a94dc87c34 chore: add missed appup instructions 2022-03-03 11:20:50 +08:00
JianBo He f0be91b7fd Merge remote-tracking branch 'ce/main-v4.3' into merge-main-v4.3-into-v4.4 2022-03-03 11:13:45 +08:00
Shawn 77e3c1d3ac feat(relup): support providing 'Extra' parameter from appup.src 2022-03-02 10:48:10 +08:00
Shawn 41afbd2b13 refactor(relup): don't collect relvsn -> appvsn mappings 2022-03-01 23:10:11 +08:00
Zaiming (Stone) Shi cca9e52c9a chore(appup): add missing appup instructions 2022-03-01 11:41:52 +01:00
Shawn 7698ad7c4b chore(relup): print more info after release upgrade complete 2022-03-01 17:15:19 +08:00
zhongwencool b1816a6647 fix: add uptime/1 for CT test. 2022-03-01 14:19:37 +08:00
zhongwencool ed41a66c6e fix: rpc get node info maybe crash when emqx_sys process is not start yet. 2022-03-01 14:19:35 +08:00
Shawn a7791b6c58 fix(relup): download to 4.4.0 failed with error bad_lib_vsn 2022-03-01 11:33:49 +08:00
Shawn bcd56d3db2 Merge branch 'main-v4.4' into inject_relup_instructions_v4.4 2022-02-28 19:13:55 +08:00
Shawn 28bd2fcfa4 fix(relup): release upgrade failed with {bad_lib_vsn,emqx,"4.4.2"} 2022-02-27 20:04:21 +08:00
Shawn 17440b2b53 fix(relup): add module emqx_relup 2022-02-27 10:25:57 +08:00
Zaiming (Stone) Shi cc8168ba23 chore(appup): commit script updated emqx.app.src 2022-02-26 16:45:55 +01:00
Zaiming (Stone) Shi c157a16907 Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4 2022-02-26 01:05:06 +01:00
Thales Macedo Garitezi cf1cc7e9db
chore(appup): update appup files 2022-02-24 17:14:47 -03:00
Thales Macedo Garitezi 6b93127ecb
fix(sys_mon): guard before calling `erlang:port_info`
Port of #7108 .

Sometimes, the `emqx_sys_mon:procinfo/1` might be called with
something that is not a port, like `[]`.  Not sure on the conditions
for this to happen.

```
2022-02-18T20:05:02.671592+00:00 [error] Generic server emqx_sys_mon terminating. Reason: {badarg,[{erlang,port_info,[[]],[{error_info,#{module => erl_erts_errors}}]},{emqx_sys_mon,portinfo,1,[{file,"/emqx/apps/emqx/src/emqx_sys_mon.erl"},{line,205}]},{emqx_sys_mon,'-handle_info/2-fun-5-',2,[{file,"/emqx/apps/emqx/src/emqx_sys_mon.erl"},{line,150}]},{emqx_sys_mon,suppress,3,[{file,"/emqx/apps/emqx/src/emqx_sys_mon.erl"},{line,184}]},{gen_server,try_dispatch,4,[{file,"gen_server.erl"},{line,695}]},{gen_server,handle_msg,6,[{file,"gen_server.erl"},{line,771}]},{proc_lib,wake_up,3,[{file,"proc_lib.erl"},{line,236}]}]}. Last message: {monitor,<0.7796.0>,busy_dist_port,[]}. State: #{events => [{busy_dist_port,#Port<0.127>}],timer => #Ref<0.2758388682.1853620226.133920>}.
```
2022-02-24 16:28:35 -03:00
JianBo He d622eb848f refactor(cm): rename takeover -> request_stepdown
see: https://github.com/emqx/emqx/pull/7026#pullrequestreview-891954135
2022-02-24 14:43:46 +08:00
JianBo He 4673ca43a0 chore(emqx): update appup.src 2022-02-24 11:51:00 +08:00
JianBo He bfd0fd9019 refactor(cm): rename call_or_kill to takeover 2022-02-24 11:50:57 +08:00
JianBo He 6dd0b49dd2 feat(cm): force shutdown of processe that cannot answer takeover event
Related PR: #6030
2022-02-24 09:53:17 +08:00
William Yang 372ea29d96 fix: upgrade code, system mem false alarm 2022-02-23 09:38:54 +01:00
William Yang 841d6d5036 fix: system mem false alarm 2022-02-23 09:14:28 +01:00
JianBo He 6b720286c6 chore: fix bad sytanx for emqx.appup.src 2022-02-22 11:55:20 +08:00
JianBo He 521bdd20b4 Merge remote-tracking branch 'ce/main-v4.3' into merge-main-v4.3-into-v4.4 2022-02-22 11:43:46 +08:00
JianBo He a2d8405f99 chore: update appup.src 2022-02-22 10:30:52 +08:00
JianBo He b802bcb6fc refactor(exproto): pre-register the anonymous client 2022-02-22 10:23:16 +08:00
JimMoen 31b006a0d1 fix(frame): `server_keepalive` only for MQTT v5.0 2022-02-21 18:46:53 +08:00
Ilya Averyanov 557c52dd8a chore(codestyle): remove Elvis 2022-02-18 20:35:19 +03:00
JianBo He a42927f173 chore(emqx): fix mutiply defined module in emqx.appup.src 2022-02-16 13:46:38 +08:00
Thales Macedo Garitezi 3f31df2297
docs: add comment explaining application and release vsn discrepancy 2022-02-14 13:18:53 -03:00
Thales Macedo Garitezi acf3b8cbe9
chore(emqx): update appup 2022-02-14 13:18:07 -03:00
Thales Macedo Garitezi 8302cac329
fix(channel): wrong case clause when alias is inexistent
Fixes #6978 .
2022-02-14 13:18:07 -03:00
JianBo He a88dd4aaa5 Merge tag 'v4.3.12' into main-v4.4 2022-02-14 19:37:59 +08:00
DDDHuang e9f1af8098 feat(ws): appup remove old 2022-02-11 11:16:31 +08:00
DDDHuang c6bafd5131 feat(ws): appup 2022-02-11 11:04:14 +08:00
DDDHuang 0bb01210ae feat(ws): more client metrics 2022-02-11 10:50:46 +08:00
Shawn 646ef25d96
Merge branch 'main-v4.3' into fix-ctl-print-43 2022-02-10 19:13:29 +08:00
Zaiming (Stone) Shi 1392fa0b1d Merge remote-tracking branch 'origin/main-v4.3' into merge-v4.3-to-v4.4 2022-02-10 11:25:17 +01:00
Shawn 8cf268dffb fix: emqx_message:format/1 failed on undefined message id 2022-02-10 12:43:39 +08:00
Shawn 038136fc83 fix(appup): update appup file for module emqx_message 2022-02-10 11:04:25 +08:00
Shawn 3b5b4b99ed fix(log): format the message id to hexstring before printing 2022-02-10 09:47:33 +08:00
Thales Macedo Garitezi e053700441
style: please elvis checks 2022-02-09 11:02:05 -03:00
Thales Macedo Garitezi 5e223ac64f
chore(appup): update appup files 2022-02-09 09:54:39 -03:00
Thales Macedo Garitezi b968d4c416
fix(ctl): fix formatting when printing messages without arguments (4.3)
Without passing an empty argument list to `emqx_ctl:print`, formatting
instructions like `~n` are being printed literally.

```
Ignore.~nJoin the cluster successfully.~nCluster status: #{running_nodes =>
                      ['emqx@emqx-0.int.thalesmg','emqx@emqx-1.int.thalesmg',
                       'emqx@emqx-2.int.thalesmg','emqx@emqx-3.int.thalesmg',
                       'emqx@emqx-4.int.thalesmg'],
                  stopped_nodes => []}
```
2022-02-09 09:36:27 -03:00
Shawn 31a68f4627 fix(appup): No such module: emqx_mod_sup 2022-01-28 14:33:18 +08:00
Shawn 0500c475cf fix(appup): Multiply defined module: emqx_slow_subs 2022-01-28 12:22:29 +08:00
Shawn d15fd95ad4 fix(appup): Multiply defined module: emqx_session 2022-01-28 11:54:10 +08:00
Shawn 791b22f151
Merge branch 'main-v4.4' into copy_of_main-v4.3 2022-01-27 18:46:49 +08:00
Shawn 6319c3402f fix(appup): Multiply defined module: emqx_metrics
make emqx-zip failed:

```
===> Error generating relup:
          Multiply defined module: emqx_metrics
```
2022-01-27 18:01:17 +08:00
zhongwencool e2dec09b0d fix(alarm): watermark replace >= =< with > < 2022-01-27 11:59:48 +08:00
zhongwencool 9d633507f5 fix(appup): add emqx.erl to appup.src 2022-01-26 14:32:00 +08:00
Zaiming (Stone) Shi 16a5eb4493 Merge remote-tracking branch 'origin/main-v4.3' into merge-v4.3-to-v4.4 2022-01-25 22:29:01 +01:00
DDDHuang 2eae1088ac fix(metrics): client metrics key name 2022-01-25 17:11:22 +08:00
zhongwencool 78f294cda2 fix: sys_mem alarm is not triggered after reboot. 2022-01-25 16:12:17 +08:00
lafirest 0fadc85c15
Merge pull request #6841 from lafirest/fix/slow_subs_qos2
fix(emqx_slow_subs): fix qos2 pattern matching error
2022-01-24 17:35:25 +08:00
lafirest 954e85bb73 fix(emqx_slow_subs): fix qos2 pattern matching error 2022-01-24 17:03:37 +08:00
JianBo He b635d56aec Merge branch 'main-v4.3' into merge-main-v4.3-into-v4.4 2022-01-21 16:27:56 +08:00
JianBo He 14538e5f6d chore(emqx): update appup.src 2022-01-21 14:24:01 +08:00
JianBo He c56be7dcd7 refactor(metrics): more clear for acl metrics
For clarity in the meaning of metrics, we put `client.acl.allow`,
`client.acl.deny` into emqx_metrics and increased after a acl checking
returned.
2022-01-21 11:21:25 +08:00
lafirest e82c73988b
Merge pull request #6790 from lafirest/fix/slow_subs
fix(emqx_slow_subs): add ClientInfo into the args of the delivery.com…
2022-01-19 15:54:44 +08:00
lafirest 46f86204c0 fix(emqx_slow_subs): add ClientInfo into the args of the delivery.completed hook 2022-01-19 14:02:30 +08:00
zhongwencool 24f8c353dc Merge branch 'main-v4.4' into sync-from-4.3-to-4.4 2022-01-19 11:24:57 +08:00
lafirest 6414f7e55a fix(emqx_slow_subs): add compatibility for old code 2022-01-19 09:50:31 +08:00
lafirest 696acbfc5c fix(emqx_slow_subs): change on_publish_completed to on_delivery_completed 2022-01-19 09:50:31 +08:00
lafirest 0a85e71e09 fix(appup): add slow subs into appup file 2022-01-19 09:50:31 +08:00
lafirest 44fe882f14 refactor(emqx_slow_subs): refactor slow subs 2022-01-19 09:50:31 +08:00
DDDHuang 040d04c9fb fix(test): for paho qos3 2022-01-18 18:46:03 +08:00
lafirest deada0ea44 chore(appup): update appup file and esockd version 2022-01-18 16:26:01 +08:00
lafirest eb003e3305 feat(emqx_limiter): add support for update overall limiter 2022-01-18 14:06:26 +08:00
DDDHuang 578199ad3a fix: client metrics count with qos 2022-01-18 10:38:06 +08:00
DDDHuang 6278951d57 fix: code style 2022-01-17 15:43:59 +08:00
DDDHuang 5397d80680 feat(metrics): session metrics & api format 2022-01-17 15:15:00 +08:00
DDDHuang 1ce77de080 feat(metrics): client metrics 2022-01-17 14:51:46 +08:00
Shawn 1daf2e4fc9
fix(appup): add emqx_alarm into appup file 2022-01-14 15:57:50 +08:00
Shawn 2da30465de fix(merge): solve conflicts when merge 4.4 to 4.3 2022-01-14 15:45:33 +08:00
zhongwencool 729ab6f60d
Merge branch 'main-v4.3' into auth-mnesia-default-import 2022-01-14 11:29:41 +08:00
zhongwencool ab18020eea
Merge pull request #6736 from zhongwencool/support-license-alarm-type
chore(alarm): support license alarm type
2022-01-14 11:19:48 +08:00
zhongwencool 9a17bcfcc9 chore(appup): update eqmx.appup.src 2022-01-14 11:03:27 +08:00
zhongwencool 7c0d70cfde feat(license): license expriy early alarm. 2022-01-14 00:31:56 +08:00
Shawn 4abcab8d52 fix(appup): update appup files for emqx,emqx_sn,rule_engine 2022-01-13 18:37:22 +08:00
zhongwencool c6a571c207 chore(alarm): support license alarm type 2022-01-13 17:41:16 +08:00
JianBo He b3862fb283 chore: fix the app vsn and appup.src 2022-01-13 17:30:20 +08:00
Shawn a6408cee4f fix(session): update testcases for emqx_session 2022-01-13 15:28:18 +08:00
Shawn 9f7f5070b2 fix(channel): update the calls to emqx_session APIs 2022-01-13 13:33:27 +08:00
Shawn 217acc0154 feat(rule): add new event 'delivery_dropped' 2022-01-12 20:11:08 +08:00
Shawn 9434c0fa6c feat(hook): new emqx hook 'delivery.dropped' 2022-01-12 18:34:20 +08:00
JianBo He b297388c20 Merge branch 'main-v4.3' into merge-main-v4.3-into-v4.4 2022-01-11 10:03:28 +08:00
JianBo He 02dc216173 chore: update appup.src 2021-12-23 08:48:24 +08:00
JianBo He cb8a3725b4 fix: disconnect the client due to exceed receive-maximum packets
As described in the 5.0 specification, we should disconnect clients that
exceed the receive-maximum limit.

> If it receives more than Receive Maximum QoS 1 and QoS 2 PUBLISH packets
where it has not sent a PUBACK or PUBCOMP in response, **the Server uses a
DISCONNECT packet with Reason Code 0x9**

fix: #6447
2021-12-23 08:48:24 +08:00
Shawn 799aabdd04 chore(emqx): bump emqx to 4.4.0 2021-12-20 15:12:09 +08:00
Zaiming (Stone) Shi c1cbf39552 fix(appup): add missing beams to emqx.appup.src
also re-formated emqx_sn.appup.src
2021-12-17 13:41:25 +01:00
zhongwencool b592565363 fix: trace not work if client is utf8 2021-12-15 09:53:46 +08:00
JimMoen d76159d543 Merge remote-tracking branch 'emqx/main-v4.3' into sync-from-v4.3 2021-12-13 18:46:23 +08:00
JimMoen 24060285c5 chore(appup): update appup.src 2021-12-10 18:08:47 +08:00
JimMoen 3ecc79e1bc test(frame): test packet proxy_protocol config disabled 2021-12-10 18:08:47 +08:00
JimMoen b9acf94fd7 feat(frame): better log for proxy_protocol config disabled 2021-12-10 18:08:47 +08:00
tigercl 2ed5e01054
Merge branch 'main-v4.4' into sync-from-v4.3 2021-12-09 18:49:38 +08:00
Thales Macedo Garitezi d435f1211e
fix(live_conn): fix live connection count on race condition
When multiple clients try to connect concurrently using the same
client ID, they all call `emqx_channel:ensure_connected`, increasing
the live connection count, but only one will successfully acquire the
lock for that client ID.  This means that all other clients that
increased the live connection count will not get to call neither
`emqx_channel:ensure_disconnected` nor be monitored for `DOWN`
messages, effectively causing a count leak.

By moving the increment to `emqx_cm:register_channel`, which is only
called inside the lock, we can remove this leakage.

Also, during the handling of `DOWN` messages, we now iterate over all
channel PIDs returned by `eqmx_misc:drain_down`, since it could be
that one or more PIDs are not contained in the `pmon` state.
2021-12-08 10:33:57 -03:00
Zaiming (Stone) Shi c2cc3c78f1
Merge pull request #6395 from zhongwencool/sync-from-4.3
Sync from 4.3
2021-12-08 10:57:55 +01:00
lafirest e651becd99 fix(emqx_slow_subs): fix threshold related bugs
1. limit the interval between calling hooks
2. improve the code of update threshold
2021-12-08 15:05:39 +08:00
zhongwencool 2c2145dfe6 Merge branch 'main-v4.3' into sync-from-4.3 2021-12-07 23:20:01 +08:00
Tobias Lindahl 2348e612fa fix(emqx_channel): fix race condition in session takeover
Sessions must not enqueue messages when another process is taking over
the client id, since it already passed on the message queue in the
session state.

Without this fix, messages arriving after `{takeover, 'begin'} to a
channel with no connection (i.e., a persistent session) would be lost.
2021-12-07 16:05:49 +01:00
JimMoen 14aa408b5e style: make elvis happy 2021-12-07 14:17:33 +08:00
JimMoen c5e28bd32b fix(vm): add literal_alloc memory calculation 2021-12-07 14:17:33 +08:00
lafirest 3f49e3186c fix(emqx_slow_subs): add default threshold macro 2021-12-06 17:22:36 +08:00
lafirest 48f8c735ea feat(emqx_slow_subs): add dyanamic threshold 2021-12-03 18:11:07 +08:00
JianBo He ef6f867304 chore(conn): change terminated print to debug level 2021-12-02 18:01:36 +08:00
lafirest 8dd4d88d5b
fix(emx_slow_updates): fix the error of topk update (#6312) 2021-11-26 14:57:25 +08:00
lafirest fef3fc27cb
refactor(emqx_slow_subs): refactor use moving average (#6287)
* refactor(emqx_slow_subs): refactor use moving average

* fix(emqx_slow_subs): change elapsed to latency, and fix some error

* fix(emqx_slow_subs): fix emqx_mgmt_api.erl indent

* fix(emqx_slow_subs): change api name

* fix(emqx_slow_subs): fix and improve some code

* fix(emqx_slow_subs): move clienid filed from latency_stats to session
2021-11-26 10:42:15 +08:00
Thales Macedo Garitezi 64ce2eea1c
chore(appup): run ./scripts/update_appup.escript to bump vsns 2021-11-25 12:08:02 -03:00
Thales Macedo Garitezi 0260db6640
feat(sys_mon): Add proc_lib:initial_call/1 and current_stacktrace (4.3)
(Same as #6289 )

This adds the information from `proc_lib:initial_call/1` and the
current stacktrace from the process info to `emqx_sys_mon:procinfo/1`
to aid in debugging some warnings with no context such as the
following:

```
2021-11-23T12:33:59.387818+00:00 [warning] info: [{old_heap_block_size,45988046},{heap_block_size,22177879},{mbuf_size,0},{stack_size,40},{old_heap_size,22354134},{heap_size,7106339}], line: 130, mfa: emqx_sys_mon:handle_info/2, msg: large_heap, procinfo: [{pid,<0.2667.0>},{memory,579763664},{total_heap_size,68510672},{heap_size,22177879},{stack_size,40},{min_heap_size,233},{initial_call,{proc_lib,init_p,5}},{current_function,{gen,do_call,4}},{registered_name,[]},{status,running},{message_queue_len,360945},{group_leader,<0.1660.0>},{priority,normal},{trap_exit,false},{reductions,16493271},{last_calls,false},{catchlevel,4},{trace,0},{suspending,[]},{sequential_trace_token,[]},{error_handler,error_handler}]
```
2021-11-25 12:08:02 -03:00
Zaiming (Stone) Shi 2514f474b0
Sync v4.3 to v4.4 (#6262)
* fix(http): fix duplicate http headers

* chore(appup): add appup.src

* fix(appup): fix multiply defined module in appup

* chore(appup): fix wrong version

* chore(ekka): Bump version to 0.8.1.5

* fix(update_appup): Fix warnings, add support for external repos

* build: use find command's -delete option

* ci: do not sync master branch

* build: ensure openssl11

* build: copy only libcrypto and libtinfo

* fix(trace): handler_id now always return atom

Co-authored-by: zhouzb <zhouzb@emqx.io>
Co-authored-by: k32 <10274441+k32@users.noreply.github.com>
2021-11-23 09:33:20 +08:00
Zaiming Shi 0f52824872 refactor(trace): hash non-printable or too long names 2021-11-22 16:59:17 +01:00
Zaiming (Stone) Shi 1c64a9d95d
Merge pull request #6251 from zhongwencool/log-trace-api
feat: add support ip_address trace options
2021-11-22 16:19:53 +01:00
zhongwencool 30fb9dd7ae fix: name must be printable unicode and len < 256 2021-11-22 22:20:02 +08:00
zhongwencool a91f975dc2
fix: make sure keepalive only 0~65535 (#6232) 2021-11-22 18:08:48 +08:00
zhongwencool d76275d17d feat: add support ip_address trace options 2021-11-22 15:20:24 +08:00
zhouzb 3b25df9b47 fix(appup): fix multiply defined module in appup 2021-11-17 15:18:16 +08:00
zhouzb f948eb927d chore(appup): add appup.src 2021-11-17 14:31:37 +08:00
zhouzb 5e3fe6714e fix(http): fix duplicate http headers 2021-11-17 14:14:12 +08:00
Zaiming Shi 88efc6612d Merge remote-tracking branch 'origin/main-v4.4' into chore/rename-packages-name 2021-11-16 09:47:13 +01:00
Zaiming Shi 2dc63cffea fix(emqx_misc): call gen_tcp to decide if ipv6_probe is supported 2021-11-16 08:37:53 +01:00
Zaiming Shi d05e2ff0b1 Merge remote-tracking branch 'origin/main-v4.3' into main-v4.4-alpha.1 2021-11-15 13:41:51 +01:00
lafirest 0357f7ad85
improve(emqx_st_statistics): optimize the parameters of on_publish_done (#6151)
* fix(emqx_st_statistics): optimize the parameters of on_publish_done
2021-11-15 11:00:04 +08:00
JianBo He 641f36514f chore: fix elvis warnings 2021-11-15 09:50:32 +08:00
JianBo He 6fb3ff1f9f feat(exhook): expose headers for on_messages_publish hook 2021-11-15 09:50:32 +08:00
zhongwencool 8bf6668e4c
Set keepalive via http api (#6143)
* feat: set keepalive over http api

* chore: elvis warning

* fix: bump retainer to 4.4.0
2021-11-12 20:11:59 +08:00
lafirest a4a7cac647
fix(eqmx_st_statistics): add ignore_before_create in config (#6140)
1. allows not to process the message before the session is created
to solve the problem caused by clean session = false
2. fix some elvis errors
2021-11-12 14:00:48 +08:00
zhongwencool 835ad52498
feat(trace): http api for trace (#6052)
* feat(trace): add http trace API

* feat: sub/unsub trace topic

* chore(trace): stream log use _page and _limit

* fix: elvis warning

* fix: mod_trace test failed

* fix: http api meta rename _page/_limit to _page/_limit

* fix: clientid string not working

* fix: add emqx_mod_trace to module

* fix(trace): fixed by review suggestions
2021-11-11 14:54:40 +08:00
JianBo He 86b8d88165 chore(emqx): update appup.src 2021-11-11 11:55:57 +08:00
JianBo He 8f07f26744 fix: ensure starting listeners before plugins 2021-11-11 11:37:54 +08:00
Zaiming Shi 6222e1b0eb Merge remote-tracking branch 'origin/main-v4.3' into sync-v4.3-to-v4.4 2021-11-08 21:01:14 +01:00
Thales Macedo Garitezi b9270ad719
feat(stats): track live / connected channel count for monitoring
In order to correctly display the number of connected clients in our
monitor dashboard, we need to track those connections that are
actually connected to clients, not considering connections from
persistent sessions that are disconnected.  Today, the
`connections.count` that is displayed in the dashboards considers
those disconnected persistent sessions as well.
2021-11-08 14:45:57 -03:00
k32 7d07e8d948 chore(emqx): Update version and appup file 2021-11-08 14:24:37 +01:00
k32 27afecb3ac fix(emqx_connection): Introduce backpressure while sending data
Fixes #5494
2021-11-04 15:25:34 +01:00
JianBo He f36abc281a chore(types): add comment for ver type 2021-11-04 09:11:02 +08:00
lafirest f8acb31f89 feat: add slow topics statistics plugin 2021-11-03 17:20:07 +08:00
JianBo He 2c4d3d1d24 chore(stomp): fix dialyzer warnings 2021-11-02 17:09:57 +08:00
JianBo He 763f567f7d chore(appup): update appup.src 2021-11-01 18:35:41 +08:00
JianBo He c9d39b4d35 chore(channel): remove redundant logs
Multiple sock_closed events may be generated,
so we need to allow sock_closed events to be reentrant
2021-11-01 18:17:38 +08:00
Zaiming Shi fb62487801 fix(emqx/appup): add emqx_cm to appup 2021-10-30 16:39:04 +02:00
Zaiming Shi 7f4809f61a fix(session): force kill session for 'kick' and 'discard'
Prior to this fix, 'kick' and 'discard' calls may timeout (or
fail for other reason), failures lead to only a log, then
continue to allow the new session to get registered.

As a result, in case a client is stuck, there is no way to
force it to step down, end up with multiple connections (sessions)
for the client ID in dashboard.

After this fix, the stale pids are notified to shutdown
via a gen_server:call, and forced with a exit(Pid, kill) for any
exception happend to the gen_server:call
2021-10-30 16:38:36 +02:00
Zaiming Shi 9038da0bd2 fix(ws_connection): check origin failure should return 403 not 500 2021-10-15 15:49:26 +08:00
k32 4643415b0b chore(appup): Update appup scripts 2021-10-12 17:45:10 +02:00
Ilya Averyanov 85723e4a35 fix(emqx_rpc): removed unnecessary call wrapper 2021-10-11 15:20:31 +03:00
Zaiming Shi 7804b39e08 chore(emqx.app): bump emqx app to vsn 4.3.10
app 4.3.9 was release as a part of enterprise e4.3.4
but opensource v4.3.9 is not releasd yet, but we have
to bump app version to 4.3.10 to make appup work for the next
release (either opensource or enterprise).
2021-10-05 12:03:47 +02:00
JimMoen 19031e21ec fix(frame): variable byte integer could be larger than 4 bytes. 2021-09-28 15:15:05 +08:00
k32 9b097ac73f chore(mqueue): Remove forgotten debug message 2021-09-07 11:33:16 +02:00
k32 5fc1036cf7 chore(mqueue): Implement live upgrade 2021-09-06 23:15:14 +02:00
k32 ed61999fdf chore(emqx): Bump version 2021-09-06 22:22:48 +02:00
k32 4eacaa29bd feat(mqueue): Interleave messages with different priorities 2021-09-06 22:22:48 +02:00
Shawn 1245020ec0 fix(force_shutdown): add some comments for the range of max_heap_size 2021-08-13 09:46:49 +08:00
Shawn 844133c7c5 fix(appup): always reload emqx_app 2021-08-13 09:46:49 +08:00
Shawn f9601804e5 chore(emqx): bump the emqx version to 4.3.8 2021-08-13 09:46:49 +08:00
Shawn 31a1942b61 fix(force_shutdown): cannot suicide if the process hangs up 2021-08-13 09:46:49 +08:00
Turtle c45de03ac8 chore(version): update emqx version to 4.3.7
Signed-off-by: zhanghongtong <rory-z@outlook.com>
2021-08-05 10:00:03 +08:00
Turtle 87ee94b6f2 chore(version): update emqx version to 4.3.7 2021-08-04 18:44:47 +08:00
JianBo He d3d019cb89 chore(emqx): update appup.src 2021-07-28 13:54:13 +08:00
JianBo He 07c29e8c55 chore(acl): support ipaddr list 2021-07-28 13:54:13 +08:00
Zaiming Shi dd23ee6b15 fix(emqx_app): stop listeners in application prep_stop callback
Application:stop is call after the root supervisor is stopped,
in our case, prior to this fix, emqx_sup is stopped before
the listeners (hence the emqx_connection processes).

This causes shutdown to emit a lot of error logs
e.g. emqx_broker pool is down, but emqx_connection process is still
trying to call the pool
2021-07-28 08:52:04 +08:00
Turtle 5edb5351b0 chore(relup): update emqx appup 2021-07-16 19:01:05 +08:00
JianBo He 46d0cb69dc chore(emqx): update appup.src 2021-07-13 17:53:34 +08:00
JianBo He 240a4b88a5 fix(cm): add a timeout to rpc_call function
An infinite wait will leave the client process waiting for
a return and cause the client to go to a dead state
2021-07-13 17:53:34 +08:00
Shawn 5fbf83e7f0 fix(shared_sub): discard all unexpected msgs 2021-06-28 09:37:34 +08:00
Shawn 513cd001ac chore(appup): update the appup for 4.3.5 2021-06-25 20:38:43 +08:00
Shawn 868cd6e57c fix(shared_sub): failed to clean the emqx_shared_subscription tab
A trick that fixes the issue that we demonitored the shared subscriber
too early if it not unsubscribed all of the topics.
2021-06-25 20:38:43 +08:00
Turtle 1a438125c7 chore(review): review 4.3.4 2021-06-23 17:51:17 +08:00
JianBo He 3ddbdbc6c1
fix(emqx_cm): catch noproc exception from rpc_call (#5048) 2021-06-23 09:45:24 +08:00
JianBo He bbed1b55e0 fix(ws): avoid funcation_clause for un-inited websocket 2021-06-15 11:27:47 +08:00
JianBo He 42a6f2aba5
fix(mqttsn): fix proto_name to MQTT-SN instead of MQTT (#4961) 2021-06-11 11:08:24 +08:00
Turtle eac04b243f fix(relup): fix relup badfun 2021-06-05 02:02:16 +08:00
Zaiming Shi 8bf3c511d8 test: fix a flacky test case 2021-06-04 16:04:58 +02:00
Zaiming Shi 54458e3924 chore(appup): ensure emqx_app alwasy loaded in appup 2021-06-03 13:02:49 +02:00
Tobias Lindahl 981364341e chore(appup): load emqx_channel in appup
Note that the large whitespace diff on the appup file is because this
is the first time the new script for modifying appup files is used.
2021-06-03 12:22:58 +02:00
Tobias Lindahl 90529e18c6 fix: including subscription id keeps correct return code for qos > 0
When subscription id is set, the return code was set to 0 rather than
the provided qos number due to earlier fix of acl check order.
2021-06-03 10:44:13 +02:00
JianBo He 3a89b1f00b
chore(action): fix syntax error (#4885) 2021-05-31 15:08:52 +08:00