Merge pull request #10015 from zmstone/0220-faile-fast-if-cookie-is-obviously-wrong
0220 fail fast if cookie is obviously wrong
This commit is contained in:
commit
80afb69bb2
|
@ -149,7 +149,7 @@ help() ->
|
|||
[] ->
|
||||
print("No commands available.~n");
|
||||
Cmds ->
|
||||
print("Usage: ~ts~n", [?MODULE]),
|
||||
print("Usage: ~ts~n", ["emqx ctl"]),
|
||||
lists:foreach(
|
||||
fun({_, {Mod, Cmd}, _}) ->
|
||||
print("~110..-s~n", [""]),
|
||||
|
|
12
bin/emqx
12
bin/emqx
|
@ -545,8 +545,12 @@ else
|
|||
logerr "Make sure environment variable EMQX_NODE__NAME is set to indicate for which node this command is intended."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ -n "${EMQX_NODE__NAME:-}" ]; then
|
||||
die "Node $EMQX_NODE__NAME is not running?"
|
||||
fi
|
||||
fi
|
||||
## We have no choiece but to read the bootstrap config (with environment overrides available in the current shell)
|
||||
## We have no choice but to read the bootstrap config (with environment overrides available in the current shell)
|
||||
[ -f "$EMQX_ETC_DIR"/emqx.conf ] || die "emqx.conf is not found in $EMQX_ETC_DIR" 1
|
||||
maybe_use_portable_dynlibs
|
||||
EMQX_BOOT_CONFIGS="$(call_hocon -s "$SCHEMA_MOD" -c "$EMQX_ETC_DIR"/emqx.conf multi_get "${CONF_KEYS[@]}")"
|
||||
|
@ -940,9 +944,11 @@ if [ -n "${EMQX_NODE_COOKIE:-}" ]; then
|
|||
unset EMQX_NODE_COOKIE
|
||||
fi
|
||||
COOKIE="${EMQX_NODE__COOKIE:-}"
|
||||
if [ -z "$COOKIE" ]; then
|
||||
COOKIE="$(get_boot_config 'node.cookie')"
|
||||
COOKIE_IN_USE="$(get_boot_config 'node.cookie')"
|
||||
if [ -n "$COOKIE_IN_USE" ] && [ -n "$COOKIE" ] && [ "$COOKIE" != "$COOKIE_IN_USE" ]; then
|
||||
die "EMQX_NODE__COOKIE is different from the cookie used by $NAME"
|
||||
fi
|
||||
[ -z "$COOKIE" ] && COOKIE="$COOKIE_IN_USE"
|
||||
[ -z "$COOKIE" ] && COOKIE="$EMQX_DEFAULT_ERLANG_COOKIE"
|
||||
|
||||
maybe_warn_default_cookie() {
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
To prevent errors caused by an incorrect EMQX node cookie provided from an environment variable,
|
||||
we have implemented a fail-fast mechanism.
|
||||
Previously, when an incorrect cookie was provided, the command would still attempt to ping the node,
|
||||
leading to the error message 'Node xxx not responding to pings'.
|
||||
With the new implementation, if a mismatched cookie is detected,
|
||||
a message will be logged to indicate that the cookie is incorrect,
|
||||
and the command will terminate with an error code of 1 without trying to ping the node.
|
|
@ -0,0 +1,4 @@
|
|||
在 cookie 给错时,快速失败。
|
||||
在此修复前,即使 cookie 配置错误,emqx 命令仍然会尝试去 ping EMQX 节点,
|
||||
并得到一个 "Node xxx not responding to pings" 的错误。
|
||||
修复后,如果发现 cookie 不一致,立即打印不一致的错误信息并退出。
|
Loading…
Reference in New Issue