diff options
author | Lukas Larsson <lukas@erlang.org> | 2020-02-21 15:43:03 +0100 |
---|---|---|
committer | Lukas Larsson <lukas@erlang.org> | 2020-02-21 15:43:03 +0100 |
commit | dcaf14493012458d983a618985d3c7869aa316e3 (patch) | |
tree | 6b08f9adc2d110444bd0d40053473af00c0b3078 | |
parent | 4b8e4ac6b6d0bf9b421184b400eefe5751ae4b88 (diff) | |
parent | 09f1fd5ad2f0b5a29d8ca961f27757f7f86405ad (diff) | |
download | erlang-dcaf14493012458d983a618985d3c7869aa316e3.tar.gz |
Merge branch 'maint'
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | erts/doc/src/epmd.xml | 6 | ||||
-rw-r--r-- | lib/kernel/src/logger_proxy.erl | 18 | ||||
-rw-r--r-- | lib/kernel/test/logger_proxy_SUITE.erl | 14 | ||||
-rwxr-xr-x | scripts/bundle-otp | 4 |
5 files changed, 37 insertions, 9 deletions
diff --git a/.travis.yml b/.travis.yml index 29ef5429f4..2f063bfd8d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -121,8 +121,8 @@ matrix: api_key: secure: vW5PN6zng5H5+TCvwfwpGZsABrdCWYcFwDm3KXq+plsecBmTayu/0jgNso5Z97FbzDGVTLHWchvywEYQWnmrEByyOrqH73v1LN6JEfN99VpSrdFr15IzhblcyU1R9ugYc3WEoYjX0Q1uGelDSWRuuQOPbzy8mZf3D4rSGonyraP7jPTdHhs5P3ZWk6OMFz+tCdF4XohXqbhXIBOeH/EKg0svX2u5IcV01/YOL8LHWz6G7+gqBryEXx1+ngjQXQmMQwd7Yg3WOKE4XV9gX8ixZsbpUPZXAQKF+VOYdEgeiIr1hI0tBQUYX7FYEzYH5MCxqng5RdaPTOAm1oQroyGkIcWSXzDwN4AhJ7xqa/0NRdEaBPdQzPBCc+pVUDkxBR1ytXjBQqdQMnI6184TDiU5XBnj3kmieLkkKPKQNoPve/Y8Q8zutw4GNc7gixGcQCjtAFUbrT73QVRrezQH0qIdt23rivvf2R7CCOWSmgzowrswmtHdgeEVbodUIBPTNp7qzlUk9gDp6vW0XrOC4qEFI+VaY5PsEOXrrxZmI3gGGJgsbfzRvzvvupQcLNERniJ67r/uumbForpL0x1c65scKuMWwcn1wqt2OLbDoIIuM31Ph2HX/09TTqECU7CTvqLT5MnbZHXGjY9c3ch+sY3tSfaEX6aazl/Dqx28c7boCEw= file: - - ${TRAVIS_TAG}-bundle.txt - - ${TRAVIS_TAG}-bundle.tar.gz + - ${TRAVIS_TAG}.0-bundle.txt + - ${TRAVIS_TAG}.0-bundle.tar.gz on: # We only deploy on pushes to tags that match the regexp tags: true diff --git a/erts/doc/src/epmd.xml b/erts/doc/src/epmd.xml index 311483022d..75353cbc07 100644 --- a/erts/doc/src/epmd.xml +++ b/erts/doc/src/epmd.xml @@ -72,6 +72,12 @@ therefore required for an Erlang network to function correctly.</p> + <note><p>On Windows the maximum number of nodes allowed in one + epmd instance is 60. This is because of limitations in the current + implementation. If you need more nodes, you should look into using + and erlang based epmd implementation such as + <url href="https://github.com/erlang/epmd">Erlang EPMD</url>.</p></note> + <taglist> <tag>Starting the port mapper daemon</tag> <item> diff --git a/lib/kernel/src/logger_proxy.erl b/lib/kernel/src/logger_proxy.erl index 10e53006b9..ead2d74f37 100644 --- a/lib/kernel/src/logger_proxy.erl +++ b/lib/kernel/src/logger_proxy.erl @@ -42,11 +42,16 @@ StringOrReport :: unicode:chardata() | logger:report(), Meta :: logger:metadata(). log(RemoteLog) -> - Olp = persistent_term:get(?MODULE), - case logger_olp:get_pid(Olp) =:= self() of + Olp = persistent_term:get(?MODULE, undefined), + case (Olp =:= undefined) orelse (logger_olp:get_pid(Olp) =:= self()) of true -> %% This happens when the log event comes from the %% emulator, and the group leader is on a remote node. + %% + %% OR + %% + %% when we are to log a remote message before the logger_proxy + %% has started _ = handle_load(RemoteLog, no_state), ok; false -> @@ -112,9 +117,12 @@ init([]) -> %% Log event to send to the node where the group leader of it's client resides handle_load({remote,Node,Log},State) -> - %% If the connection is overloaded (send_nosuspend returns false), - %% we drop the message. - _ = erlang:send_nosuspend({?SERVER,Node},Log), + case erlang:send({?SERVER,Node},Log,[nosuspend]) of + _ok_or_nosuspend -> + %% If the connection is overloaded (send returns nosuspend), + %% we drop the message. + ok + end, State; %% Log event to log on this node handle_load({log,Level,Format,Args,Meta},State) -> diff --git a/lib/kernel/test/logger_proxy_SUITE.erl b/lib/kernel/test/logger_proxy_SUITE.erl index 777531e4ed..bae2bd8d17 100644 --- a/lib/kernel/test/logger_proxy_SUITE.erl +++ b/lib/kernel/test/logger_proxy_SUITE.erl @@ -72,6 +72,7 @@ all() -> [basic, emulator, remote, + remote_disconnect, remote_emulator, config, restart_after, @@ -118,6 +119,19 @@ remote(Config) -> remote(cleanup,_Config) -> ok = logger:remove_handler(?HNAME). +remote_disconnect(Config) -> + {ok,_,Node} = logger_test_lib:setup(Config,[{logger,[{proxy,#{}}]}]), + ok = logger:add_handler(?HNAME,?MODULE,#{config=>self()}), + RemoteGL = rpc:call(Node, erlang, whereis, [user]), + net_kernel:disconnect(Node), + L1 = ?LOC#{ gl => RemoteGL }, logger:notice("Log from ~p; ~p",[?FUNCTION_NAME,?LINE],L1), + ok = ensure(L1), + L2 = ?LOC#{ gl => RemoteGL }, logger:notice([{test_case,?FUNCTION_NAME},{line,?LINE}],L2), + ok = ensure(L2), + ok. +remote_disconnect(cleanup,_Config) -> + ok = logger:remove_handler(?HNAME). + remote_emulator(Config) -> {ok,_,Node} = logger_test_lib:setup(Config,[{logger,[{proxy,#{}}]}]), ok = logger:add_handler(?HNAME,?MODULE,#{config=>self()}), diff --git a/scripts/bundle-otp b/scripts/bundle-otp index aa1f166732..df82ff4fc5 100755 --- a/scripts/bundle-otp +++ b/scripts/bundle-otp @@ -6,8 +6,8 @@ if [ "$TRAVIS_PULL_REQUEST" = "false" -a "$TRAVIS_REPO_SLUG" != "erlang/otp" ]; exit 0 fi -OTP_META_FILE=$ERL_TOP/${TRAVIS_TAG}-bundle.txt -OTP_FILE=$ERL_TOP/${TRAVIS_TAG}-bundle.tar.gz +OTP_META_FILE=$ERL_TOP/${TRAVIS_TAG}.0-bundle.txt +OTP_FILE=$ERL_TOP/${TRAVIS_TAG}.0-bundle.tar.gz REPOSITORIES="otp,$TRAVIS_TAG corba,.*" |