Andrew Mayorov
5d51687dbf
feat(router): add unified routing table config option
2023-08-28 14:07:45 +04:00
Andrew Mayorov
33e5e1ba57
feat(router): add unified routing table
2023-08-28 14:07:44 +04:00
Andrew Mayorov
166375a000
fix(topicidx): make `get_record/2` simpler to use in concurrent env
...
The mechanic of `emqx_topic_index` cannot really guarantee atomicity
of reading records associated with index matches, so instead it's
probably better to make the user aware of that lack of this guarantee.
2023-08-28 13:52:59 +04:00
Andrew Mayorov
84e40fb6fe
test(trie): add more involved route add + delete case
...
That shows how current local trie implementation breaks because
of lack of refcounting.
2023-08-28 13:52:59 +04:00
Andrew Mayorov
dcb63440bc
refactor(mgmt): avoid dealing with router tab directly
...
Instead, contain all this behind `emqx_router` module interface.
2023-08-28 13:52:59 +04:00
Andrew Mayorov
9eccfa0909
refactor(router): isolate cleanup logic in router module
2023-08-28 13:52:59 +04:00
Ilya Averyanov
39a48179ea
chore(emqx_channel): use macros for reply construction
2023-08-28 11:57:44 +03:00
Ilya Averyanov
b8cacd2833
chore(ft): add tests for async reply registry
2023-08-28 11:57:44 +03:00
Andrew Mayorov
b74ff10705
Merge pull request #11517 from keynslug/ft/topic-index-v3
...
feat(topicidx): iterate on trie search implementation
2023-08-28 12:24:16 +04:00
Ilya Averyanov
b0d4a22aa8
chore(ft): refactor async reply mechanism
2023-08-27 21:54:23 +03:00
Thales Macedo Garitezi
33a0048155
refactor: move logic to `ensure_iterator`
2023-08-25 15:24:53 -03:00
Thales Macedo Garitezi
f15f59650d
test: rm obselete workaround code
2023-08-25 13:49:33 -03:00
Andrew Mayorov
d5cff533e3
chore(topicidx): drop TODO comment
2023-08-25 16:44:03 +04:00
Andrew Mayorov
ca59a87d47
chore(topicidx): refine example of wildcard compare
2023-08-25 16:44:03 +04:00
Zaiming (Stone) Shi
558402a68e
chore(topic_index): add topic validation
2023-08-25 16:44:03 +04:00
Andrew Mayorov
33ed53bb6a
refactor(topicidx): simplify `compare/3` further
...
It's possible to emit seek instruction just once, on the way back
out of the `compare/3` stack.
2023-08-25 16:34:45 +04:00
Andrew Mayorov
fc37d235c7
refactor(topicidx): simplify seek instructions
...
Which also avoids comparing filter tail repeatedly when evaluating
it.
2023-08-25 15:24:06 +04:00
zhongwencool
c8af5a702c
test: remove connection_closed from test
2023-08-25 15:53:35 +08:00
zhongwencool
fc1738188e
fix: packets_connack_sent is not incremented if the ack_flag field in the CONNACK packet is non-zero
2023-08-25 15:18:34 +08:00
Andrew Mayorov
cf45e80c71
feat(topicidx): iterate on trie search implementation
...
This improves matching performance and decreases GC pressure on
synthetic workloads.
2023-08-25 01:47:11 +04:00
Kjell Winblad
9fe5080705
build: bump versions before release
2023-08-24 16:46:27 +02:00
Zaiming (Stone) Shi
62423b0b12
refactor(topic_index): less special handling for leading $ words
2023-08-24 13:30:10 +02:00
Zaiming (Stone) Shi
a30d87e14f
refactor(topic_index): remove more unnecessary next calls
...
also avoid using records (setelement) for recursive return values
2023-08-24 12:25:04 +02:00
Zaiming (Stone) Shi
a1e6635614
refactor(topic_index): no forced ceiling entry in index table
2023-08-24 12:25:04 +02:00
Zaiming (Stone) Shi
f4c8c6be55
refactor(topic_index): optimize trie-search performance
2023-08-24 12:25:04 +02:00
Zaiming (Stone) Shi
6b152b3cb7
test: add more debug output
2023-08-24 12:25:04 +02:00
zhongwencool
2322b27542
Merge pull request #11497 from zhongwencool/prometheus-metrics
...
Prometheus metrics
2023-08-24 12:06:32 +08:00
zhongwencool
8d2be27ade
chore: add changlog for 11466
2023-08-24 06:46:50 +08:00
zhongwencool
84dd3b83bb
fix: hocon converter not working when make_serializable is true(check_plain)
2023-08-24 06:46:47 +08:00
zhongwencool
d287b736ec
chore: add changelog for 11497
2023-08-23 17:02:30 +08:00
zhongwencool
6bb15541c7
feat: rename olp metrics to overload_protection metrics
2023-08-23 15:25:54 +08:00
zhongwencool
b9a97923c4
feat: add some authz/connection missing metrics
2023-08-23 14:47:53 +08:00
zhongwencool
ae10415fc3
feat: disabled the Erlang VM Prometheus exporter by default to improve performance and security
2023-08-23 09:03:22 +08:00
Thales Macedo Garitezi
ee2897e5de
test(refactor): move test to integration tests dir
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
c1f49abad2
test: fix inter-suite flakiness
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
dad27091be
test: rm custom option
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
65085d012b
refactor: rename fn
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
c46b8de938
test: remove unused things, refactor some functions
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
e8c73b06e1
docs: add comment about future test failure
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
6de0bbe76a
test(refactor): always allocate listeners for emqx app
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
a15405a800
test: fix assertions
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
c74abe79d0
refactor: reduce arity
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
021755b82b
refactor: rm iterators from DS `#session{}` record
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
e4e88ebf36
test: add scenario for node stopping midway during subscribe
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
c28c6d1b7e
fix: ensure iterator is opened
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
33ddbe80ad
refactor: remove persistence leakeage from emqx_cm level
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
e8d7bb9a67
refactor: rename module
2023-08-22 13:29:15 -03:00
Thales Macedo Garitezi
9463e271c0
feat(ds): open iterators when handling `SUBSCRIBE` packets
...
Fixes https://emqx.atlassian.net/browse/EMQX-9741
2023-08-22 13:29:15 -03:00
Ilya Averyanov
ed67303281
Merge pull request #11382 from savonarola/0801-auth-refactor
...
Auth refactor stage 1
2023-08-21 00:24:15 +03:00
Ivan Dyachkov
e2b9d905d7
Merge pull request #11465 from id/0718-e5.2.0-alpha.3
2023-08-17 20:59:13 +02:00
Andrew Mayorov
75ed6aa8e7
Merge pull request #11396 from keynslug/ft/EMQX-10712/ruleeng-topic-index-vol-2
...
perf(ruleeng): employ `emqx_topic_index` to speed up topic matching
2023-08-17 20:43:09 +04:00
Ivan Dyachkov
a0c2fe8cc1
chore: e5.2.0-alpha.3
2023-08-17 17:55:56 +02:00
lafirest
5e448f5a02
Merge pull request #11446 from lafirest/refactor/calendar
...
refactor(calendar): refactor datetime-related code and remove redundant
2023-08-17 07:40:44 +08:00
Andrew Mayorov
5d79823891
perf(topicidx): preserve next key on the stack to reuse later
...
This should further optimize the number of `ets:next/2` calls
required for a single match query.
2023-08-17 01:13:19 +04:00
Thales Macedo Garitezi
f03733ba6b
Merge pull request #11460 from thalesmg/integration-tests-dir-20230816
...
ci: add `integration_test` dir to `emqx` application
2023-08-16 17:47:14 -03:00
Ilya Averyanov
3943830eae
chore(auth): remove unnecessary atom conversions
2023-08-16 20:50:35 +03:00
Ilya Averyanov
0dae040047
chore(auth): restore injected schema key position
2023-08-16 20:50:35 +03:00
Ilya Averyanov
db31e5f0d9
chore(auth): tidy up the code
2023-08-16 20:50:35 +03:00
Ilya Averyanov
67e06b3171
chore(auth): make schema injection be more universal
2023-08-16 20:41:05 +03:00
Ilya Averyanov
f00f4568dc
chore(auth): simplify schema injection
2023-08-16 20:41:05 +03:00
Ilya Averyanov
8a3e8ee528
chore(auth): add config propagation tests for authn
2023-08-16 20:41:05 +03:00
Ilya Averyanov
128aa19d47
chore(auth): improve emqx_config_handler to replace adhoc config updates
2023-08-16 20:41:05 +03:00
Ilya Averyanov
8213aa42c9
chore(auth): move authn leftovers to the authn app
2023-08-16 18:52:14 +03:00
Ilya Averyanov
ca8c1e3ef8
chore(auth): removed direct usages of authn from emqx core app
2023-08-16 18:52:14 +03:00
Ilya Averyanov
ce2b159022
chore(auth): make pre_hook_authenticate be part of emqx_access_control domain
2023-08-16 18:52:14 +03:00
zhongwencool
e6f0dead9e
Merge pull request #11445 from zhongwencool/remove-os-mon-from-windows
...
fix: remove os_mon application in Windows release
2023-08-16 23:30:24 +08:00
Thales Macedo Garitezi
a6a023eff7
ci: add `integration_test` dir to `emqx` application
...
This gives us a place where to put tests that exercise multiple umbrella application,
which is more closely related to `emqx`, but in a way that doesn't affect the standalone
app tests.
2023-08-16 11:48:47 -03:00
Andrew Mayorov
c84ee66d80
Merge pull request #11450 from keynslug/fix/dirty-testsuite-flapping
...
fix(test): switch `emqx_flapping_SUITE` to cth tooling
2023-08-16 17:20:31 +04:00
zhongwencool
78356d2625
chore: start os_mon in handle_continue/2
2023-08-16 20:54:53 +08:00
zhongwencool
8b23ee86b3
fix: hide cpu_status if os_check is not supported
2023-08-16 20:49:28 +08:00
zhongwencool
b817e03c08
fix: start os_mon application temporary
2023-08-16 20:49:27 +08:00
zhongwencool
848eb7e3c3
fix: remove os_mon application in Windows release
2023-08-16 20:49:27 +08:00
zhongwencool
b733adca06
fix: allow empty cacertfile pem
2023-08-16 20:15:21 +08:00
zhongwencool
1af0407c48
fix: don't crash when debug huge payload
2023-08-16 15:35:09 +08:00
firest
b08102269a
refactor(calendar): refactor datetime-related code and remove redundant
2023-08-16 10:55:46 +08:00
Andrew Mayorov
0b21b87296
fix(test): switch `emqx_flapping_SUITE` to cth tooling
2023-08-15 21:29:42 +04:00
Andrew Mayorov
5560e6ed4f
fix(cthsuite): also prevent `emqx` from loading default conf
2023-08-15 21:25:39 +04:00
Thales Macedo Garitezi
5d707c8b7d
Merge pull request #11403 from thalesmg/gcp-produ-attr-20230728
...
feat(gcp_producer): add support for defining message attributes and ordering key
2023-08-15 13:22:31 -03:00
Zaiming (Stone) Shi
fa9e9f3348
Merge pull request #11442 from zmstone/0814-sync-release-52-to-master
...
0814 sync release 52 to master
2023-08-15 16:21:55 +02:00
Andrew Mayorov
e39bbf4c49
chore(topicidx): add more descriptive comments and specs
...
To (hopefully) better illustrate what is happening there.
2023-08-15 16:55:48 +04:00
Thales Macedo Garitezi
82b8538041
feat(gcp_producer): add support for defining message attributes and ordering key
...
Fixes https://emqx.atlassian.net/browse/EMQX-10652
2023-08-14 10:33:17 -03:00
lafirest
1bda8020f5
Merge pull request #11436 from lafirest/feat/banned_clear
...
feat(banned): add a new API used to clear all banned data
2023-08-14 20:48:43 +08:00
Andrew Mayorov
9a249e4b01
test(topicidx): increase test coverage
2023-08-14 15:36:58 +04:00
Andrew Mayorov
fd0986071c
perf(topicidx): implement fast-forwarding prefixes
...
This should give less `ets:next/2` calls in general and much less
when index has relatively small number of long non-wildcard topics.
2023-08-14 15:36:58 +04:00
Andrew Mayorov
0c7bdbdab4
test(topicidx): add property test
...
Co-Authored-By: JianBo He <heeejianbo@gmail.com>
2023-08-14 15:36:57 +04:00
Andrew Mayorov
48a50c9137
fix(topicidx): fix missing matches when 'a/b' and 'a/b/#' both exist
...
Thanks to @HJianBo for spotting this issue. The approach to fix it
is different though: we try to keep the "recurrency branch factor"
to a minimum, instead introducing new condition for the case when
filter does not match, but iteration with `ets:next/2` is not yet
finished for the prefix.
Co-Authored-By: JianBo He <heeejianbo@gmail.com>
2023-08-14 15:36:57 +04:00
Andrew Mayorov
6a13406363
fix(topicidx): use custom topic words to keep required ordering
...
Otherwise, topic with empty tokens (e.g. `a/b///c`) would have
some of their tokens ordered before `#` / `+`, because empty
token was represented as empty atom (`''`).
2023-08-14 15:36:57 +04:00
Andrew Mayorov
28bcb394d1
fix(topicidx): allow to return matches unique by record id
2023-08-14 15:36:57 +04:00
Andrew Mayorov
8feda315f6
feat(index): add topic index facility
...
Somewhat similar to `emqx_trie` in design and logic, yet built on
top of a single, potentially pre-existing table.
2023-08-14 15:36:54 +04:00
Zaiming (Stone) Shi
970ff28200
Merge remote-tracking branch 'origin/master' into release-52
2023-08-14 11:50:40 +02:00
zhongwencool
41180170f4
fix: update error msg
2023-08-14 15:45:57 +08:00
zhongwencool
e10f9e5e9b
feat: change mqtt.max_packet_size type from string to bytesize
2023-08-14 10:10:46 +08:00
lafirest
b8d3dcf59a
Merge pull request #11424 from lafirest/fix/epoch_maximum_val
...
fix(datetime): make sure the epoch is not larger than the maximum supported value
2023-08-11 20:37:56 +08:00
firest
749c2d075f
chore: update changes && bump app version
2023-08-11 17:57:27 +08:00
firest
bc417a6764
fix(datetime): make sure the epoch is not larger than the maximum supported value
2023-08-11 17:57:21 +08:00
firest
2fc0468e0c
feat(banned): add a new API used to clear all banned data
2023-08-11 17:25:49 +08:00
Ivan Dyachkov
7852af896c
chore: e5.2.0-alpha.1
2023-08-11 11:16:30 +02:00
Ivan Dyachkov
bab05b6613
Merge pull request #11433 from id/0811-ci-upgrade-push-helm-action
2023-08-11 11:03:00 +02:00
Ivan Dyachkov
b6084b0001
chore: bump apps/emqx version
2023-08-11 09:19:51 +02:00
lafirest
4eaced241d
Merge pull request #11423 from lafirest/chore/limiter_utils
...
fix(limiter): simplify the code of the limiter
2023-08-11 15:17:42 +08:00
Ivan Dyachkov
801c93dd46
chore: v5.1.5-build.3
2023-08-10 12:56:28 +02:00
Ivan Dyachkov
6ead09b28d
chore: merge 'upstream/master'
2023-08-10 12:56:00 +02:00
firest
6dbddfb089
fix(limiter): simplify the code of the limiter
...
move runtime code out from the schema
2023-08-10 18:20:05 +08:00
zhongwencool
aa798e531e
Merge pull request #11409 from zhongwencool/opentelemetry-metrics
...
feat: support opentelemetry metrics
2023-08-10 14:35:25 +08:00
zhongwencool
5a4dd3a5e5
fix: truncate large payload
2023-08-10 09:35:12 +08:00
zhongwencool
d5fe891961
fix: don't be kill when send large payload when log is debug
2023-08-10 09:22:30 +08:00
Thales Macedo Garitezi
bb8ce68c2e
docs: Generate changelog for v5.1.5-patch.2
2023-08-09 16:38:28 -03:00
Thales Macedo Garitezi
95df958f10
docs: Generate changelog for v5.1.5-patch.1
2023-08-09 13:18:09 -03:00
Thales Macedo Garitezi
cce0d144f9
Merge branch 'master' into release-v515-patch1-20230809
2023-08-09 13:08:43 -03:00
zhongwencool
3933227636
feat: support opentelemetry metrics
2023-08-09 20:23:40 +08:00
lafirest
bef8eddad3
Merge pull request #11405 from lafirest/fix/kal_kialo
...
fix(calendar): make date parse error reason more sense
2023-08-09 14:42:08 +08:00
Thales Macedo Garitezi
fdfdb105f0
docs: Generate changelog for v5.1.5
2023-08-08 10:33:34 -03:00
Thales Macedo Garitezi
a1ffd0263d
fix(cacerts): add `cacerts` back as deprecated to allow upgrading from older versions
...
See https://github.com/emqx/emqx/issues/11380
2023-08-08 10:13:13 -03:00
firest
9f38f5f26a
fix(calendar): make date parse error reason more sense
2023-08-08 14:28:38 +08:00
lafirest
2b03436552
Merge pull request #11392 from lafirest/feat/ldap_authz
...
feat(ldap-authz): integrate the LDAP authorization
2023-08-07 11:12:05 +08:00
zhongwencool
665695a977
Merge pull request #11388 from SergeTupchiy/EMQX-10703-fix-replicant-crash-when-core-terminates-abnormally
...
fix: increase emqx_router_sup restart intensity
2023-08-06 14:40:32 +08:00
Serge Tupchii
2b7798608d
fix(emqx_router_helper): don't cleanup down node on a replicant
...
The cleanup on a replicant node is redundant, as Mria would delegate this delete op
to a core node (via RPC), and the core node is expected to receive the same
`nodedown` message and process it.
2023-08-04 16:55:36 +03:00
SergeTupchiy
2044326734
Merge pull request #11390 from SergeTupchiy/EMQX-10661-improve-perf-high-latency-cluster-network
...
EMQX-10661 improve performance on high latency cluster network
2023-08-04 16:41:08 +03:00
firest
b24a9d5343
chore(ldap-authz): update apps version && changes
2023-08-04 18:14:09 +08:00
Serge Tupchii
f276ea9e91
fix: increase emqx_router_sup restart intensity
...
The goal is to tolerate occasional crashes that can happen under relatively normal conditions
and don't seem critical to shutdown the whole app (emqx).
For example, mria write/delete call delegated from a replicant to a core node may fail,
if the core node is being stopped / restarted / not ready.
Fixes: EMQX-10703, #11310
2023-08-04 10:49:59 +03:00
firest
7055eafb91
fix(ldap): fix license date and some minor problems
2023-08-04 11:01:13 +08:00
Serge Tupchii
466fe7e009
perf: add broker_pool_size, generic_pool_size and channel_cleanup_batch_size config options
...
Tuning these options can improve performance if cluster interconnect network latency is high.
Fixes: EMQX-10661
2023-08-03 19:44:00 +03:00
Andrew Mayorov
39bb9d5136
chore: bump ekka to 0.15.10
...
Which sports mria 0.6.0 with dirty activities support.
2023-08-03 11:38:53 +04:00
Ivan Dyachkov
0f161a81c3
chore: v5.1.4
2023-08-01 09:20:46 +02:00
Thales Macedo Garitezi
7687770821
fix(tls): remove `cacerts` config for now
...
Fixes https://github.com/emqx/emqx/issues/11370
Related: https://github.com/emqx/emqx/pull/11371
2023-07-31 10:44:05 -03:00
Thales Macedo Garitezi
a3be1529c6
fix(schema): ensure enterprise module is correctly loaded
...
Fixes https://emqx.atlassian.net/browse/EMQX-10654
Despite loading the application in `nodetool`, we need to invoke `:module_info()` to force
the module to be actually loaded, especially when it's called in `call_hocon` to generate
the initial configurations. Otherwise, it'll fail to list all the bridge schemas.
2023-07-28 16:27:43 -03:00
Thales Macedo Garitezi
2ee1aa6d60
Merge pull request #11347 from thalesmg/fix-ocsp-path-encoding-20230725
...
fix(ocsp): URL encode request path
2023-07-28 09:01:39 -03:00
Ivan Dyachkov
d51b5b739b
chore: v5.1.3
2023-07-27 17:00:20 +02:00
Ivan Dyachkov
5ac01c9b85
Merge pull request #11360 from id/0727-sync-release-51-to-master
2023-07-27 16:58:09 +02:00
Thales Macedo Garitezi
ee3d002fca
Merge pull request #11329 from thalesmg/aeh-bridge-20230720
...
feat: add Azure Event Hub Producer bridge
2023-07-27 11:18:40 -03:00
Ivan Dyachkov
cbfca8c043
chore: merge master into release-51
2023-07-27 15:19:57 +02:00
Ivan Dyachkov
50a0900d92
chore: e5.1.1
2023-07-27 12:18:03 +02:00
Thales Macedo Garitezi
d3d52695d5
feat(tls): automatically add `cacerts` to client opts
...
`public_key:cacerts_get/0` was introduced in OTP 25 and allows us to
load the system trusted CA certificates.
https://www.erlang.org/doc/man/public_key.html#cacerts_get-0
2023-07-25 17:43:33 -03:00
Thales Macedo Garitezi
d0deaca00d
fix(ocsp): URL encode request path
...
Fixes https://emqx.atlassian.net/browse/EMQX-10624
2023-07-25 17:39:38 -03:00
Serge Tupchii
77184c00ff
chore(ekka): Bump version to 0.15.9
2023-07-25 19:29:18 +03:00
Ivan Dyachkov
f9d3d3325b
chore: e5.1.1-rc.1
2023-07-25 16:34:25 +02:00
Ilya Averyanov
deaac9bd73
fix(authz): correctly identify qos of subscribe actions
2023-07-25 15:20:52 +03:00
firest
8439ce0e84
chore: update app version && reboot_lists
2023-07-24 19:08:41 +08:00
Andrew Mayorov
81793c31fc
Merge pull request #11315 from keynslug/ft/EMQX-9593/peek-mqueue-info
...
refactor(session): allow peeking at mqueue less intrusively
2023-07-24 09:57:05 +02:00
Ivan Dyachkov
29432009db
chore: 5.1.1-alpha.4
2023-07-21 18:42:14 +02:00
ieQu1
485e495b98
chore(ekka): Bump version to 0.15.8 (mria 0.5.10)
2023-07-21 18:31:02 +02:00
Ivan Dyachkov
c2c3da073f
chore: v5.1.2
2023-07-21 13:26:29 +02:00
Ivan Dyachkov
243b8f5b67
chore: merge 'upstream/master' into v5.1.2
2023-07-21 13:25:46 +02:00
zhongwencool
520ae0e9d3
chore: remove zone desc from document
2023-07-21 15:51:21 +08:00
zhongwencool
d3e4fda21d
fix: hocon_pp quote string for special char
2023-07-21 12:31:22 +08:00
Andrew Mayorov
e1e4c64a30
refactor(session): allow peeking at mqueue less intrusively
2023-07-20 21:21:30 +02:00
Andrew Mayorov
f2a32e8ed2
Merge pull request #11304 from keynslug/ft/EMQX-9593/ds-session-connect
...
refactor(session): minimize `emqx_session` interface surface
2023-07-20 14:33:21 +02:00
SergeTupchiy
8480a26b66
Merge pull request #11065 from SergeTupchiy/EMQX-9992-fix-async-cleanup-error-logs
...
fix: avoid logging unnecessary errors in async cleanup functions
2023-07-20 12:20:57 +03:00
Serge Tupchii
ff4119e8b3
chore(emqx_config): fix typo in the log message
2023-07-19 16:58:21 +03:00
ieQu1
57e39f42c5
Merge pull request #11294 from ieQu1/mria-fixes
...
Mria fixes
2023-07-19 15:10:42 +02:00
Andrew Mayorov
dd31487b4a
refactor(session): drop `is_session/1` helper as useless
...
This is a part of effort to minimize `emqx_session` module
interface to simplify adding alternative session implementations.
2023-07-19 14:55:26 +02:00
Andrew Mayorov
0cd2351134
refactor(session): hide `no_local` logic behind enqueue / deliver
...
This is a part of effort to minimize `emqx_session` module
interface to simplify adding alternative session implementations.
2023-07-19 14:55:26 +02:00
Ivan Dyachkov
f29a9ed9d5
Merge pull request #11301 from id/0719-sync-release-51-to-master
2023-07-19 14:21:26 +02:00
Andrew Mayorov
92166f287a
Merge pull request #11293 from keynslug/fix/EMQX-9591/phase-out-persistence
...
chore(ps): phase out existing session persistence mechanism
2023-07-19 10:36:46 +02:00
Ivan Dyachkov
b7f0f7b32d
chore: merge master into release-51
2023-07-19 09:28:05 +02:00
zhongwencool
402f75592e
chore: move rpc call from emqx_management_proto to emqx_conf_proto
2023-07-19 11:05:14 +08:00
zhongwencool
8a0f7bfd99
chore: update version bpapi.versions
2023-07-19 11:05:14 +08:00
ieQu1
ce76d4ab04
chore(ekka): Bump version to 0.15.7 (mria 0.5.9)
2023-07-18 21:45:00 +02:00
Ivan Dyachkov
de4cc492d4
chore: e5.1.1-alpha.2
2023-07-18 18:55:24 +02:00
Andrew Mayorov
0a00c39282
chore(ps): phase out existing session persistence mechanism
...
* It's not really working currently in a cluster setup.
* It's not really working well.
* It would be much easier to integrate `emqx_durable_storage` w/o
the need to support existing solution.
2023-07-18 15:46:04 +02:00
Thales Macedo Garitezi
4a889c0994
chore: bump ekka -> 0.15.6
...
https://github.com/emqx/erlang-rocksdb/releases/tag/1.8.0-emqx-1
2023-07-18 09:00:29 -03:00
Thales Macedo Garitezi
1fdcfba629
fix(shared_sub): restore support for `$queue/` shared subscription
...
Partially addresses: https://emqx.atlassian.net/browse/EMQX-4589
There's still a problem with the handling of shared groups that is
_not particular to the `$queue/` syntax_ and preexistent that the same
client cannot subscribe to _different groups_ that have the same
_topic filter_.
2023-07-17 16:41:24 -03:00
zhongwencool
f853f3d3bd
Merge pull request #11271 from zhongwencool/fix-precent-check
...
fix: keep percentage type's range is 0%~100%
2023-07-14 22:07:41 +08:00
Serge Tupchii
950d5edc41
fix: avoid logging unnecessary errors in async cleanup functions
...
Cleanup functions that access ETS tables may fail with `badarg` error during EMQX shutdown.
They are called asynchronously by `emqx_pool` workers and accessed ETS tables
may be already destroyed as their owners are shut down.
This fix catches ETS `badarg` errors before they can be caught and logged by `emqx_pool`.
Fixes: EMQX-9992
2023-07-14 14:22:43 +03:00
firest
fea73cf17d
fix(log): fix the `pubrel` typo in the log
2023-07-14 17:19:50 +08:00
zhongwencool
11ee6abf02
fix: keep precent range is 0%~100%
2023-07-14 16:48:50 +08:00
Thales Macedo Garitezi
06010f7ca9
Merge remote-tracking branch 'origin/release-51' into sync-r51-20230712
2023-07-12 16:47:45 -03:00
SergeTupchiy
fce3060634
Merge pull request #11251 from SergeTupchiy/EMQX-10392-cluster-topology-api
...
Add cluster topology HTTP API endpoint
2023-07-11 17:45:00 +03:00
Serge Tupchii
19de10be7c
feat(emqx_management): add /cluster/topology HTTP API endpoint
...
The endpoint shows Mria RLOG cluster topology info:
connections between core and replicant nodes.
Closes: EMQX-10392
2023-07-11 16:25:36 +03:00
firest
211486a946
fix(ws): fix MQTT packets may be reversed in the WS
...
Fix when a WS packet contains many MQTT packets, the order of MQTT packets will be reversed
2023-07-11 18:40:06 +08:00
Andrew Mayorov
21fbf79c29
Merge pull request #11191 from keynslug/ft/EMQX-9591/msg-persistence-minimal
...
feat(ds): hardwire emqx_durable_storage message persistence
2023-07-10 21:05:04 +02:00
Andrew Mayorov
d91ab7dec9
test(ds): make `emqx_persistent_messages_SUITE` setup cleaner
...
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-07-10 18:12:16 +02:00
Ivan Dyachkov
fb96c1e20d
chore: bump to e5.1.1-alpha.1
2023-07-10 17:25:07 +02:00
Ilya Averyanov
58a83739b8
Merge pull request #10986 from savonarola/ft/EMQX-9523/config-api
...
feat(ft-api): provide configuration API
2023-07-10 15:32:30 +03:00
Ilya Averyanov
12e237c36d
Merge pull request #11132 from savonarola/0531-authz-qos-retain
...
feat(authz): use extensible map format for actions in authz rules
2023-07-10 15:32:02 +03:00
Andrew Mayorov
576eab9717
Merge pull request #11193 from keynslug/fix/emqx-ft-test-flaps
...
fix(ft-test): use new cth tooling in emqx_ft_storage_fs_SUITE
2023-07-10 11:55:16 +02:00
JianBo He
f144bb0571
Merge pull request #11226 from zhongwencool/listener-conf-enabled-to-enable
...
fix: alias listeners.Type.Name.enabled as listeners.Type.Name.enable
2023-07-10 17:15:24 +08:00
zhongwencool
802a50601a
chore: add comment for init_loader_done
2023-07-10 12:03:36 +08:00
zhongwencool
c4ba558ee3
fix: unset config_loader in emqx's env when stop emqx app
2023-07-10 11:06:08 +08:00
zhongwencool
d661b10355
fix: emqx CI failed
2023-07-10 10:34:36 +08:00
zhongwencool
c0ee47dc08
chore: add changelog for 11226 pr
2023-07-10 10:34:36 +08:00
zhongwencool
d781346efc
fix: alias listeners.Type.Name.enabled as listeners.Type.Name.enable
2023-07-10 10:34:36 +08:00
Andrew Mayorov
030beb3e6a
fix(ds): drop debug printouts in test suite
2023-07-07 21:56:20 +02:00
Andrew Mayorov
daf4e86da1
feat(ds): add `ensure_shard/2` shortcut
...
And use it in `emqx_persistent_session_ds:init()` backend initialization
function.
2023-07-07 21:56:20 +02:00
Ilya Averyanov
77895f2555
feat(authz): fix typos and style for Retain & QoS authz feature
...
Co-authored-by: Thales Macedo Garitezi <thalesmg@gmail.com>
2023-07-07 19:40:34 +03:00
Ilya Averyanov
7de26a1776
feat(authz): use extensible map format for actions in authz rules
...
* support authorization on retain, qos fields
* refactored authz tests heavily
2023-07-07 19:40:34 +03:00
Ilya Averyanov
e0353ab750
fix(ft-api): update FT API tests to use emqx_cth_suite
2023-07-07 19:15:42 +03:00
Andrew Mayorov
97b6c43062
fix(ft-test): use new cth tooling in `emqx_ft_storage_fs_SUITE`
...
In attempt to battle test flakiness.
2023-07-07 14:00:33 +02:00
Andrew Mayorov
7e76914599
feat(ds): hardwire emqx_durable_storage message persistence
...
Only message persistence is currently implemented, irrespectively of
whether there are persistent sessions around or not.
2023-07-07 13:46:12 +02:00
zhongwencool
352d818e3b
chore: update hocon to 0.39.13
2023-07-07 16:39:26 +08:00
zhongwencool
221f6eba06
fix: bad tnx-id when rejoin cluster
2023-07-07 12:25:34 +08:00
firest
a1d2b2ca51
chore: bump app versions
2023-07-07 11:17:54 +08:00
Stefan Strigler
9bcabe0a9e
Merge pull request #11184 from sstrigler/EMQX-10270-e-5-1-0-missing-value-range-validation-for-the-max-packet-size-of-mqtt-settings
...
fix: limit mqtt max_packet_size to 256MB
2023-07-06 10:20:24 +02:00
Ilya Averyanov
9af0030538
chore: bump to v5.1.1
2023-07-05 18:43:45 +03:00
Stefan Strigler
263890be47
fix: limit mqtt max_packet_size to 256MB
2023-07-04 16:03:11 +02:00
Andrew Mayorov
8cc7022760
Merge pull request #11120 from ft/EMQX-10329/tooling
...
test: add tooling to make testruns more isolated and predictable
2023-07-04 14:36:39 +02:00
zhongwencool
f2c5f4932c
Merge pull request #11148 from lafirest/fix/mcall_error_report
...
fix(emqx_conf): don't sync the MFA to a leaved node
2023-07-04 19:56:52 +08:00
Andrew Mayorov
9ed75085b7
chore: drop dead commented out code
2023-07-04 13:20:04 +02:00
Andrew Mayorov
c7ba300efc
fix(cthsuite): use correct type for "smth serializable as HOCON"
2023-07-04 13:20:04 +02:00
Andrew Mayorov
d568d43fe4
test(bridge): switch `emqx_bridge_api_SUITE` to use new tooling
2023-07-04 13:20:03 +02:00
Andrew Mayorov
2c50e61cee
fix(cth): reduce amount of logging + streamline logging
...
Also make sure that code running on `emqx_cth_cluster` nodes don't
crash when using `ct:pal` and friends.
2023-07-04 13:20:03 +02:00
Andrew Mayorov
9bda4192e5
fix(cthsuite): disable default `acl.conf` authz source
...
So that users of `emqx_cth_suite` won't have to deal with providing
correct filepath each time they start `emqx_conf` and/or `emqx_authz`
up.
2023-07-04 13:20:03 +02:00
Andrew Mayorov
24a16ea247
fix(cthsuite): bump to hocon 0.39.11 with atom prettyprint fix
2023-07-04 13:20:03 +02:00
Andrew Mayorov
6a7254f55e
fix(cthcluster): match correct driver in `stop_node/2`
...
Co-authored-by: Ilya Averyanov <av@rubybox.dev>
2023-07-04 13:20:02 +02:00
Andrew Mayorov
fe0b8cfbaf
test(conf): respect `init_config_load_done` in emqx_conf itself
...
This should make task of configuring various applications (emqx_conf
/ emqx) during testsuites setup much simpler.
2023-07-04 13:20:02 +02:00
Andrew Mayorov
f76f3b77d7
test: add tooling to make testruns more isolated and predictable
...
Also showcase their usage in some of the existing testsuites.
2023-07-04 12:53:39 +02:00
zhongwencool
d509c47344
feat: add conf load api
2023-07-04 14:17:11 +08:00
Andrew Mayorov
0f25df3aa8
perf(router): employ `maps:foreach/2` instead
2023-07-03 15:01:47 +02:00
Andrew Mayorov
57da71eb1d
perf(broker): avoid usorting aggregated routes in a loop
2023-07-03 15:01:33 +02:00
zhongwencool
e26c30ff0c
feat: refactor dashboard https ssl_options
2023-06-29 10:49:39 +08:00
firest
8e68af14ef
chore: bump ekka version
2023-06-29 01:45:47 +00:00
Andrew Mayorov
30d78aaac2
Merge pull request #11152 from keynslug/test/ft-prop-aggressive
...
test(ft): make proptests even less aggressive
2023-06-27 17:44:54 +02:00
Andrew Mayorov
ff327609db
test(ft): generate segments manually in proptests
...
In order to avoid spamming proptest logs with HUGE type instances,
and make proptests themselves simpler. Proper now should refuse
shrinking altogether, instances that cause prop function to timeout
do not shrink well for some reason, making proptests stuck.
2023-06-27 17:13:23 +02:00
Zaiming (Stone) Shi
9b6ed09513
refactor: call hocon_tconf:check_plain/4 directly for example conf check
...
the attemp to re-use emqx_hocon:check failed because
hocon_tconf:check_plain/3 and check_plain/4 behaves slightly different
for unknown root fields.
To keep the old logic unchanged, for example config checks, we call
check_plain/4 directly
2023-06-27 14:23:18 +02:00
Zaiming (Stone) Shi
a069b351fd
test: add test script to verify config example files
2023-06-27 14:23:18 +02:00
Serge Tupchii
116675e86f
chore: bump ekka to 0.15.4
2023-06-27 13:24:49 +03:00
lafirest
f2e3446e29
Merge pull request #11135 from lafirest/pref/calendar_timeoffset
...
perf(rule_engine): improve the time offset parser
2023-06-26 18:54:00 +08:00
lafirest
850d642ec2
Merge pull request #11108 from ieQu1/emqx-ds
...
Durable storage
2023-06-25 11:36:34 +08:00
firest
c8c2793944
perf(rule_engine): improve the time offset parser
2023-06-24 13:05:27 +00:00
Thales Macedo Garitezi
7ef03d9e1f
Merge pull request #11090 from thalesmg/gcp-pubsub-consumer
...
feat(gcp_pubsub_consumer): implement GCP PubSub Consumer bridge
2023-06-22 09:17:45 -03:00
Zaiming (Stone) Shi
c58a98954b
Merge remote-tracking branch 'origin/master' into 0621-merge-release-51-to-master
2023-06-22 11:05:51 +02:00
ieQu1
efed7cdc2f
chore(ds): behavior -> behaviour
2023-06-22 10:20:18 +02:00
Andrew Mayorov
86d787eced
chore: bump hocon to 0.39.10
...
Which comes with a fix for slightly more user-friendly validation error
messages.
2023-06-21 21:25:43 +02:00
Zaiming (Stone) Shi
7cf8a6c892
chore: bump app vsns
2023-06-21 16:36:51 +02:00
Zaiming (Stone) Shi
5fa87091c4
Merge remote-tracking branch 'origin/master' into 0621-merge-release-51-to-master
2023-06-21 16:08:41 +02:00
Zaiming (Stone) Shi
dddccfdc5c
chore: bump to v5.1.0 official cut
2023-06-20 17:09:17 +02:00
Zaiming (Stone) Shi
728656d4f6
chore: bump to e5.1.0 official cut
2023-06-20 17:08:18 +02:00
Zaiming (Stone) Shi
f95787d229
test: make possible to test core/replica locally
2023-06-20 12:42:00 +02:00
zhongwencool
856de78698
chore: remove the is_list guard
2023-06-20 08:39:23 +08:00
zhongwencool
093cdab838
chore: to_integer to make sure integer is converted
2023-06-20 08:39:23 +08:00
zhongwencool
07172e42f0
test: integer CI check failed
2023-06-20 08:39:23 +08:00
zhongwencool
a4be9b8281
chore: bump hocon to 0.39.9
2023-06-20 08:39:23 +08:00
zhongwencool
45963b6a95
fix: ip_port schema type crash
2023-06-20 08:39:23 +08:00
Zaiming (Stone) Shi
ead511a128
chore: bump to 5.1.0-rc.1
2023-06-19 23:19:27 +02:00
ieQu1
86b78981c4
Merge pull request #11092 from ieQu1/mria-0.5.5
...
chore(mria): Bump version to 0.5.5
2023-06-19 23:13:36 +02:00
Thales Macedo Garitezi
01d758e4c0
fix(bpapi): fix `query_mode` type(spec)
...
The previous spec was wrong due to a mismatch between type declaration and usage in specs:
it would never be `dynamic`, and it was lacking the `simple_async`, `simple_sync` and
`no_queries` constructors.
2023-06-19 16:04:12 -03:00
ieQu1
f82c56ae16
chore(mria): Bump version to 0.5.5
2023-06-19 19:28:17 +02:00
JianBo He
cc939d2bda
Merge pull request #11087 from zhongwencool/bump-v5.1.0.alpha.8
...
chore: bump to v5.1.0.alpha.8
2023-06-19 23:00:53 +08:00
JianBo He
b0a6c18917
chore: bump vsn to 5.1.0-alpha.8
2023-06-19 22:59:05 +08:00
zhongwencool
1f1d61cef6
Merge pull request #11084 from zhongwencool/hide-plugins-from-cli
...
chore: hide plugins from conf load cli
2023-06-19 19:11:52 +08:00
zhongwencool
64612cab14
chore: bump to v5.1.0.alpha.8
2023-06-19 18:22:51 +08:00
zhongwencool
a578d6fa1d
chore: release e5.1.0-alpha.8
2023-06-19 17:19:03 +08:00
zhongwencool
803cd6c812
Merge pull request #11082 from emqx/release-51
...
sync release-51 to master
2023-06-19 15:12:37 +08:00
JimMoen
30ac6c4e48
Merge pull request #11074 from JimMoen/fix-share-sub-nl-protocol-error
...
fix: shared-sub with nl sub-option should cause protocol error
2023-06-19 10:39:08 +08:00
Andrew Mayorov
13d9f5c3e7
Merge pull request #11053 from fix/EMQX-10231/cluster-view
...
fix(ft-fs): use `emqx:running_nodes()` as default cluster view
2023-06-17 00:54:24 +02:00
JimMoen
178711f742
fix: shared-sub with nl sub-option should cause protocol error
2023-06-16 18:19:23 +08:00
Serge Tupchii
b49b80d36c
fix(emqx_schema): use non negative integer type for 'depth' SSL option
...
Closes: EMQX-10276
2023-06-16 10:59:39 +08:00
zhongwencool
9b56f116f4
Merge pull request #11062 from zhongwencool/log-file-rename
2023-06-15 20:51:52 +08:00
zhongwencool
3406a5d916
Merge pull request #11063 from zhongwencool/bump-to-alpha.7
...
chore: bump to e5.1.0-alpha.7
2023-06-15 19:22:37 +08:00
zhongwencool
9060a2dc05
chore: bump to e5.1.0-alpha.7
2023-06-15 19:05:13 +08:00