Thales Macedo Garitezi
10425eb925
feat(resource): deprecate `auto_restart_interval` in favor of `health_check_interval`
...
See:
https://emqx.atlassian.net/wiki/spaces/P/pages/612368639/open+e5.1+remove+auto+restart+interval+from+buffer+worker+resource+options
Current problem:
In 5.0.x, we have two timer options that control the state changing of buffer worker
resources: auto_restart_interval and health_check_interval.
- auto_restart_interval controls how often the resource attempts to transition from
disconnected to connected.
- health_check_interval controls how often the resource is checked and potentially moved
from connected to disconnected or connecting.
The existence of two independent timers for very similar purposes is confusing to users,
QA and even developers. Also, an intimately related configuration is request_timeout,
which can interact badly with auto_restart_interval if the latter is poorly configured:
requests may always expire if request_timeout < auto_restart_interval and if the resource
enters the disconnected state. For health_check_interval, we attempt to derive a sane
default that gives requests a chance to retry (if request timeout is finite, then the
resource retries requests with a period of min(health_check_interval, request_timeout /
3).
Another problem with the separate auto_restart_interval is that its default value (60 s)
is too high when compared to the default request timeout and health check, leading to the
problems described above if not tuned.
Proposed solution:
We propose to drop auto_restart_interval in favor of health_check_interval, which will be
used for both disconnected -> connected and connected -> {disconnected, connecting}
transition checks. With that, the resource will attempt to reconnect at the same interval
as the health check, which currently is 15 s.
Also, as two smaller changes to accompany this one:
- Increase the default request_timeout from 15 s to 45 s.
- Rename request_timeout to request_ttl.
2023-06-01 11:20:06 -03:00
Stefan Strigler
e011b5532f
Merge pull request #10881 from sstrigler/EMQX-9355-5-0-x-test-coverage-80
...
IoTDB test coverage
2023-06-01 15:48:56 +02:00
Thales Macedo Garitezi
ecbb6e0ecb
test(global_gc): fix flaky test
2023-06-01 10:48:02 -03:00
Kjell Winblad
c2c87d276f
docs: add changelog entry for too long bridge name improvement
2023-06-01 15:38:54 +02:00
Kjell Winblad
75ff76a16b
fix: friendly error message when creating bridges with too long names
...
This commit makes the error message and log entry that appear when one
tries to create a bridge with a name the exceeds 255 bytes (the max
length for atoms) more friendly and easier to understand.
An even better fix would be to not store bridge names as atoms but this
probably requires a more substantial change.
Fixes:
https://emqx.atlassian.net/browse/EMQX-9609
2023-06-01 15:30:06 +02:00
William Yang
34958cef0a
Merge pull request #10790 from qzhuyan/perf/william/explicit-default-zone
...
perf(config): read zone conf once
2023-06-01 15:28:56 +02:00
Thales Macedo Garitezi
7740987a17
Merge pull request #10905 from thalesmg/fix-enforce-binary-rootkey-config-v50
...
fix(config): enforce root key name to be a binary (raw config)
2023-06-01 10:27:48 -03:00
William Yang
eea0336045
docs: add changelog
2023-06-01 14:54:44 +02:00
William Yang
c1d9bc8033
perf(emqx_mqtt_caps): direct read mqtt from zone conf
2023-06-01 14:54:44 +02:00
William Yang
8f4a950a6f
ci(emqx-ct-standalone): enable erl distribution while start CT
2023-06-01 14:54:44 +02:00
William Yang
923913e15c
feat(config): merge with global defaults when put new zone
2023-06-01 14:54:44 +02:00
William Yang
a2f8e87389
test(config): default zone and global defaults
2023-06-01 14:54:14 +02:00
William Yang
e693c6ec54
test: fix emqx_takeover_SUITE
2023-06-01 14:52:33 +02:00
William Yang
8c26ee75db
test: remove hardcoded configs
...
test with schema defaults
2023-06-01 14:52:33 +02:00
William Yang
4416122cf3
test: fix longname/shortname
2023-06-01 14:52:33 +02:00
William Yang
8ee78ad6b4
test: fix emqx_mgmt_api_configs_SUITE
2023-06-01 14:52:33 +02:00
William Yang
f621bf1f8e
test(config): update emqx_client_SUITE
2023-06-01 14:52:33 +02:00
William Yang
98d6ed4251
test: fix emqx_session_SUITE
2023-06-01 14:52:33 +02:00
William Yang
6c1671651c
test: use zone default in emqx_eviction_agent_channel_SUITE
2023-06-01 14:52:33 +02:00
William Yang
88f9782db0
perf(config): read zone conf once
2023-06-01 14:52:30 +02:00
firest
62d7b55092
chore: update changes
2023-06-01 18:49:50 +08:00
firest
232ef23a48
feat(rocketmq): refactored bridge to avoid leaking resources during crashes at creation
2023-06-01 18:49:45 +08:00
Zhongwen Deng
7eea693422
fix: reorder authn when updating
2023-06-01 17:24:39 +08:00
Zhongwen Deng
96ee38ce15
chore: bump up authn/ctl app version
2023-06-01 17:24:39 +08:00
Zhongwen Deng
4f5d5216bb
test: bad authn handler callback module in SUITE
2023-06-01 17:24:39 +08:00
Zhongwen Deng
8f12d81878
feat: support emqx_ctl conf command
2023-06-01 17:24:39 +08:00
Zhongwen Deng
b290d2543b
fix: don't crash when command_ctl table not init
2023-06-01 17:24:39 +08:00
Zaiming (Stone) Shi
feecd53436
chore: bump to version 5.1.0-alpha.2 for both ce and ee
2023-06-01 10:13:56 +02:00
Andrew Mayorov
b5f24c4f88
Merge pull request #10900 from keynslug/fix/EEC-856/parsed-bridge-id
...
fix(ruleeng): parse bridge id on create / update
2023-06-01 10:21:26 +03:00
JianBo He
bcc5e30f22
Merge pull request #10895 from lafirest/fix/refactor_on_stop
...
feat: refactored some bridges to avoid leaking resources during crashes at creation
2023-06-01 15:17:37 +08:00
Zaiming (Stone) Shi
760de7becf
chore: imporve logging message
2023-06-01 08:26:53 +02:00
Zaiming (Stone) Shi
15ffa98bc5
chore: fix a typo in test case function name
2023-06-01 08:18:26 +02:00
Zaiming (Stone) Shi
cb2be1811e
docs: fix function doc annotation
2023-06-01 08:17:36 +02:00
firest
cb31032e6d
chore: make dialyzer && test happy
2023-06-01 11:15:51 +08:00
JianBo He
a402acdc43
Merge pull request #10897 from Kinplemelon/kinple/upgrade-dashboard
...
chore: upgrade dashboard to e1.0.8-beta.1 for ee
2023-06-01 09:46:01 +08:00
Ivan Dyachkov
239f71cecf
Merge pull request #10899 from id/0530-update-perf-test
...
0530 update perf test
2023-05-31 23:17:10 +02:00
Thales Macedo Garitezi
f83f112189
fix(config): enforce root key name to be a binary (raw config)
...
Fixes this flaky test:
https://github.com/emqx/emqx/actions/runs/5134910014/jobs/9239826162#step:8:1299
```
=ERROR REPORT==== 31-May-2023::16:16:10.710969 ===
exception: error
key_path: [listeners,tcp,default,authentication]
module: emqx_schema
msg: change_config_crashed
reason: {config_not_found,[<<"listeners">>,<<"tcp">>,<<"default">>,
<<"authentication">>]}
stacktrace: [{emqx_utils_maps,deep_get,2,
[{file,
"/__w/emqx/emqx/source/apps/emqx_utils/src/emqx_utils_maps.erl"},
{line,49}]},
{emqx_config_handler,return_change_result,2,
[{file,
"/__w/emqx/emqx/source/apps/emqx/src/emqx_config_handler.erl"},
{line,456}]},
{emqx_config_handler,check_and_save_configs,7,
[{file,
"/__w/emqx/emqx/source/apps/emqx/src/emqx_config_handler.erl"},
{line,284}]},
{emqx_config_handler,handle_update_request,4,
[{file,
"/__w/emqx/emqx/source/apps/emqx/src/emqx_config_handler.erl"},
{line,195}]},
{emqx_config_handler,handle_call,3,
[{file,
"/__w/emqx/emqx/source/apps/emqx/src/emqx_config_handler.erl"},
{line,124}]},
{gen_server,try_handle_call,4,
[{file,"gen_server.erl"},{line,1149}]},
{gen_server,handle_msg,6,
[{file,"gen_server.erl"},{line,1178}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,240}]}]
update_req: {{update,
{create_authenticator,'tcp:default',
#{backend => built_in_database,enable => true,
mechanism => password_based}}},
#{rawconf_with_defaults => true}}
```
Which was cause because there were both binary and atom `listeners`
keys in the `persistent_term` storage:
```erlang
%% persistent_term:get()
{{emqx_config,raw_conf,<<"listeners">>},
#{<<"ssl">> =>
#{<<"default">> => ...
...
{{emqx_config,raw_conf,listeners},#{}},
```
... and the atom one was winning when fetching the whole config with
`emqx_config:get_raw([])`.
2023-05-31 18:03:58 -03:00
Paulo Zulato
3a6ad3b049
fix(oracle): require either sid or service name
...
Fixes https://emqx.atlassian.net/browse/EMQX-9980
2023-05-31 17:18:45 -03:00
Thales Macedo Garitezi
b7c72e6cfb
Merge pull request #10890 from thalesmg/test-flakiness-20230530-e
...
more attempts to fix more test flakiness
2023-05-31 16:07:18 -03:00
Zaiming (Stone) Shi
be2d25515a
docs: add changelog for #10902
2023-05-31 20:44:00 +02:00
Zaiming (Stone) Shi
5146de5b1c
feat: add a backup copies for cluster.hocon
2023-05-31 20:34:25 +02:00
Zaiming (Stone) Shi
332daabcc5
fix(config): Do not sync cluster config from nodes running new version
2023-05-31 20:34:25 +02:00
Zaiming (Stone) Shi
39d6f612ca
feat(emqx_release): add new APIs to parse/compare release versions
2023-05-31 20:34:25 +02:00
Andrew Mayorov
aa98740280
Merge pull request #10903 from fix/ci-flaky-dashboard
...
test(dashboard): fix inter-suite test flakiness
2023-05-31 20:28:39 +03:00
Andrew Mayorov
f90ce9bbfe
test(dashboard): fix inter-suite test flakiness
2023-05-31 19:09:37 +03:00
Andrew Mayorov
0293b54211
fix(ft): respect checksum in `fin` packets
2023-05-31 18:50:38 +03:00
Thales Macedo Garitezi
189e2c87be
test(channel): fix flaky test
...
```
%%% emqx_channel_SUITE ==> t_handle_kicked_publish_will_msg: FAILED
%%% emqx_channel_SUITE ==> will_message_not_published
```
The problem was that the whole generated message was compared for
equality when receiving the will message, but the timestamp may be
different at publishing time...
2023-05-31 12:42:24 -03:00
JianBo He
a3a6480f00
Merge pull request #10880 from HJianBo/batch-kickout-clients
...
feat: support kickout clients in batch
2023-05-31 22:36:35 +08:00
JianBo He
8ce0132569
Merge pull request #10871 from HJianBo/fix-coap-bugs
...
fix(coap): to better handle coap requests in connection mode
2023-05-31 22:36:15 +08:00
JianBo He
c67135dd4b
Merge pull request #10598 from HJianBo/refactor_exproto_stream
...
refactor(exproto): support unary handler
2023-05-31 22:36:01 +08:00