Commit Graph

810 Commits

Author SHA1 Message Date
Zaiming (Stone) Shi 027c05af99 test(emqx_channel): fix two flaky tests 2022-11-27 13:15:06 +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
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 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 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
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 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 d72ca84af0 chore: fix ignored dialyzer warnings (part 1) (4.3) 2022-09-12 10:56:35 -03:00
JianBo He 2440733a6f test: ensure shared messages queued by session 2022-09-08 13:59:23 +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
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
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
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
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
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 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 157bcffd6f
Merge branch 'main-v4.3' into shared_dispatch_full_inflight 2022-05-26 16:53:35 +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
Georgy Sychev b345002e84 feat(shared): redispatch to another shared sub, when no ACK received 2022-05-18 18:28:58 +04:00