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