Zaiming (Stone) Shi
d4f3b4c8c2
Merge remote-tracking branch 'origin/master' into fix-buffer-clear-replayq-on-delete-v50
2023-01-18 11:39:47 +01:00
zhongwencool
8e1475addb
Merge pull request #9798 from zhongwencool/dashboard-document
...
chore: improve the dashboard's configuration
2023-01-18 18:20:00 +08:00
Erik Timan
42182279b7
fix(emqx_management): ensure trace file dir is deleted on zip exception
2023-01-18 10:20:41 +01:00
Zhongwen Deng
fb84d5b817
chore: make spellcheck happy
2023-01-18 17:06:46 +08:00
Ivan Dyachkov
430b0a03d4
Merge pull request #9780 from id/fix-ensure-no-colon-in-filenames
...
fix: ensure no colon in filenames
2023-01-18 09:36:16 +01:00
Zhongwen Deng
0d852d9122
docs: improve the dashboard's document
2023-01-18 16:28:35 +08:00
Zaiming (Stone) Shi
faf5916ed6
test: relax recoverable/unrecoverable error check
...
for now, treat all other errors unrecoverable
2023-01-18 07:52:28 +01:00
zhongwencool
bc9d97ea53
Merge pull request #9791 from zhongwencool/crash-dump-doc
...
chore: more detail about crash dump config
2023-01-18 09:56:21 +08:00
Thales Macedo Garitezi
5c2ac0ac81
chore: don't cancel inflight items upon worker death; retry them
2023-01-17 19:50:30 -03:00
Thales Macedo Garitezi
087b667263
fix(buffer_worker): allow signalling unrecoverable errors
2023-01-17 19:50:30 -03:00
Stefan Strigler
f899284e3a
Merge pull request #9789 from sstrigler/EMQX-8754-test-function-return-500-of-data-integration-google-pubsub
...
EMQX 8754 test function return 500 of data integration google pubsub
2023-01-17 22:49:28 +01:00
lafirest
dea0c8230e
Merge pull request #9787 from lafirest/fix/webhook_bridge_cfg_upgrade
...
fix(bridges): fix a compatible problem for old webhook bridge config which created before the v5.0.12
2023-01-18 04:47:08 +08:00
Thales Macedo Garitezi
4ed7bff33f
chore: fix dialyzer warnings
2023-01-17 16:49:16 -03:00
Thales Macedo Garitezi
fa01deb3eb
chore: retry as much as possible, don't reply to caller too soon
2023-01-17 16:49:15 -03:00
Thales Macedo Garitezi
b82009bc29
refactor: use monotonic times as refs and store initial times when creating ets
...
with this, we may measure latencies in the future.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
3ba65c4377
feat: poke the buffer workers when inflight is no longer full
...
if max inflight = 1, then we only make progress based on the state
timer, since the callbacks were not poking the buffer workers.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
b5aaef084c
refactor: enter running state directly
...
now that we don't have the possibility of dirty disk queues (we always
use volatile replayq), we will never resume old work.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
bd0e2a74ba
refactor: rename inflight_name field to inflight_tid
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
006b4bda97
feat(buffer_worker): monitor async workers and cancel their inflight requests upon death
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
731ac6567a
fix(buffer_worker): don't retry all kinds of inflight requests
...
Some requests should not be retried during the blocked state. For
example, if some async requests are just taking some time to process,
we should avoid retrying them periodically, lest risk overloading the
downstream further.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
5425f3d88e
refactor: rm unused fn
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
5dd24a64c3
refactor(buffer_worker): check if inflight is full before flushing
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
344eeebe63
fix: always ack async replies
...
The caller should decide if it should retry in that case, to avoid
overwhelming the resource with retries.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
bd95a95409
refactor: remove redundant `BlockWorker` arg, change boolean to ack/nack
...
`BlockWorker` was always false (ack). Also, changed the return to
something more semantic than a boolean to avoid [boolean
blindness](https://runtimeverification.com/blog/code-smell-boolean-blindness/ )
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
478fcc6ffd
test: fix flaky test
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
30a227bd38
refactor: rename `resume` state timeout to `unblock`
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
7401d6f0ce
refactor: rename ack fn
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
196bf1c5ba
feat: mass collect calls from mailbox also when blocked
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
d4724d6ce9
refactor: remove redundant function
...
`retry_queue` does basically what the running state does, now that we
refactored the buffer workers to always use the queue.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
d6a9d0aa48
fix: set queuing to 0 after buffer worker termination
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
81fc561ed5
fix(buffer_worker): check for overflow after enqueuing new requests
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
4cb83d0c9a
fix: fix some expressions after refactoring
2023-01-17 16:48:48 -03:00
Zaiming (Stone) Shi
fecdbac9a8
refactor: rename a few functions
2023-01-17 16:48:48 -03:00
Zaiming (Stone) Shi
cdd8de11b0
chore: fix a typo in function name
2023-01-17 16:48:48 -03:00
Zaiming (Stone) Shi
618b97870b
refactor: call local function queue_count everywhere
2023-01-17 16:48:48 -03:00
Zaiming (Stone) Shi
249c4c1c79
refactor: use 'bufs' for resource worker replayq dir
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
af6807e863
refactor: cancel flush timer sooner
...
Avoids the cancellation being delayed.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
477c55d8ef
fix: sanitizy replayq dir filepath
...
Colons (`:`) are not allowed in Windows.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
4c04a01370
refactor(buffer_worker): remove `?Q_ITEM` wrapping and use lightweight size estimate
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
32a9e60313
feat(buffer_worker): also use the inflight table for sync requests
...
Related: https://emqx.atlassian.net/browse/EMQX-8692
This should also correctly account for `retried.*` metrics for sync
requests.
Also fixes cases where race conditions for retrying async requests
could potentially lead to inconsistent metrics.
Fixes more cases where a stale reference to `replayq` was being held
accidentally after a `pop`.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
ff23d25e8b
chore(replayq): update replayq -> 0.3.6 and use `clean_start` for buffer workers
...
So we can truly avoid resuming work after a node restart.
2023-01-17 16:48:48 -03:00
Thales Macedo Garitezi
c383558467
fix(buffer): fix `replayq` usages in buffer workers (5.0)
...
https://emqx.atlassian.net/browse/EMQX-8700
Fixes a few errors in the usage of `replayq` queues.
- Close `replayq` when `emqx_resource_worker` terminates.
- Do not keep old references to `replayq` after any `pop`s.
- Clear `replayq`'s data directories when removing a resource.
2023-01-17 16:48:48 -03:00
Zaiming (Stone) Shi
fc992f28bc
test: add test coverage
2023-01-17 20:13:01 +01:00
Zaiming (Stone) Shi
fff6bf921f
refactor(authz): call emqx_resource:simple_sync_query
...
there is no need to route the request through the buffer workers
2023-01-17 20:01:45 +01:00
Zaiming (Stone) Shi
7a471faf67
refactor(authn): use simple sync query for authn
...
there is no need to route the authn queries through the buffer worker
2023-01-17 19:57:14 +01:00
Ilya Averyanov
1d7364dab1
fix(authn): fix authn hook chain evaluation
...
Stop authentication handling when
`emqx_authentication` provides a definitive result.
2023-01-17 20:06:20 +02:00
Stefan Strigler
d164e5bc0f
fix: don't require ssl conf
2023-01-17 15:29:19 +01:00
Stefan Strigler
e54f2f83b3
test: use same default timeout as elsewhere
2023-01-17 15:29:19 +01:00
Erik Timan
30a5cfaa83
fix(emqx_management): remove trace files after zip download
...
We only deleted the resulting zip after a trace file download, not the
actual trace files. This adds a deletion of the uncompressed trace files
as well. It also creates unique directories when collecting trace files
so that concurrent downloads doesn't overwrite files in transit.
2023-01-17 14:24:10 +01:00
Erik Timan
94296258b4
test(emqx_management): refactor test suite to use common test utils for API calls
2023-01-17 14:24:10 +01:00
Zhongwen Deng
f98786c91f
fix: bad crash_dump_file default value in rpm
2023-01-17 20:47:54 +08:00
Zhongwen Deng
cf99089f84
chore: add some trace func to user_default
2023-01-17 20:33:01 +08:00
Zhongwen Deng
5a56013193
docs: more detail about crashdump config
2023-01-17 20:33:01 +08:00
zhongwencool
9f80eb2497
Merge pull request #9777 from zmstone/0116-refactor-config_files-is-readonly
...
refactor: config_files is a readonly config
2023-01-17 20:32:39 +08:00
Zaiming (Stone) Shi
263deae1f3
refactor: add a more generic name for password_converter
2023-01-17 11:12:17 +01:00
Zaiming (Stone) Shi
2afbf6a406
test: unlink process which is getting shutdown
2023-01-17 11:12:17 +01:00
Zaiming (Stone) Shi
4a7e74f5d6
fix(schema): add password converter to ensure its binary() type
2023-01-17 11:12:17 +01:00
Zaiming (Stone) Shi
8b3ec48406
refactor: node.config_files should be hidden as it's not configurable
...
this config schema exists only for app-env mapping.
users can not change it because the bootstraping config
has to be etc/emqx.conf
2023-01-17 11:08:40 +01:00
Stefan Strigler
74ae7c4264
Merge pull request #9782 from sstrigler/EMQX-8361-fix-ct-suite-for-plugins-api
...
test: get plugin template as artifact
2023-01-17 11:08:07 +01:00
firest
c3d5c25c26
fix(bridges): fix a compatible problem for old webhook bridge config which created before the v5.0.12
2023-01-17 17:42:10 +08:00
zhongwencool
cb5314bb9e
Merge pull request #9774 from zhongwencool/dashboard-password-validate-v50
...
feat: add dashboard password validation
2023-01-17 17:02:51 +08:00
Stefan Strigler
bc69a00329
test: get plugin template as artifact
2023-01-17 09:50:17 +01:00
Shawn
44f635300d
chore: update mysql-otp to 1.7.2
2023-01-17 13:36:26 +08:00
Zhongwen Deng
3dfdad9cc9
test: dashboard default password
2023-01-17 11:30:42 +08:00
Zaiming (Stone) Shi
b9911e281e
docs: Update apps/emqx_dashboard/src/emqx_dashboard_admin.erl
2023-01-17 11:30:42 +08:00
zhongwencool
c549379b7c
chore: apply suggestions from code review
...
Co-authored-by: Zaiming (Stone) Shi <zmstone@gmail.com>
2023-01-17 11:30:42 +08:00
Zhongwen Deng
82af854c4a
test: dashbashboard new password failed
2023-01-17 11:30:42 +08:00
Zhongwen Deng
a523fa2fa2
feat: add dashboard password validate
2023-01-17 11:30:42 +08:00
Zaiming (Stone) Shi
33be7672ad
test: recover boot_modules app env after test
2023-01-17 00:43:25 +01:00
Ivan Dyachkov
676f017ec0
fix: ensure no colon in filenames
2023-01-16 21:27:01 +01:00
Andrew Mayorov
5fd157fb1d
Merge pull request #9776 from keynslug/chore/bump-epgsql-otp-25
...
chore: update epgsql to 4.7.0.1 with full OTP-25 compat
2023-01-16 23:51:09 +04:00
Zaiming (Stone) Shi
e668044ebc
fix: version number previs in restricted shell
2023-01-16 13:47:00 +01:00
Andrew Mayorov
34571c779d
feat: make `suboption` table ordering more natural
2023-01-16 15:39:10 +03:00
Andrew Mayorov
ce2dba15b4
feat: turn tables queried with search APIs into ordered sets
...
This is needed to ensure more or less consistent client experience
for the new planned cursor-based search APIs.
2023-01-16 15:39:10 +03:00
Zaiming (Stone) Shi
a7fc5e8fe1
Merge pull request #9761 from zmstone/0114-fix-kafka-value-template-and-docs
...
feat: introduce 'this' concept for placeholder, and use it in Kafka bridge
2023-01-16 13:37:29 +01:00
Andrew Mayorov
54cea3b3f2
chore: update epgsql to 4.7.0.1 with full OTP-25 compat
2023-01-16 15:35:51 +03:00
Stefan Strigler
67909f0b40
fix: testing metrics for emqx_bridge_mqtt_SUITE
2023-01-16 12:10:06 +01:00
Stefan Strigler
a19226326c
fix: don't test for strict values as that makes test flaky
2023-01-16 12:10:06 +01:00
Stefan Strigler
9a53410efb
fix: don't add empty list element to options proplist
2023-01-16 12:00:03 +01:00
Stefan Strigler
edfcea7f43
fix: add log for timeout
2023-01-16 12:00:03 +01:00
Zaiming (Stone) Shi
47414e0d53
docs: improve kafka key and value field description
2023-01-16 11:32:09 +01:00
Zaiming (Stone) Shi
376dab7cd8
Merge pull request #9743 from zmstone/0112-docs-fix-some-descriptions
...
0112 docs fix some descriptions
2023-01-16 09:56:56 +01:00
JimMoen
54ebc27d24
Merge pull request #9672 from JimMoen/0103-fix-mqtt-bridge
...
Fix the problem that the bridge is not available when the Payload template is empty in the MQTT bridge.
2023-01-16 09:57:20 +08:00
Zaiming (Stone) Shi
089389100e
Merge pull request #9763 from zmstone/0114-fix-crash-when-password-undefined
...
0114 fix crash when password undefined
2023-01-15 12:41:02 +01:00
Zaiming (Stone) Shi
df202c69ad
Merge pull request #9746 from zmstone/0113-fix-mqtt-connect-packet-format-when-password-is-empty
...
fix(emqx_packet): log empty string if password value is missing
2023-01-14 19:42:07 +01:00
Zaiming (Stone) Shi
0f2f5fbbe0
fix(authn): no exception when password is 'undefined'
2023-01-14 17:58:55 +01:00
Zaiming (Stone) Shi
7073c62dd9
feat: add a 'this' for rule engine put env
...
now a dot is allowed in front of a var (path)
e.g. ${.clientid} is equivalent to ${clientid}
${.} however, means everything.
the parsed var is interally represented as $_THIS_
to make it easier to read/search.
2023-01-14 11:03:58 +01:00
Zaiming (Stone) Shi
002f5dbd89
Merge pull request #9750 from zhongwencool/bootstrap-app-env
...
fix: save app's env when bootstrapping and reloading
2023-01-14 07:33:13 +01:00
Zhongwen Deng
b07befbf56
test: conf_app ct failed
2023-01-14 01:03:57 +08:00
Stefan Strigler
6fe09447ed
fix: stale test using old resource paths after merge
2023-01-13 17:23:25 +01:00
Zhongwen Deng
09160383f5
chore: bump emqx_resource to 0.1.5
2023-01-13 23:42:41 +08:00
Zhongwen Deng
588140b842
chore: why we should ingore save kernel app env when init
2023-01-13 23:35:45 +08:00
Zhongwen Deng
1fe0061123
fix: node.config_files type is hocon:array(string()))
2023-01-13 23:35:45 +08:00
Zhongwen Deng
c9f0355f5a
fix: save app env when bootstrap and reload
2023-01-13 23:35:45 +08:00
Zhongwen Deng
1085492171
chore: don't refresh when CT is running
2023-01-13 23:35:45 +08:00
Zhongwen Deng
91d38b410d
fix: refresh logger handler when starting
2023-01-13 23:35:45 +08:00
Stefan Strigler
8f5881d1a5
fix: remove stale request/3 from merge error
2023-01-13 16:19:35 +01:00
Stefan Strigler
e08c1d2229
Merge remote-tracking branch 'olcai/refactor-bridges-api' into dev/api-refactor
2023-01-13 15:49:52 +01:00
Stefan Strigler
1690a6dcfc
Merge branch 'master' into dev/api-refactor
2023-01-13 15:34:13 +01:00
Erik Timan
61e98900be
chore: bump app vsn of emqx_resource
2023-01-13 15:13:35 +01:00