Merge pull request #8025 from emqx/copy-of_main-v4.3

merge main-v4.3 to main-v4.4
This commit is contained in:
Xinyu Liu 2022-05-23 23:25:20 +08:00 committed by GitHub
commit e5098869c9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 26 additions and 18 deletions

View File

@ -14,6 +14,8 @@ File format:
### Enhancements ### Enhancements
* Refactored `bin/emqx` help messages.
* Upgrade script refuses upgrade from incompatible versions. (e.g. hot upgrade from 4.3 to 4.4 will fail fast).
* Made possible for EMQX to boot from a Linux directory which has white spaces in its path. * Made possible for EMQX to boot from a Linux directory which has white spaces in its path.
* Add support for JWT authorization [#7596] * Add support for JWT authorization [#7596]
Now MQTT clients may be authorized with respect to a specific claim containing publish/subscribe topic whitelists. Now MQTT clients may be authorized with respect to a specific claim containing publish/subscribe topic whitelists.
@ -24,14 +26,14 @@ File format:
* Mnesia auth/acl http api support multiple condition queries. * Mnesia auth/acl http api support multiple condition queries.
* Inflight QoS1 Messages for shared topics are now redispatched to another alive subscribers upon chosen subscriber session termination. * Inflight QoS1 Messages for shared topics are now redispatched to another alive subscribers upon chosen subscriber session termination.
* Make auth metrics name more understandable. * Make auth metrics name more understandable.
* Allow emqx_management http listener binding to specific interface [#8005]
* Add rule-engine function float2str/2, user can specify the float output precision [#7991]
### Bug fixes ### Bug fixes
* List subscription topic (/api/v4/subscriptions), the result do not match with multiple conditions. * List subscription topic (/api/v4/subscriptions), the result do not match with multiple conditions.
* SSL closed error bug fixed for redis client. * SSL closed error bug fixed for redis client.
* Fix mqtt-sn client disconnected due to re-send a duplicated qos2 message * Fix mqtt-sn client disconnected due to re-send a duplicated qos2 message
* Rule-engine function hexstr2bin/1 support half byte [#7977] * Rule-engine function hexstr2bin/1 support half byte [#7977]
* Add rule-engine function float2str/2, user can specify the float output precision [#7991]
* Improved resilience against autocluster partitioning during cluster * Improved resilience against autocluster partitioning during cluster
startup. [#7876] startup. [#7876]
[ekka-158](https://github.com/emqx/ekka/pull/158) [ekka-158](https://github.com/emqx/ekka/pull/158)

View File

@ -2,14 +2,14 @@
%% Unless you know what you are doing, DO NOT edit manually!! %% Unless you know what you are doing, DO NOT edit manually!!
{VSN, {VSN,
[{<<"4\\.4\\.[0-2]">>, [{<<"4\\.4\\.[0-2]">>,
%% epgsql 4.4.0 -> 4.6.0. %% restart it due to epgsql upgraded from 4.4.0 to 4.6.0
%% epgsql has no appup, so we can only restart it. %% in emqx_auth_pgsql:v4.3.3
[{restart_application,epgsql}, [{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]},
{restart_application,emqx_auth_pgsql}]}, {load_module,emqx_auth_pgsql_app,brutal_purge,soft_purge,[]}
]},
{<<".*">>,[]}], {<<".*">>,[]}],
[{<<"4\\.4\\.[0-2]">>, [{<<"4\\.4\\.[0-2]">>,
%% epgsql 4.4.0 -> 4.6.0. [{load_module,emqx_auth_pgsql,brutal_purge,soft_purge,[]},
%% epgsql has no appup, so we can only restart it. {load_module,emqx_auth_pgsql_app,brutal_purge,soft_purge,[]}
[{restart_application,epgsql}, ]},
{restart_application,emqx_auth_pgsql}]},
{<<".*">>,[]}]}. {<<".*">>,[]}]}.

View File

@ -227,6 +227,13 @@ end}.
Prefix = "management.listener." ++ atom_to_list(Proto), Prefix = "management.listener." ++ atom_to_list(Proto),
case cuttlefish:conf_get(Prefix, Conf, undefined) of case cuttlefish:conf_get(Prefix, Conf, undefined) of
undefined -> Acc; undefined -> Acc;
{IPStr, Port} ->
{ok, IP} = inet:parse_address(IPStr),
[{Proto, Port, [{ip, IP}] ++ TcpOpts(Prefix) ++ Opts(Prefix)
++ case Proto of
http -> [];
https -> SslOpts(Prefix)
end} | Acc];
Port -> Port ->
[{Proto, Port, TcpOpts(Prefix) ++ Opts(Prefix) [{Proto, Port, TcpOpts(Prefix) ++ Opts(Prefix)
++ case Proto of ++ case Proto of
@ -236,4 +243,3 @@ end}.
end end
end, [], [http, https]) end, [], [http, https])
end}. end}.

View File

@ -42,15 +42,15 @@ assert_node_alive() {
fi fi
} }
check_eralng_start() { check_erlang_start() {
"$BINDIR/$PROGNAME" -noshell -boot "$REL_DIR/start_clean" -s crypto start -s init stop "$BINDIR/$PROGNAME" -boot "$REL_DIR/start_clean" -eval "crypto:start(),halt()"
} }
if ! check_eralng_start >/dev/null 2>&1; then if ! check_erlang_start >/dev/null 2>&1; then
BUILT_ON="$(head -1 "${REL_DIR}/BUILT_ON")" BUILT_ON="$(head -1 "${REL_DIR}/BUILT_ON")"
## failed to start, might be due to missing libs, try to be portable ## failed to start, might be due to missing libs, try to be portable
export LD_LIBRARY_PATH="$DYNLIBS_DIR:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH="$DYNLIBS_DIR:$LD_LIBRARY_PATH"
if ! check_eralng_start; then if ! check_erlang_start; then
## it's hopeless ## it's hopeless
echoerr "FATAL: Unable to start Erlang." echoerr "FATAL: Unable to start Erlang."
echoerr "Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed." echoerr "Please make sure openssl-1.1.1 (libcrypto) and libncurses are installed."

View File

@ -29,7 +29,7 @@
-ifndef(EMQX_ENTERPRISE). -ifndef(EMQX_ENTERPRISE).
-define(EMQX_RELEASE, {opensource, "4.4.4-beta.1"}). -define(EMQX_RELEASE, {opensource, "4.4.4-rc.1"}).
-else. -else.

View File

@ -9,12 +9,12 @@ PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh)}"
case "${PKG_VSN}" in case "${PKG_VSN}" in
4.3*) 4.3*)
EMQX_CE_DASHBOARD_VERSION='v4.3.7' EMQX_CE_DASHBOARD_VERSION='v4.3.7'
EMQX_EE_DASHBOARD_VERSION='v4.3.18' EMQX_EE_DASHBOARD_VERSION='v4.3.19'
;; ;;
4.4*) 4.4*)
# keep the above 4.3 untouched, otherwise conflicts! # keep the above 4.3 untouched, otherwise conflicts!
EMQX_CE_DASHBOARD_VERSION='v4.4.2' EMQX_CE_DASHBOARD_VERSION='v4.4.2'
EMQX_EE_DASHBOARD_VERSION='v4.4.9' EMQX_EE_DASHBOARD_VERSION='v4.4.10'
;; ;;
*) *)
echo "Unsupported version $PKG_VSN" >&2 echo "Unsupported version $PKG_VSN" >&2