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
|
|
* egil/darwin-fixes:
erl_interface: Avoid redefinition of ALIGNBYTES
erts: Fix '#ifdef' for unused static functions
erts: Remove forgotten vxworks includes
hipe: Cast offsetof to int in hipe_arch_print_pcb
|
|
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.
|
|
|
|
* 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)
|
|
|
|
Conflicts:
lib/ssl/src/ssl_connection.erl
|
|
Previously done for ppc in c469d8ce14e9544a297d9af48c9da43137122d9a
|
|
|
|
* sverk/halfword-valgrind-suppressions:
crypto: Add valgrind suppression for AES_cbc_encrypt
erts: Expand valgrind suppression for zlib
Add extra valgrind suppression file for halfword emulator
|
|
|
|
* 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
|
|
When using values of sfv_len and sfv_off which are larger than
the file in question, sendfilev can sometimes return -1 and send
data. It seems to be only Oracle SunOS which this happens on.
|
|
* raimo/IPV6_V6ONLY/OTP-8928:
kernel: Document socket option ipv6_v6only
kernel: Add test cases for socket option ipv6_v6only
erts,kernel: Implement socket option ipv6_v6only in erlang code
erts: Implement socket option IPV6_V6ONLY
erts: Add configure test for IPV6_V6ONLY
|
|
|
|
* bjorn/erts/beam_makeops:
beam_makeops: Turn on warnings and eliminate existing warnings
beam_makeops: Eliminate a deprecation warning
|
|
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
|
|
Invalid write of size 8
(Address 0x84a63c0 is not stack'd, malloc'd or (recently) free'd)
Suspected: AES_cbc_encrypt:??? (-> 0xD7489CF) [/lib/libcrypto.so.0.9.8]
|
|
More future proof with R16
|
|
|
|
|
|
* jf/fix_sctp_peeloff_active_true:
Set new peeled off SCTP socket to nonblocking socket
SCTP test case with socket active options once and true
OTP-10491
|
|
to work even when compiler does aggressive function inlining
|
|
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.
|
|
Perl 5.16.1 (and perhaps other versions) issues the following
warning:
defined(@array) is deprecated at utils/beam_makeops line 1714.
(Maybe you should just omit the defined()?)
for the following line:
$prev_last = pop(@{$gen_transform{$key}})
if defined @{$gen_transform{$key}}; # LINE 1714
The documentation for "defined" says that its use on hashes and
arrays is deprecated and that it may stop working in a future
release.
Simply removing "defined" (as suggested by the warning message)
will not work, as there will be an error when trying to use an
undefined value as an array reference:
Can't use an undefined value as an ARRAY reference at
utils/beam_makeops line 1714.
What we must do is to check whether $gen_transform{$key} is
defined before trying to use it as an array reference.
Noticed-by: Tuncer Ayaz
|
|
* lukas/erts/dont_break_reductions_skip/OTP-10373:
Skip dont_break_reductions on hipe libs tests
|
|
* lukas/erts/bad_terms_hipe_skip/OTP-10375:
Skip fun corruption when lists is native
|
|
|
|
This is needed as corruption of the index_uniq byte
can cause very strange behaviour when the fun is called
by native code.
|
|
|
|
* egil/fix-boot_combo-test:
test: Fix smoke_test_SUITE
|
|
* Silence compiler warning
* This is the same style as the rest of the debug printing in hipe.
Keeping to the same style, though changing the printing format
would probably be better. Not a critical change.
|
|
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.
|