Commit Graph

6460 Commits

Author SHA1 Message Date
JianBo He 57df0702e2 WIP 2023-03-10 18:09:13 +08:00
Zaiming (Stone) Shi fe27604010 Merge remote-tracking branch 'origin/release-50' into 0308-merge-release-50-back-to-master 2023-03-08 16:46:45 +01:00
firest b8b1a78025 feat(bridges): integrate the DynamoDB into data bridges 2023-03-08 11:13:38 +08:00
Zaiming (Stone) Shi 158b4a95df
Merge pull request #10079 from qzhuyan/fix/william/i18n-broker_shared_subscription_strategy
fix: i18n desc of broker_shared_subscription_strategy
2023-03-07 21:57:07 +01:00
Zaiming (Stone) Shi 26b29185b2 test(emqx_bridge_webhook_SUITE): fix flakyness in test web server 2023-03-07 20:57:38 +01:00
Kjell Winblad 163b33ab28 test: remove unnecessary dependencies of ee apps 2023-03-07 20:57:38 +01:00
Kjell Winblad ca947e3e70 fix: lost messages when HTTP connection times out
When using async mode with the webhook bridge, queued messages that are
not fully processed when the connection times out could be lost. This
commit fixes this by letting the bridge return a recoverable_error when
this happen. The message send will then be retried in sync mode by the
emqx_resource_buffer_worker.

Fixes: https://emqx.atlassian.net/browse/EMQX-8974
2023-03-07 20:57:19 +01:00
Stefan Strigler 609cd01a35
Merge pull request #10085 from sstrigler/EMQX-8552-authorization-sources-type-status-move-shouldnt-exist-when-authorization-sources-type-doesnt-exist
emqx_authz API: return 404 for all requests on non existent source
2023-03-07 16:19:28 +01:00
Stefan Strigler b54f444263 fix(emqx_authz): return `404` for requests on non existent source 2023-03-07 13:51:06 +01:00
Stefan Strigler a7605fba94 test(emqx_authz): use snabbkaffe:retry instead of timer:sleep
also use emqx_json rather than jiffy or jsx directly
2023-03-07 13:49:46 +01:00
ieQu1 6f88cb7d9e chore(ekka): Bump version to 0.14.3 2023-03-07 12:07:07 +01:00
zhongwencool 0a5b221984
Merge pull request #10055 from zhongwencool/fix-max-awaiting-rel
fix: update max_awaiting_rel in session
2023-03-07 18:37:20 +08:00
SergeTupchiy 9949c87b91
Merge pull request #10069 from SergeTupchiy/ci/EMQX-9055-configuration-item-flush-time-interval-used-for-stats-d-integration-not-work
fix: EMQX-9055 configuration item flush time interval used for statsd integration not work
2023-03-07 11:43:57 +02:00
William Yang 2b1cf2fa52
Merge pull request #10058 from qzhuyan/dev/william/deprecated-unsupp-quic-TLS-options
fix: deprecate unsupp quic TLS options
2023-03-07 09:29:52 +01:00
William Yang 422f8e3be3
Merge pull request #10078 from qzhuyan/fix/william/inval-listener-options-segfault
fix: inval listener option cause segfault
2023-03-07 09:26:27 +01:00
Zaiming (Stone) Shi 133734b345 chore: bump version number to e5.0.1-rc.1 and v5.0.20 2023-03-07 08:41:13 +01:00
Thales Macedo Garitezi eef65fba60 fix(buffer_worker): handle `request_timeout = infinity` case
The current schema allows `infinity` for `request_timeout`, so we have
to take that into account.  It's not currently possible to set
`batch_time = infinity`, so there's no need to treat that case.
2023-03-06 15:31:28 -03:00
Thales Macedo Garitezi 18ab7ed197 chore: bump app vsns 2023-03-06 15:31:28 -03:00
Thales Macedo Garitezi 0e707e837f docs(buffer_worker): improve description of `request_timeout` 2023-03-06 15:31:28 -03:00
Thales Macedo Garitezi e17ad320ee fix(bridge): do not log in converter 2023-03-06 15:31:28 -03:00
Thales Macedo Garitezi e9d3fc511f chore(buffer_worker): change default `batch_time` to 0 and improve docs 2023-03-06 15:31:28 -03:00
Thales Macedo Garitezi 2fa4e8e21a
Merge pull request #10068 from thalesmg/fix-flaky-mqtt-bridge-test
test: fix flaky mqtt bridge test
2023-03-06 13:06:37 -03:00
William Yang 7c65f6f9a9 fix: i18n desc of broker_shared_subscription_strategy 2023-03-06 15:09:56 +01:00
William Yang abb5271177 test(quic): start listener with invalid parameter 2023-03-06 14:58:35 +01:00
Stefan Strigler a81d1a4618
Merge pull request #10066 from sstrigler/EMQX-8932-bridge-api-reports-500-for-most-errors-when-starting-a-resource
fix: return human readable error message for most common cases
2023-03-06 14:13:34 +01:00
Thales Macedo Garitezi f95a30ae89 fix(webhook): convert `request_timeout`s in root and resource_opts 2023-03-06 10:12:38 -03:00
Thales Macedo Garitezi 167b7a212f refactor(buffer_worker): avoid starting 0-time timers 2023-03-06 10:12:38 -03:00
Thales Macedo Garitezi e9ffabf936 fix(buffer_worker): add batch time automatic adjustment
To avoid message loss due to misconfigurations, we adjust `batch_time`
based on `request_timeout`.  If `batch_time` > `request_timeout`, all
requests will timeout before being sent if the message rate is low.
Even worse if `pool_size` is high.  We cap `batch_time` at
`request_timeout div 2` as a rule of thumb.
2023-03-06 10:12:38 -03:00
William Yang 27c5389fdc fix(quic): inval listener option casue segfault
bump quicer to 0.0.113
2023-03-06 14:05:33 +01:00
Thales Macedo Garitezi 8fbb948b6f test: fix flaky mqtt bridge test
Sometimes, this test fails because the metrics are still in the
inflight phase.
2023-03-06 09:09:33 -03:00
Stefan Strigler d0ea7f4647 fix(emqx_authz): check if type param matches type in body 2023-03-06 11:10:31 +01:00
Zhongwen Deng f498a3538b fix: update max_awaiting_rel in session 2023-03-06 17:06:40 +08:00
Zaiming (Stone) Shi a4aece396a
Merge pull request #10052 from zmstone/0301-optimize-boot-error-log
0301 optimize boot failure logs
2023-03-06 08:32:15 +01:00
Kjell Winblad a638cc6566
Merge pull request #9985 from kjellwinblad/kjell/feat/clickhouse_bridge_2/EMQX-8391
feat: add clickhouse database bridge
2023-03-04 07:05:05 +01:00
Serge Tupchii b3907128e8 fix: set statsd flush_time_interval = max(flush_time_interval, sample_time_interval)
flush_time_interval is used to calculate statsd sampling rate:
    rate = sample_time_interval / flush_time_interval
