Age | Commit message (Collapse) | Author |
|
* Increase distribution version from 5 to 6
* Introduce new ALIVE2_X_RESP with 32-bit creation
as reply to ALIVE2_REQ when sender dist version >= 6
* Still reply old ALIVE2_RESP with tiny creation 1..3
if sender dist version < 6.
|
|
|
|
-systemd option help is currently shown in "Interactive options" section.
The option is not interactive one.
Fixes: b7c95eabf601 ("Add systemd socket activation for epmd")
Signed-off-by: Matwey V. Kornilov <[email protected]>
|
|
|
|
Living nodes will make `epmd -kill` fail, but there's no way to tell
except by looking at the commands output. With this change, the exit
code will be 1 to indicate failure.
Signed-off-by: Stephan Renatus <[email protected]>
|
|
|
|
Those clause are obsolete and never used by common_test.
|
|
There is no practial difference.
|
|
|
|
|
|
* binarin/erts/fix-epmd-systemd-notifications/PR-999/OTP-13493:
Don't send unasked for systemd notifications
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
|
|
|
|
Suppose we have some erlang system that uses systemd unit with
Type=notify - so this should send startup confirmation itself. But if
systemd-enabled epmd will be started as a first step of that system
startup, empd startup confirmation will be misinterpeted by systemd. And
our erlang service will be considered 'ready' to early. Also this will
interefere with systemd MAINPID detection: systemd will be monitoring
`epmd` process instead of `beam` one.
For example, rabbitmq works around this issue by starting epmd using
separate short-lived beam process, with NOTIFY_SOCKET environment
variable reset - only in this way we could be sure that epmd will not
interfere with rabbit startup sequence.
This patch disables indiscriminate confirmation sending, and does it
only when it was explicitly asked to do so.
|
|
|
|
|
|
Patch from end of PR 864
Fixes problem reported in the PR by jeckersb
In this error case, a negative file descriptor is now saved at
listensock[i], which leads to a buffer overflow later on at
https://github.com/msantos/otp/blob/epmd-IPv6-node-reg2/erts/epmd/src/epmd_srv.c#L498
when calling FD_ISSET(listensock[i],&read_mask).
To reproduce this:
Completely disable IPv6 with ipv6.disable=1 on the kernel command line
Build with fortified code (RHEL/CentOS default): CFLAGS='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fno-strict-aliasing'
|
|
|
|
As a first step to removing the test_server application as
as its own separate application, change the inclusion of
test_server.hrl to an inclusion of ct.hrl and remove the
inclusion of test_server_line.hrl.
|
|
Allow IPv6 nodes to register with and query epmd. On systems with
IPv6 support:
* epmd listens on both the IPv4 and IPv6 ANY or loopback sockets
* the epmd cli client connects to epmd over the IPv6 loopback
* distributed nodes started with "-proto_dist inet6_tcp" will register
with epmd over IPv6
To work on IPv6 capable systems that have IPv6 support disabled,
epmd ignores errors opening the socket if the protocol is not
supported. Similarly, the epmd client will fall back to IPv4 if the IPv6
socket is not available.
Update the minimum supported version of Windows to Windows Vista to
support IPv6.
|
|
|
|
* binarin/epmd-race:
Prevent down nodes going undetected in epmd
OTP-13301
|
|
|
|
In the following (rare) case down node will be always registered in epmd:
- client connects to epmd and sends ALIVE2 request
- epmd reads this request and starts to process it
- during that time client socket closes in such way that subsequent
write(2) in epmd will result in error
- at this point we have node that was registered in database, but as
the connection struct has no 'keep' flag set, the do_read() closes
connection and removes it from select fdset - and so there is no way
for this node to be cleaned up later.
We've seen several epmd instances in such state on our production
systems. And while I'm not sure what was the exact sequence of events
that leads to failed write(2), issue could be easily reproduced using
SO_LINGER option for socket.
|
|
This happens only during processing ALIVE2 request. reply() already
performs the same delay as in the deleted code.
|
|
|
|
|
|
The OSE port is no longer supported and this commit removed it
and any changes related to it. The things that were general
improvements have been left in the code.
|
|
|
|
This reverts commit e2c11e89563f0c11794c91193b29bce00ca9c740.
|
|
* maint:
epmd: Unify systemd autoconf macros usage
epmd: Added systemd notify support to EPMD
|
|
Don't use both HAVE_SYSTEMD_DAEMON and HAVE_SYSTEMD_SD_DAEMON - use only
the former one and remove the latter one entirely.
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
Signed-off-by: Peter Lemenkov <[email protected]>
|
|
Correct spelling errors in the run_daemon() comments which describe
the redirection of stdin, stdout, and stderr to /dev/null for safety
reasons.
|
|
* nox/reedr-logging/OTP-12115:
Add number of entries to mnesia copy debug message
Add thread index to allocator enomem dump slogan
Add run queue index to process dump info
Add missing error string to syslog logging in epmd
Demote rare debug slogan of message discarding to debug build
|
|
* Check of atomics on bsd
* Add --enable-systemd for epmd
* Remove unused --enable-tsp option
|
|
* matwey/systemd/OTP-11829:
Add systemd socket activation for epmd.
Conflicts:
erts/epmd/src/epmd_int.h
Extra ticket: OTP-11828
|
|
* lukas/ose/master-17.0/OTP-11334:
ose: Fix erts assert failed printouts
ose: fix for packet_bytes in fd/spawn driver.
ose: Prepare slave for running on OSE
ose: Fix bug when hunting for signal proxy
ose: Implement tcp inet driver for OSE
ose: Add ifdefs for HAVE_UDP
ose: Yielding has to be done differently for background processes.
ose: Print faults in aio sys driver calls
ose: Prinout errno when to_erl read fails
ose: erlang display goes to ramlog printf
ose: Initiate stdin/stdout/stderr
ose: Break lmconf into one per load module
ose: Reset busy port when pdq empty
ose: Restore the owner of the signal
|
|
|
|
* glacjay/epmd-argv:
ensure argv large enough for all possible args
OTP-11808
|
|
|
|
|
|
|
|
This port has support for both non-smp and smp.
It contains a new way to do io checking in which erts_poll_wait
receives the payload of the polled entity. This has implications
for all linked-in drivers.
|
|
Check for systemd libraries and headers in confgiure.
Add -systemd option enabling waiting for sockets from systemd.
|
|
Since 3aa60cc `epmd -names` does not produce any output on Windows
anymore. This patch uses fwrite() instead of write() which adds the
necessary carriage returns to the output so that it is suitable for the
Windows cmd.exe.
A test case is added (fails on Windows without the patch).
|
|
config.h defines HAVE_SYSLOG_H whereas the sources are looking for
NO_SYSLOG to be undefined. As the logic of "if feature is available"
makes more sense than "if feature is not unavailable", I opted for the
config.h define.
|
|
|
|
* sverk/r16/utf8-atoms:
erl_interface: Fix bug when transcoding atoms from and to UTF8
erl_interface: Changed erlang_char_encoding interface
erts: Testcase doing unicode atom printout with ~w
erl_interface: even more utf8 atom stuff
erts: Fix bug in analyze_utf8 causing faulty latin1 detection
Add UTF-8 node name support for epmd
workaround...
Fix merge conflict with hasse
UTF-8 atom documentation
test case
erl_interface: utf8 atoms continued
Add utf8 atom distribution test cases
atom fixes for NIFs and atom_to_binary
UTF-8 support for distribution
Implement UTF-8 atom support for jinterface
erl_interface: Enable decode of unicode atoms
stdlib: Fix printing of unicode atoms
erts: Change internal representation of atoms to utf8
erts: Refactor rename DFLAG(S)_INTERNAL_TAGS for conformity
Conflicts:
erts/emulator/beam/io.c
OTP-10753
|