Commit Graph

887 Commits

Author SHA1 Message Date
Thales Macedo Garitezi b0e8e9dc28 refactor(crl): use cast for refreshing crls 2022-11-08 13:53:27 -03:00
Thales Macedo Garitezi 2713af507a refactor: move OCSP options into its own section 2022-11-08 13:19:14 -03:00
Thales Macedo Garitezi c23c534525 refactor: fix typo, add more detail, rename option to be more clear 2022-11-08 10:42:38 -03:00
Thales Macedo Garitezi 11175b55f8 fix(ocsp): allow disabling ocsp without touching url 2022-11-07 17:50:02 -03:00
Thales Macedo Garitezi 26d2ed3d31 fix(crl): allow specifying CRL URLs per listener 2022-11-07 16:42:51 -03:00
Zaiming (Stone) Shi 51a959c3b4 Merge remote-tracking branch 'origin/release-v44' into ocsp-rv44 2022-11-07 10:18:15 +01:00
Zaiming (Stone) Shi 3346f2a26c Merge remote-tracking branch 'origin/release-v44' into 1104-ci-split-ct-runs 2022-11-04 14:34:24 +01:00
Thales Macedo Garitezi 7f4ffee7b5 feat: add jwt worker for rule actions
Will be used in GCP PubSub resource for EE.
2022-11-04 09:38:11 -03:00
Zaiming (Stone) Shi 2062911e3b Merge remote-tracking branch 'origin/release-v43' into release-v44 2022-11-04 13:28:12 +01:00
Zaiming (Stone) Shi 7dfa83f3c6
Merge pull request #9223 from emqx/av/parallelCTruns
ci(test): test parallel CT runs on self-hosted runners
2022-11-04 12:11:54 +01:00
Zaiming (Stone) Shi c2bc6b56ec test: ensure all modules are loaded for takeover_SUITE 2022-11-03 20:33:00 +01:00
JianBo He a73eb29196 chore: avoid side effects from boot modules 2022-11-04 00:41:05 +08:00
Thales Macedo Garitezi af4141bef4 chore(oscp_crl): port OCSP and CRL features to CE repo (re4.4) 2022-11-03 10:10:16 -03:00
Zaiming (Stone) Shi d25b614a93 Merge remote-tracking branch 'origin/release-v43' into release-v44 2022-11-03 11:43:50 +01:00
Zaiming (Stone) Shi 0ab5ac95bb test: refactor emqx_takeover_SUITE 2022-11-02 21:09:24 +01:00
Zaiming (Stone) Shi f4621d3c71 test: connect MQTT client with a retry 2022-11-02 20:06:26 +01:00
Zaiming (Stone) Shi 3d7dd4f738 test: ensure $mqtt_pub_caps is cleared after test run 2022-11-02 19:20:39 +01:00
Zaiming (Stone) Shi e0db524a10 refactor: change the format of auth_order and acl_order configs 2022-11-02 11:49:55 +01:00
Ilya Averyanov 52652f6c96 feat(hooks): add config options to set explicit callback order 2022-11-01 19:39:52 +01:00
Zaiming (Stone) Shi fd7a8064f4 Merge remote-tracking branch 'origin/release-v43' into release-v44 2022-10-19 19:25:43 +02:00
Zaiming (Stone) Shi a163ffce7c test: assert message receive pid is in the expected pids list 2022-10-19 18:16:38 +02:00
Zaiming (Stone) Shi 73a5462cba fix(shared): do not redispatch shared messages for certain shutdown
For takeover, there should be no message re-dispatch because
the messages will be retried by the new session.

