aboutsummaryrefslogtreecommitdiffstats
path: root/erts/etc/common/heart.c
AgeCommit message (Collapse)Author
2019-02-19Merge branch 'sverker/heart-nice-exit/OTP-15599' into maintSverker Eriksson
* sverker/heart-nice-exit/OTP-15599: erts: Avoid heart killing a nicely exiting emulator
2019-02-14erts: Avoid heart killing a nicely exiting emulatorSverker Eriksson
Symptom: Heart kills exiting emulator before is has flushed all ports and with HEART_KILL_SIGNAL=SIGABRT it may also produce unnecessary core dumps from doing init:reboot() for example. Problem: Heart port is closed together with all the others in handle_reap_ports() which is detected by heart OS process. Solution 1: Leave the heart port alone in handle_reap_ports() and let it be closed by OS when emulator exists. It doesn't need to be flushed anyway. Solution 2: When heart OS process gets EOF on connection let it wait max 5 seconds for emulator process to self terminate before trying to kill it.
2018-06-18Update copyright yearHenrik Nord
2018-05-02Merge branch 'john/erts/fix-heart-command-overflow/OTP-15034/ERIERL-166' ↵Erlang/OTP
into maint-20 * john/erts/fix-heart-command-overflow/OTP-15034/ERIERL-166: heart: Use ntohs instead of manual conversion # Conflicts: # lib/kernel/test/heart_SUITE.erl
2018-04-24heart: Use ntohs instead of manual conversionJohn Högberg
Multiplying a signed char by 256 is undefined behavior and caused problems on some platforms when the length was long enough. We could cast it to an unsigned int to make it work, but it's best not to reinvent the wheel. Fixes OTP-15034
2016-11-21Remove vestiges of watchdog support in heartMagnus Henoch
Hardware watchdog support was removed from heart in R13A, but there were still some vestiges in the code and the documentation. - Remove mentions of the HW_WD_DISABLE variable, as it's no longer used. - Remove the HEART_BEAT_BOOT_DELAY variable, as it was only used for the hardware watchdog.
2016-06-14Merge branch 'dotsimon/erts/heart_no_kill/OTP-13650'Lukas Larsson
* dotsimon/erts/heart_no_kill/OTP-13650: erts: Fix HEART_NO_KILL logic
2016-06-10erts: Fix HEART_NO_KILL logicLukas Larsson
2016-06-07Merge branch 'dotsimon/erts/heart_no_kill/OTP-13650'Lukas Larsson
* dotsimon/erts/heart_no_kill/OTP-13650: erts: make HEART_NO_KILL have to be set to TRUE Don't kill old erlang if HEART_NO_KILL is set Conflicts: lib/kernel/doc/src/heart.xml
2016-06-03erts: make HEART_NO_KILL have to be set to TRUELukas Larsson
2016-06-01Don't kill old erlang if HEART_NO_KILL is setSimon Cornish
If the environment variable HEART_NO_KILL is set then heart won't kill the old erlang process. This is desirable if the command executed by heart takes care of this.
2016-03-15update copyright-yearHenrik Nord
2016-02-16heart: Remove dead codeBjörn-Egil Dahlberg
2015-11-11Remove obsolete comment in heart.cMagnus Henoch
The "if" referred to in the comment was removed in commit 70c9312c4b.
2015-06-18Change license text to APLv2Bruce Yinhe
2015-04-20erts: Enable different abort signal from heartBjörn-Egil Dahlberg
By using environment variable HEART_KILL_SIGNAL, heart can now use a different signal to kill the old running Erlang. By default the signal is SIGKILL but SIGABRT may also be used by setting environment variable: HEART_KILL_SIGNAL=SIGABRT
2015-03-20Introduce a new time APIRickard Green
The old time API is based on erlang:now/0. The major issue with erlang:now/0 is that it was intended to be used for so many unrelated things. This tied these unrelated operations together and unnecessarily caused performance, scalability as well as accuracy, and precision issues for operations that do not need to have such issues. The new API spreads different functionality over multiple functions in order to improve on this. The new API consists of a number of new BIFs: - erlang:convert_time_unit/3 - erlang:monotonic_time/0 - erlang:monotonic_time/1 - erlang:system_time/0 - erlang:system_time/1 - erlang:time_offset/0 - erlang:time_offset/1 - erlang:timestamp/0 - erlang:unique_integer/0 - erlang:unique_integer/1 - os:system_time/0 - os:system_time/1 and a number of extensions of existing BIFs: - erlang:monitor(time_offset, clock_service) - erlang:system_flag(time_offset, finalize) - erlang:system_info(os_monotonic_time_source) - erlang:system_info(time_offset) - erlang:system_info(time_warp_mode) - erlang:system_info(time_correction) - erlang:system_info(start_time) See the "Time and Time Correction in Erlang" chapter of the ERTS User's Guide for more information.
2013-05-20erts: Fix windows widestring args and paths in toolsDan Gudmundsson
Fix erlc, escript, dialyzer, typer, ct_run, heart and epmd should all be using widestrings on windows
2012-10-24Merge branch 'maint'Björn-Egil Dahlberg
Conflicts: erts/etc/common/heart.c
2012-10-16erts: Change ERL_CRASH_DUMP_SECONDS behaviourBjörn-Egil Dahlberg
Not setting ERL_CRASH_DUMP_SECONDS will now terminate beam immediately on a crash without writing a crash dump file. Setting ERL_CRASH_DUMP_SECONDS to 0 will also terminate beam immediately on a crash without writing a crash dump file, i.e. same as not setting ERL_CRASH_DUMP_SECONDS environment variable. Setting ERL_CRASH_DUMP_SECONDS to a negative value will let the beam wait indefinitely on the crash dump file being written. Setting ERL_CRASH_DUMP_SECONDS to a positive value will let the beam wait that many seconds on the crash dump file being written. A positive value will set both an alarm in beam AND a heart timeout for restart if heart is running. This is due to the change of 'heart' behavior when 'heart' is listening for a crash.
2012-10-15heart: Refactor heart debuggingBjörn-Egil Dahlberg
2012-10-15erts, heart: Ensure erl_crash.dump is writtenBjörn-Egil Dahlberg
When a crash dump is about to be written and we have heartbeat enabled on a system. We need time to write it before heart explicitly kills the beam.
2012-08-20Merge branch 'maint'Patrik Nyblom
Conflicts: erts/etc/common/heart.c
2012-08-20Merge branch 'pan/heart_and_times/OTP-10111' into maintPatrik Nyblom
* pan/heart_and_times/OTP-10111: Make heart use clock_gettime when available
2012-07-19erts: Remove VxWorks from heart and etc filesBjörn-Egil Dahlberg
2012-06-13Make heart use clock_gettime when availablePatrik Nyblom
2012-03-30Update copyright yearsBjörn-Egil Dahlberg
2012-01-03heart: Suppress compiler warningsBjörn-Egil Dahlberg
2011-04-06heart: remove garbage appended to heart commandMichael Santos
heart:get_cmd/0 is documented to return an empty string if the command is cleared. get_cmd/0 returns 2 extra bytes: 1 byte for the trailing null, 1 byte from the op (the op is an unsigned char and 2 bytes are allocated for it in the returned buffer). 1> heart:get_cmd(). {ok,[0,0]} 2> heart:set_cmd("echo hello"). ok 3> heart:get_cmd(). {ok,[101,99,104,111,32,104,101,108,108,111,0,0]} 4> heart:clear_cmd(). ok 5> heart:get_cmd(). {ok,[0,99]}
2011-03-11Update copyright yearsBjörn-Egil Dahlberg
2010-10-04heart: prevent buffer overflowMichael Santos
2009-11-20The R13B03 release.OTP_R13B03Erlang/OTP