Age | Commit message (Collapse) | Author |
|
* pan/ms_transform_warnings/OTP-6759:
Add testcases for ms_transform warning and fix scoping
Add warnings for shadowed variables in ms_transform funs
|
|
* pg/fix-crypto-rc4_encrypt_with_state:
Fix RC4 stream cipher binding (crypto:rc4_encrypt_with_state/2)
OTP-8781 - RC4 stream cipher didn't work. This since the new NIF
implementation of crypto:rc4_encrypt_with_state/2
introduced in crypto-2.0 didn't return an updated
state. (Thanks to Paul Guyot)
|
|
* rickard/cpu-info/OTP-8765:
Initialize environment functionality after thread lib
Fix faulty assertions
Implement automatic detection of CPU topology on Windows
Make it possible to reread and update detected CPU information
|
|
An assertion failed due to the thread library not being
initialized when initializing an rwmutex. This was however
harmless.
|
|
|
|
The CPU topology is now automatically detected on Windows
systems with less than 33 logical processors. The runtime system
will now, also on Windows, by default bind schedulers to logical
processors using the 'default_bind' bind type if the amount of
schedulers is at least equal to the amount of logical processors
configured, binding of schedulers is supported, and a CPU topology
is available at startup.
|
|
* rickard/ssl-cross/OTP-8791:
Fix SSL build failure when building in minimal source tree
Fix SSL build failure when building in minimal source tree
|
|
Building in a source tree without prebuilt platform independent
build results failed on the SSL examples when building on
Windows.
|
|
Empty packets where not delivered from ssl, it incorrectly assumed
there was no data.
|
|
Building in a source tree without prebuilt platform independent
build results failed on the SSL examples when cross building.
This has been solved by not building the SSL examples during a
cross build.
|
|
hipe:load/1 (and unexported hipe:load/2) just did not work. Calling it
would fail with a badmatch because only the hipe chunk was passed to
do_load/3's third parameter called WholeModule. Since this parameter is
then passed to beam_lib:all_chunks/1 which accepts the whole module as a
binary as well as a path to the beam file, and since a path is exactly
what we have in load/2, the fix consists in letting do_load/3 accept a
path and passing it from load/2.
|
|
natively compiled modules
When loading a module, code area is allocated and header fields
code[MI_ATTR_SIZE] as well as code[MI_COMPILE_SIZE] are not
cleared. They are only set later when freeze_code is called, if the
module has attributes and compilation info, which should always be the
case. When loading a native module (as a stub), code is allocated as
well (to contain the stub functions), and code[MI_ATTR_SIZE] as well
as code[MI_COMPILE_SIZE] are not cleared either. Yet, freeze_code will
not be called (since there is no threaded code to freeze for native
modules), and as a result, these header fields are never set. They can
contain any garbage.
Later on, when writing a crash dump, the attributes and compilation
info are dumped, using these particular header fields. If the size is
garbage, the dump attribute function will iterate until it segfaults.
The fix consists in clearing code[MI_ATTR_SIZE] and
code[MI_COMPILE_SIZE] in both cases (threaded code and native
code). Even if non-native modules should contain code and attributes
and therefore the values code[MI_ATTR_SIZE] and code[MI_COMPILE_SIZE]
should be set by freeze_code, it seems cleaner and easier to maintain
to clear the whole the header in the "initialize code area"
section. As a result, crash dump will not segfault. Instead, native
modules will have an empty attributes and compilation info section in
the crash dump.
|
|
As reported in erlang-bugs, the following sequence of events crashes the VM:
1. Module M1 is loaded and in native mode.
2. Module M2 is not loaded, in emulated mode, and has an on_load function.
3. M1 calls some function in M2. This works.
4. M1 again calls some function in M2. This segfaults.
The reason for the crash is that when the beam loader fixes up export
entries after a successful on_load function call, it erroneously clears
the ->code[3] field in that module's export entries. This is redundant
(no code in beam relies on ->code[3] being NULL), inconsistent with
modules without on_load functions (there ->code[3] remains a valid beam
instruction after the module is loaded), and breaks native code which needs
the old ->address value in an export entry to remain valid after a module
load step (before the load ->address points to ->code[3], after the load
->address points to the real code but uses of the old ->address value
remain so ->code[3] must remain valid).
Thus the fix for the crash is to simply not clear ->code[3].
This patch fixes R14A and should also fix R13B04.
(There does exist a performance bug in this area, but it is unrelated
to the on_load feature so will be fixed separately.)
|
|
The HiPE runtime system has a hipe_bifs:get_hrvtime/0 BIF which
mimics the non-standard gethrvtime() C API. It's possible to
configure the implementation to use the "perfctr" Linux kernel
extension for performance-monitoring counters, in which case
get_hrvtime has very high precision and low overhead. Otherwise
it uses the same code as runtime(statistics).
This patch changes the get_hrvtime implementation to do a runtime
check to see if perfctr is available, and to use the fallback code
rather than returning a dummy value if perfctr is unavailable,
which is common.
The current dummy value return is a bug. It messes up the API
and either breaks callers (they get badarg when trying to compute
on the value) or forces them to implement checks and fallbacks
themselves. Timing code in HiPE's test suites and benchmarks
is known to be affected.
|
|
* maint-r13:
Add test suite for jinterface
|
|
../kenneth_otp into HEAD
* 'kenneth/asn1/ExtensionAdditionGroup/OTP-8598' of ../kenneth_otp:
Update of vsn.mk, relnotes and appup for patch in R13B04 track
Add support for Extension addition group
|
|
* 'bjorn/asn1/eliminate-duplicate-data-dir' of ../bjorn_otp:
asn1 tests: Remove duplicated SUITE data directories
|
|
* bjorn/jinterface-test-suite:
Add test suite for jinterface
|
|
Having multiple copies is a maintenance nightmare.
|
|
* dgud/wx/TreeCtrl_editlabel/OTP-8767:
Add .gitignore
Added missing wxTextCtrl:editLabel/2.
|
|
|
|
|
|
If hello and client_key_exchange message is sent together in
the same packet, ssl can't handle it and closes the connection.
Also fixed compiler warning.
|
|
|
|
|
|
|
|
A bug introduced in kernel-2.13.5.3 has been fixed. If running
net_kernel:set_net_ticktime/1 twice within the TransitionPerod the
second call caused the net_kernel process to crash with a badmatch.
|
|
* maint-r13:
snmp: Patch 1130
inets: Patch 1129
ssh: Patch 1127
ssh: Patch 1126
Conflicts:
lib/inets/doc/src/notes.xml
lib/inets/src/inets_app/inets.appup.src
lib/inets/vsn.mk
lib/snmp/vsn.mk
lib/ssh/doc/src/notes.xml
lib/ssh/src/ssh.appup.src
lib/ssh/vsn.mk
|
|
from the documentation frontpage.
|
|
* ia/ssl-mode-list-handling/OTP-8785:
Handling of {mode, list}
Correct behaviour if {packet, line} and mode list are given
Change packet_line_decode/1 to not only check binary mode
|
|
Fixed handling of the option {mode, list} that was broken for some
packet types for instance line.
|
|
* rickard/nptl-configure/OTP-8774:
Removed unused define
Fix propagation of nptl info
|
|
* rickard/erts-poll-race/OTP-8773:
Fix race in erts_poll()
|
|
document which then produced mis-formatted html.
|
|
|
|
* hb/parsetools/native_compiled_yecc_parsers/OTP-8771:
Fix a problem with HiPE-compiled Yecc parsers
|
|
This corrects the returned data to be in list format, not binary if
both {packet, line} and list are set as option.
|
|
|
|
release structure.
|
|
* maint-r13:
Release mnesia tests
snmp: Patch 1125
kernel: Patch 1124
megaco: Patch 1123
inets: Patch 1122
kernel: Patch 1121
ssh: Patch 1119
snmp: Patch 1118
sasl: Patch 1116
inets: Patch 1115
erts: Patch 1113
public_key, ssl: Patch 1112
inets: Patch 1111
ssl: Patch 1110
sasl: Patch 1109
kernel: Patch 1109
snmp: Patch erl_1108
|
|
According to Kostis Sagonas, this directive is no longer needed.
|
|
* ia/ssl-interop/OTP-8740:
Do not check the padding for TLS 1.0
|
|
* ia/public_key_api/OTP-8722:
Revise the public_key API
Resolved, version is now 0.8.
Conflicts:
lib/public_key/vsn.mk
|
|
|
|
OTP-8761 When the function FilterMod:accept_recv/2 returned false
the SNMP agent stopped collecting messages from UDP.
|
|
OTP-8739 [httpc] If a request times out (not connect timeout), the
handler process exited (normal) but neglected to inform
the manager process. For this reason, the manager did not
clean up the request table, resulting in a memory leak.
Also the manager did not create a monitor for the handler,
so in an unforseen handler crash, this could also create
a memory leak.
OTP-8741 The service tftp was spelled wrong in documentation and
in some parts of the code. It should be tftp.
OTP-8742 [httpc] Replaced the old http client api module (http) with
the new, httpc in the users guide.
|
|
|
|
OTP-8735 SSH in some cases generated a crash report when a channel
was closed in a normal way.
|
|
OTP-8714 SSH in some cases terminated channels with reason normal
when it should have been shutdown.
|
|
Cleaned up and documented the public_key API to
make it useful for general use.
|