For kick, messages should not be re-dispatched for security reason.
i.e. if admin has identified that there are malicious messages
stored in persisted sessions, killing the session should not
cause messages to be re-dispatched
2022-10-19 17:21:56 +02:00
JianBo He 85aa120b06 Merge branch 'release-v43' into release-v44 2022-10-11 10:24:22 +08:00
JianBo He 2f178fa8f1
Merge branch 'release-v43' into enhance-flapping-detect 2022-10-10 09:40:49 +08:00
Zaiming (Stone) Shi cf5f1fd78c
Merge pull request #9094 from emqx/1004-fix-wildcard-redispatch-for-shared-subs
chore: fix shared subscription redispatch
2022-10-09 10:32:02 +02:00
Zaiming (Stone) Shi f4ae4e67c9 Merge remote-tracking branch 'origin/release-v43' into release-v44 2022-10-09 09:33:21 +02:00
JianBo He e2b0048e88 refactor(flapping): count flapping event if connecting failed 2022-10-08 10:06:20 +08:00
Zaiming (Stone) Shi a1032db4e1 test: add test case to verify QoS 0 message is never redispatched 2022-10-05 18:07:43 +02:00
Zaiming (Stone) Shi d23dfcca39 fix(shared): only re-dispatch QoS1 inflights 2022-10-05 16:03:43 +02:00
Zaiming (Stone) Shi c8920b5499 Merge remote-tracking branch 'origin/release-v43' into release-v44 2022-10-05 12:55:21 +02:00
Zaiming (Stone) Shi d46393c45c Merge remote-tracking branch 'origin/release-v43' into 1004-fix-wildcard-redispatch-for-shared-subs 2022-10-05 12:42:03 +02:00
Zaiming (Stone) Shi 3339df8b24 test: Add test case to cover shared sub QoS2 pubrel in inflights 2022-10-05 12:38:12 +02:00
Zaiming (Stone) Shi f1a2f354c4 test: ensure module loaded for ct-slave node before starting apps 2022-10-04 13:01:56 +02:00
Zaiming (Stone) Shi ea6f2bd8d7 test: allow starting ct-slave without join cluster
This is to test/inspect states before/after join
2022-10-03 22:01:52 +02:00
Zaiming (Stone) Shi 7423646191 test: ensure emqx_modules app is started in ct-slave node 2022-10-03 17:05:35 +02:00
Zaiming (Stone) Shi 2e28d5e73e test: fix more flaky test in share sub SUITE 2022-10-03 13:02:46 +02:00
Zaiming (Stone) Shi c39116c7a5 test: fix bad ct:pal call 2022-10-03 09:22:10 +02:00
Zaiming (Stone) Shi 402553b95a test: fix false one-view check 2022-10-03 09:19:26 +02:00
Thales Macedo Garitezi ebf131266a test: fix flaky shared sub test case
the route replication is async, added a function to wait for it
2022-09-30 17:22:58 +02:00
Thales Macedo Garitezi d3c291c4d0 Merge remote-tracking branch 'origin/main-v4.3' into merge-v43-into-v44-h 2022-09-15 10:13:47 -03:00
Thales Macedo Garitezi d72ca84af0 chore: fix ignored dialyzer warnings (part 1) (4.3) 2022-09-12 10:56:35 -03:00
Zaiming (Stone) Shi 1013f221e0 Merge remote-tracking branch 'origin/dev/v4.3.20' into dev/v4.4.9 2022-09-12 09:25:07 +02:00
JianBo He 2440733a6f test: ensure shared messages queued by session 2022-09-08 13:59:23 +08:00
zhongwencool 26956784ff Merge branch 'main-v4.4' into copy-of-main-v4.3 2022-08-25 17:37:55 +08:00
Thales Macedo Garitezi a1a3f5198a test: attempt to fix flaky shared sub test
```
 %%% emqx_shared_sub_SUITE ==> t_local_fallback: FAILED
%%% emqx_shared_sub_SUITE ==> {{badmatch,[{share,<<"local_foo/bar">>,{ok,1}},
            {share,<<"local_foo/bar">>,{error,no_subscribers}}]},
 [{emqx_shared_sub_SUITE,t_local_fallback,1,
                         [{file,"/emqx/test/emqx_shared_sub_SUITE.erl"},
                          {line,411}]},
  {test_server,ts_tc,3,[{file,"test_server.erl"},{line,1783}]},
  {test_server,run_test_case_eval1,6,[{file,"test_server.erl"},{line,1292}]},
  {test_server,run_test_case_eval,9,[{file,"test_server.erl"},{line,1224}]}]}
```
2022-08-24 09:19:38 -03:00
zhongwencool 3abc9f07c6 fix: fix plugins ct failed on ee 2022-08-24 11:47:25 +08:00
zhongwencool 940ceb570d Merge branch 'main-v4.4' into copy-of-main-v4.3 2022-08-19 10:53:48 +08:00
Zaiming (Stone) Shi da05a2ad30 test: delete unknown plugin 2022-08-18 08:07:25 +02:00
Zaiming (Stone) Shi 303249e2e8 chore: move rebalance and eviction code to ee 2022-08-16 07:40:16 +02:00
zhongwencool e6a98524b5 chore: improve retainer ct init between ce and ee 2022-08-15 09:42:21 +08:00
Ilya Averyanov a19fbe214f feat(node_rebalance): implement node evacuation and rebalancing 2022-08-13 11:32:14 +03:00
zhongwencool e9a5c4295c fix: bad NeedToLoad plugins 2022-08-09 10:29:17 +08:00
zhongwencool 25228ed248 test: fix compile warning 2022-08-09 09:37:05 +08:00
zhongwencool 938607baca
Merge pull request #8587 from emqx/main-v4.3
chore: sync v4.3 to v4.4
2022-07-28 08:30:28 +08:00
ieQu1 b042498b3c
test(shared_sub): Apply remarks
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2022-07-26 15:25:01 +02:00
ieQu1 0982e8e7fd test(shared_sub): Fix gen_rpc setup 2022-07-26 15:15:25 +02:00
ieQu1 1a2a8f017c test(shared_sub): Increase timeout 2022-07-26 10:37:40 +02:00
Xinyu Liu 84c2aceba9
Merge branch 'main-v4.4' into copy-of_main-v4.3 2022-07-20 21:29:49 +08:00
zhongwencool 3248cb92e8 Merge branch 'main-v4.3' into sync-4.3-to-4.4 2022-07-19 11:02:11 +08:00
JianBo He 838ced7840 test: no shared subscription lost 2022-07-08 10:54:05 +08:00
Zaiming (Stone) Shi 998f79070d feat: add a quick deny option to allow_anonymous config
prior to this change, allow_anonymous is only true | false
when set to 'false', even if the client is connected without
a username, the auth backends will be invoked.

