Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
A received SIGHUP signal to beam will generate a '{notify, sighup}' message
to the registered process 'erl_signal_server'. 'erl_signal_server' is a
gen_event process.
|
|
* and some minor refactoring
|
|
|
|
* egil/erts/handle-sigterm-nicely/OTP-14085:
erts: Document SIGTERM handler
erts: Add SIGTERM signal handler
|
|
A received SIGTERM signal to beam will generate a {'stop','stop'} message
to the init process and terminate the beam nicely.
|
|
* maint:
Fix initialization dependencies between time, lock-check and lcnt
|
|
* rickard/init-bug/OTP-13911:
Fix initialization dependencies between time, lock-check and lcnt
Conflicts:
erts/emulator/sys/unix/sys.c
|
|
|
|
* sverker/erts/crash-dump-limit:
erts: Add env variable ERL_CRASH_DUMP_BYTES
erts: Add ErtsStrToSint64
erts: Refactor crash dumping with cbprintf
erts: Add cbprintf for Callback Printing
erts: Remove unused erl_crash_dump()
|
|
|
|
|
|
|
|
Do not generate a core when a crashdump is asked for.
Regression introduced in 56090db3ea417157a749bdd810fc61d117493f1f
|
|
|
|
|
|
When running the signal handler, the errno has to be restored
to its original value, otherwise code running in the same thread
may misbehave.
|
|
|
|
* lukas/erts/spawn_driver_relative_cd/ERL-175/OTP-13733:
erts: Add port_SUITE:cd invalid dir testcase
erts: Fix spawn driver with relative cd option
erts: Fix HARD_DEBUG printouts in erl_child_setup
erts: Improve error printouts in erl_child_setup
Conflicts:
erts/emulator/test/port_SUITE.erl
|
|
|
|
|
|
|
|
Add prints to stderr with a small description of the error
so that errors will be easier to debug. Also if a protocol
error is detected, erl_child_setup will abort instead of exit.
|
|
Nice to have for core dump inspection when stderr -> /dev/null.
|
|
for 9f779819f6bda734c595.
|
|
that need to be enqueued.
|
|
Symptom: open_port() succeeds, port program never starts but instead
seem to terminate with exit_status 150 (EINVAL+128).
When: If the command payload buffer (including the entire environment)
for the port program is between 1 to 4 bytes above the pipe capacity,
which is 65536 bytes on newer Linux, but can be as low as 4096 on older
32-bit Linux.
Since: OTP-19.0-rc1.
|
|
|
|
|
|
* mikpe/fp-exceptions-cleanups/PR-1019/OTP-13531:
clean up FP exception code in sys_float.c
|
|
When FP exceptions are used, matherr() forces a fake FP exception,
which is interpreted as an error by the checking code after a math
routine call. This is wrong for several reasons:
- it's not necessary for error checking: when FP exceptions aren't
used, matherr() is a stub and no information is derived from it
being called
- it's not necessary for FPU maintenance: the FPU only needs to be
reprogrammed after an actual FP exception
- it causes false negatives: matherr() may be called even though
Erlang doesn't consider the case to be an error (exp() and pow()
underflows on Solaris for instance); with FP exceptions enabled
they are incorrectly considered errors
The fix is to remove all FP exception related code from matherr().
|
|
This performs a number of cleanups in the FP exception code:
- inline the body of unmask_fpe_conditional() in its only caller,
then delete the duplicated and identical definitions of it
- start the big processor-specific block with a comment describing
the two functions that must be defined, then delete redundant
comments at all the mask_*() functions
- add a comment before fpe_sig_action() explaining exactly what
processor-specific action is required of it
- flatten #ifdef nesting in fpe_sig_action()
- move common code in the x86 unmask_fpe() and erts_restore_fpu()
function into a subroutine
- minor tweaks: drop a redundant L suffix on a 0, add a comment
after an #else, bump the size of a debug buffer,
There should be no change in behaviour from these changes.
|
|
* henrik/update-copyrightyear:
update copyright-year
|
|
* lukas/erts/fix_scheduler_suspend/ERL-94/PR-978/OTP-13425:
erts: Fix install of suspend handler
Conflicts:
erts/emulator/sys/unix/erl_unix_sys.h
erts/emulator/sys/unix/sys.c
|
|
Floating-point exception support on MacOS X has never been especially
reliable, and has therefore been disabled by default for a long time.
The fpe support is now broken.
Therefore, take out the unnecessary test for modern mcontext in
configure (whatever that means) and the associated code in sys_float.c.
Add #error directives to sys_float.c to make it clear that
fpe is not supported.
It seems to risky to mess with the mess of #ifdef's, so we will
not attempt to remove all fpe support code for MacOS X.
|
|
|
|
* sverk/master/halt-INT_MIN:
erts: Make erlang:halt() accept bignums as Status
erts: Change erl_exit into erts_exit
kernel: Remove calls to erl_exit
|
|
|
|
|
|
This is mostly a pure refactoring.
Except for the buggy cases when calling erlang:halt() with a positive
integer in the range -(INT_MIN+2) to -INT_MIN that got confused with
ERTS_ABORT_EXIT, ERTS_DUMP_EXIT and ERTS_INTR_EXIT.
Outcome OLD erl_exit(n, ) NEW erts_exit(n, )
------- ------------------- -------------------------------------------
exit(Status) n = -Status <= 0 n = Status >= 0
crashdump+abort n > 0, ignore n n = ERTS_ERROR_EXIT < 0
The outcome of the old ERTS_ABORT_EXIT, ERTS_INTR_EXIT and
ERTS_DUMP_EXIT are the same as before (even though their values have
changed).
|
|
This commit makes sure to setup the suspend handler
to matter what +B option is given at the command line.
|
|
|
|
perf counter is now part of the function pointer interface
and also the function returns the value instead of writing
to a memory buffer.
|
|
|
|
The perf_counter is a very very cheap and high resolution timer
that can be used to timestamp system events. It does not have
monoticity guarantees, but should on most OS's expose a monotonous
time.
A special instruction has been created for this counter to further
speed up fetching it.
OTP-12908
|
|
We always want the error to propagate up to the application
when a child cannot be created.
|
|
when called by hash.c for example.
We use ASSERT from sys.h but erl_child_setup implements
its own erl_assert_error() as it doesn't link with sys.o.
|