This means that flush_time_interval must always be greater than (or equal to)
sample_time_interval, otherwise, the sampling rate will be invalid (> 1).

Relates to EMQX-9055
2023-03-03 22:24:00 +02:00
Serge Tupchii bff087f40a fix: restart emqx_statsd with the updated configuration
emqx_config_handler:post_config_update/5 cb is called before an updated config is saved.
Thus, a process being restarted in that callback cannot get the latest config by calling
emqx_conf:get/2, because that update is not saved yet.

Relates to EMQX-9055
2023-03-03 22:24:00 +02:00
Stefan Strigler 570bf165af fix: return human readable error message for most common cases 2023-03-03 16:49:09 +01:00
Ivan Dyachkov c01f62a1c1 chore: bump apps versions 2023-03-03 13:58:32 +01:00
Stefan Strigler 6ebd3dc747 feat(emqx_rule_engine): decompose error tuples
sqltester for instance returns sth like {"...sytnax error...", OrigSql}
2023-03-03 09:59:24 +01:00
Stefan Strigler 44eca1fa72 fix(emqx_rule_engine): don't crash if we can't encode json 2023-03-03 09:36:13 +01:00
Stefan Strigler 64b5e9585e feat(emqx_rule_engine): API format errors in a human readable way 2023-03-02 16:49:11 +01:00
Zaiming (Stone) Shi 4eb9a69df0 feat(bin/emqx): diagnose boot failure
Prior to this change, when EMQX daemon mode failed to start
it's not quite easy for users to understand what went wrong.
All the know is the node did not start in time
and then instructed to boot the node in 'console' mode wishing
for some logs.
However, the node might actuay be running, causing 'console' mode
to fail with a different reason.

With this change, after a filure of daemon mode boot,
we issue a diagnosis.
1. if node can not be found from ps -ef, instruct the user
   to find information in erlang.log.N
2. if the node is found running, but not responding to pings
   instruct the user to check if the node name is
   resolvable and reachable
3. if the node is responding to pings but emqx app is not
   running, then it's likely a bug. so the user is advised
   to report a github issue.
2023-03-02 14:46:09 +01:00
William Yang baf01617cd fix(quic): mark unsupp TLS options deprecated 2023-03-02 14:03:44 +01:00
Kjell Winblad 67acdf0888 feat: add clickhouse database bridge
This commit adds a Clickhouse bridge to EMQX 5. The bridge is similar to
the Clickhouse bridge in the 4.4, but adds the possibility to use
different formats (such as JSON) for values to be inserted.
2023-03-02 12:22:11 +01:00
Stefan Strigler 39e1cf9502 fix(emqx_bridge): let it crash instead of 400 on failed reset 2023-03-02 11:23:07 +01:00
Stefan Strigler 4c23ab097d fix(emqx_bridge): return 400 if operation not possible 2023-03-02 11:23:07 +01:00
Stefan Strigler 9fb74bfc87
Merge pull request #10050 from sstrigler/EMQX-9063-bridges-api-consistently-return-404-if-resource-does-not-exist
fix: consistently return 404 in case bridge is not found or invalid
2023-03-02 11:20:56 +01:00
Stefan Strigler 680a4362d1 fix: match macro variables 2023-03-02 10:12:56 +01:00
Stefan Strigler 76f97010bb style: change wording 2023-03-02 09:14:52 +01:00
Serge Tupchii 77dea0c77a fix: Handle obfuscated fields in bridges_probe API 2023-03-01 22:05:23 +02:00