Age | Commit message (Collapse) | Author |
|
* sverk/crypto-unloading:
crypto: Link crypto_callback statically
crypto: Add debug print macros
crypto: Enable runtime upgrade of crypto
crypto: Make unloading of crypto safer
OTP-10596
|
|
* Measurements suggests that memcpy is a bit faster for small tuples
and ~50% faster for large tuples. (Linux kernel-3.2.0).
|
|
|
|
Erlang specification 4.7.3 defines max tuple size to 65535 elements
It is now defined to 16777215 elements (24 bits)
|
|
Conflicts:
erts/doc/src/erlang.xml
|
|
* pan/bs_append_crash:
Teach erts_bs_append not to dump core
OTP-10590
|
|
|
|
|
|
|
|
* egil/fix-crash_dump-lc-assert:
erts: Suppress lock assertion when dumping a crash
|
|
When erts_bs_append() calls the garbage collector, it has set
the PB_ACTIVE_WRITER flag in the ProcBin for the binary object
is about to be appended to. Therefore, it is expected that the
garbage collector should neither move nor shrink the binary
object.
But if the garbage collector does a minor collection (thereby
clearing the PB_ACTIVE_WRITER flag in the ProcBin) and there is
still not enough heap space, there will be a second major
garbage collection. During the major collection (since the
the PB_ACTIVE_WRITER flag was cleared), the binary object may
be shrunk or moved (depending on sizes and how many other
writable binaries there are in the process).
Avoid the problem by clearing the PB_ACTIVE_WRITER flags in
a separate pass after the garbage collection(s).
Thanks to Denis Titoruk for helping us find this bug.
|
|
No allocator strategy is using customized carrier headers anyway.
|
|
|
|
|
|
|
|
* maint:
Add clearer warnings about misuse of NIF and driver functionality
Fix erlang:memory(ets)
Conflicts:
erts/emulator/beam/erl_db.c
|
|
* rickard/ets-mem-bug/OTP-10558:
Fix erlang:memory(ets)
|
|
|
|
|
|
|
|
|
|
To get a consistent naming scheme where
FBLK = Free block
ABLK = Allocated block
|
|
|
|
by making use of the new block header scheme to find the carrier header
and thereby the allocator.
|
|
Make use of type FreeBlkFtr_t
Rename GET_MB_CARRIER into BLK2MBC (like BLK2SBC)
Remove some unused macros
|
|
to allow realloc to determine block size (in MBC or SBC)
without having to read the footer of the previous block
that might be written to by concurrent thread.
|
|
|
|
|
|
|
|
|
|
* utilize the power of two
|
|
|
|
* maint:
ssl: Adopt test case to not take so long
Fix bug in erts_port_task_schedule()
Use reduction limit in order to determine when to do wakeup
Conflicts:
erts/emulator/beam/erl_port_task.c
erts/emulator/beam/erl_process.c
|
|
* rickard/port-sched-bug/OTP-10556:
Fix bug in erts_port_task_schedule()
|
|
* rickard/sched-wakeup/OTP-10476:
Use reduction limit in order to determine when to do wakeup
|
|
* maint:
Fix binary append exceptions
|
|
* bjorn/erts/binary-append/OTP-10524:
Fix binary append exceptions
|
|
|
|
|
|
Code such as the following should cause an exception:
Bin = <<0:1>>,
<<Bin/binary,...>>
(Because the "binary" type implies that the binary must have a
size in bits that is a multiple of 8.)
Depending on the binary, either no exception was thrown or the
wrong exception was thrown (because c_p->freason was not set).
Noticed-by: Adam Rutkowski
|
|
Conflicts:
erts/etc/common/heart.c
|
|
* egil/ensure-erl_crash.dump/OTP-10422:
test: Relax timeouts for heart_SUITE
erts: Fix crash dump write to port hack
erts: Fix lock check assertion
doc: Document ERL_CRASH_DUMP_SECONDS behaviour
test: Add test for heart restart on crash
test: Add test for heart restart on crash
erts: Change ERL_CRASH_DUMP_SECONDS behaviour
test: Refactor away ?line macros in heart_SUITE
erts: Search for heart in ports that are alive
heart: Refactor heart debugging
erts, heart: Ensure erl_crash.dump is written
|
|
|
|
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.
|
|
|
|
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.
|
|
Facts:
crypto nif-lib registers callback functions that openssl uses
for memory management and thread synchronization. The callback
functions can only be set once, openssl does not allow changing the
callback functions.
Problem:
If openssl is dynamicly linked to crypto, you might get s scenario
where the crypto lib is unloaded while leaving openssl loaded
with its old pointers to the unloaded crypto code intact.
If crypto is then reloaded (by init:restart() for example), the crypto
nif-lib might get relocated at a different address. crypto calls
openssl which in turn calls the old invalid callback functions...kaboom.
Solution:
Break apart the callback functions into a separate dynamic lib that
crypto loads with dlopen. When crypto is unloaded the callback lib is
left in place to be reused if/when crypto is loaded again.
|
|
|
|
* maint:
Add comment about eproviderfailedinit error
Increase sbct for win64 as block alignment is 16
|
|
|