this commit introduced a new config value `false_quick_deny`
to deny access immediately without involving auth backends
2022-07-06 11:40:24 +02: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
firest fc4794613c test(mqtt_caps): fix t_check_sub error 2022-06-23 17:04:15 +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 b93a0743ac Merge branch 'main-v4.3' into 'main-v4.4' 2022-06-15 10:48:02 -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 7ee5f90516 Merge tag 'v4.3.15-rc.3' into merge-main-v4.3-into-v4.4 2022-05-27 11:09:11 +08:00
JianBo He 157bcffd6f
Merge branch 'main-v4.3' into shared_dispatch_full_inflight 2022-05-26 16:53:35 +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 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 ca842aa869 fix: merge main-v4.3 to main-v4.4 2022-05-23 11:23:27 +08:00
Georgy Sychev b345002e84 feat(shared): redispatch to another shared sub, when no ACK received 2022-05-18 18:28:58 +04:00
zhongwencool 761436c967 fix: don't allow empty username if username_as_clientid is true 2022-05-05 10:50:53 +08:00
firest 8a269099ad fix(frame): remove empty topic check, because it checked in emqx_channel 2022-04-18 14:23:22 +08:00
JimMoen 6168745f90 chore: update copyright 2022-04-14 11:23:25 +08:00
firest 2c47869426 test(frame): fix empty topic name case not running 2022-04-12 18:40:37 +08:00
firest eec204517f fix(frame): fix empty topic check error 2022-04-08 16:26:07 +08:00
JianBo He bf1a3fe1eb chore: eliminate some compiling warnings and improve change logs 2022-04-08 11:16:37 +08: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
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
firest bf68735664 fix(frame): forbidden empty topic in strict mode 2022-03-30 10:42:56 +08:00
JianBo He 706c7725f9 test: update test/emqx_channel_SUITE.erl
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2022-03-21 10:56:55 +08: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
JimMoen dce513df0e test(frame): malformed utf-8 packet 2022-03-10 11:39:44 +08:00
zhongwencool b1816a6647 fix: add uptime/1 for CT test. 2022-03-01 14:19:37 +08: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 f121f9616e chore: rename testcase name 2022-02-24 17:26:17 +08:00
JianBo He 66807f17df test(cm): cover {takeover, 'begin'/'end'} action 2022-02-24 09:53:17 +08:00
Thales Macedo Garitezi 8302cac329
fix(channel): wrong case clause when alias is inexistent
Fixes #6978 .
2022-02-14 13:18:07 -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
zhongwencool 9d633507f5 fix(appup): add emqx.erl to appup.src 2022-01-26 14:32:00 +08:00
zhongwencool 78f294cda2 fix: sys_mem alarm is not triggered after reboot. 2022-01-25 16:12:17 +08:00
Shawn a63799742f fix(channel): update testcases for emqx_channel 2022-01-13 16:10:03 +08:00
Shawn a6408cee4f fix(session): update testcases for emqx_session 2022-01-13 15:28:18 +08:00