Age | Commit message (Collapse) | Author |
|
Id: OTP-8912
This patch creates a new family of flags with the "+z" prefix. It
further creates a new configuration option called "dbbl" (which is the
first letter of the name dist_buf_busy_limit). Example usage of this
flag would be "+zdbbl 1048576".
This patch creates an adjustable buffer limit for the amount of data
that may be buffered by the erlang distribution code (in dist.c
specifically). Before this patch, this hard-coded constant was used:
#define ERTS_DE_BUSY_LIMIT (128*1024)
When large binaries are transmitted between nodes (or simply a lot of
medium-sized binaries), it is very easy to hit the old 128KB limit.
Processes that use the erlang:system_monitor() BIF to monitor system
events can be spammed by {monitor, busy_dist_port, ...} message tuples
at rates of tens to even hundreds of messages/second.
A larger buffer limit will allow processes to buffer more outgoing
messages over the distribution. When the buffer limit has been
reached, sending processes will be suspended until the buffer size has
shrunk. The buffer limit is per distribution channel. A higher limit
will give lower latency and higher throughput at the expense of
higher memory usage.
A variation of this patch has been in commercial production use in at
least two companies that the author is aware of. Larger buffer values
can reduce the number of {monitor, busy_dist_port, ...} system
messages drastically, lower overall messaging latencies, and prevent
false timeouts and 'nodedown' messages in extremely busy Mnesia systems.
Test suite: there are two tests:
a. In erlexec_SUITE.erl to test basic set & get of the value
b. In distribution_SUITE.erl, to verify that setting +zdbbl very
low will actually change behavior.
|
|
* pan/cerl-gdb-emacs/OTP-8882:
Incorporate Michael Santos patch for cerl and gdb via emacs
|
|
* rickard/halfword-bug:
Fix newly introduced halfword emulator bugs
|
|
Silence the Dialyzer warning introduced in commit
7b283aa9507b45f2cd403b061ad92ab059fb71b5.
|
|
Conflicts:
erts/vsn.mk
|
|
|
|
Michael Santos supplied a very nice patch that did set the annotation level
correctly for gdb when run from cerl in emacs.
The patch adds --annotate=3 to the gdb command line, which makes emacs
parse the gdb output correctly, making the right source code be loaded in
the emacs buffer.
While integrating it, I removed my faulty code trying to do the same with hacky
elisp commands. Michaels way is the right way to do it.
Thanks!
|
|
* bjorn/compiler-bin-generators/OTP-8864:
core_lint: Enforce that tail segments only occur at the end
Don't generate multiple tail segments in binary matching
Factor out some of the code for binary generators
Add tests for tail segments in binary generators
|
|
|
|
* bjorn/compiler/fix-zero-segment-bug/OTP-8865:
Fix compiler crash when constructing zero-size binary segments
|
|
|
|
* bjorn/filelib-document-charset/OTP-8879:
filelib: Document the character set syntax in wildcards
|
|
* ks/fix-dialyzer_plt-spec:
Dialyzer: Fix erroneous type and use the same definition in two places
|
|
* ks/ets-update-counter:
Fix type of ets:update_counter/3 to correspond with the documentation
|
|
* ks/syntax_tools-types:
syntax_tools: Add types to record definitions
|
|
* ks/export-types:
Export opaque types so as to be used by other modules
|
|
Conflicts:
lib/asn1/doc/src/notes.xml
lib/asn1/test/asn1_SUITE.erl.src
lib/asn1/test/asn1_SUITE_data/extensionAdditionGroup.erl
lib/asn1/test/test_undecoded_rest.erl
lib/asn1/vsn.mk
|
|
|
|
|
|
|
|
* pan/win2003-crash/OTP-8876:
Teach read_topology not to crash on W2K3
|
|
* ks/stdlib-spec-fixes:
Correct erroneous specs; strengthen some others
|
|
* rt/solaris-pty-handling-fixes:
Add corrected support for Solaris PTYs to run_erl
Fix a typo that leads to syntax errors with DEBUG defined in run_erl
OTP-8878
|
|
* mp/fix-hipe-write:
fix 64-bit writes to 32-bit struct field in HiPE runtime
OTP-8877
|
|
* ta/eliminate-warning:
emd2exml: Do not auto-import error/2
|
|
|
|
|
|
* kenneth/asn1/enc_extaddgrp/OTP-8866:
Add additional test to cover this correction
correct the encoding of ExtensionAdditionGroup
temp
Add support for ExtensionAdditionGroup notation in nested types as well
|
|
|
|
|
|
|
|
Make sure that an update to erts/emulator/tools/make_tables will
force all generated files to be re-generated.
|
|
* bjorn/halfword-emulator:
Fix a bug in the ERTS_BIF_PREP_TRAPx() macros
ts_install: Identify the halfword emulator
|
|
Conflicts:
lib/public_key/src/pubkey_cert.erl
|
|
It seems to work (at least on a little-endian architecture)
by sheer luck.
|
|
|
|
In the HiPE part of the runtime system's Process struct
there is a state field which is 32 bits wide even on 64-bit
machines.
There is a single instruction in the HiPE AMD64 runtime
where this field is incorrectly written with a 64-bit store.
Luckily the extraneous 32 bits are written as zeros to 4
bytes of tail-padding at the end of the struct, so nothing
should have broken because of this.
The same bug exists in the HiPE PowerPC64 runtime (in
development), but on the big-endian PPC64 the effect is
to write the actual value to the tail-padding and zero
to the struct field, which potentially breaks TRAPs from
BIFs (depending on BIF arities and how many parameter
registers the runtime has been configured to use).
Thanks to Paul Guyot for noticing the oversized write on AMD64.
|
|
* ks/dialyzer-fixes:
Fix two errors in dialyzer
|
|
* ks/hipe-cleanups:
Cleanup and small fixes in hipe files
|
|
* mh/dollar-font-lock:
Emacs erlang-mode: fix syntax highlighting of $ in two cases
|
|
A string whose last character is a dollar sign used to make the syntax
highlighter believe that the string never ends, breaking highlighting
of following code:
-vsn("$Revision: 42 $").
And the double quote as a character constant with a (superfluous)
backslash used to make the syntax highlighter believe that a new
string started:
foo() ->
$\".
This change fixes both problems by adding two regexps to
font-lock-syntactic-keywords in erlang-font-lock-init.
One case that is still broken is when a multi-line string ends with a
dollar sign:
bar() ->
"This multi-line string
ends with a $".
baz() ->
this_gets_incorrectly_highlighted.
|
|
Two related but slightly separate issues: run_erl doesn't support Solaris's
/dev/ptmx device and run_erl didn't load the necessary STREAMS modules so that
to_erl can provide terminal echo of keyboard input. This patch adds ifdef'd
support for Solaris and derivatives to open /dev/ptmx directly since adding
the C99 defines to CFLAGS breaks all kinds of other things in the build. It
also adds ifdef'd ioctl calls to load the necessary STREAMS modules to permit
termios to work.
|
|
While attempting to debug odd terminal echo issues on Solaris, I noticed that
run_erl.c will fail to compile due to a typo causing a syntax error.
|
|
|
|
maint-r14
* ia/ssl-and-public_key/verify_fun_peer_awarness/OTP-8873:
Peer awarness
|
|
* ia/public_key/basic_constraints/OTP-8867:
Better handling of v1 and v2 certificates.
|
|
maint-r14
* ia/ssl-and-public_key/backwards-compatibility/OTP-8858:
Backwards compatibility
|
|
Changed the verify fun so that it differentiate between the peer
certificate and CA certificates by using valid_peer or valid as the
second argument to the verify fun. It may not always be trivial or
even possible to know when the peer certificate is reached otherwise.
|
|
V1 and v2 certificates does not have any extensions
so then validate_extensions should just accept that
there are none and not end up in missing_basic_constraints clause.
|
|
* ia/public_key/basic_constraints/OTP-8867:
Better handling of v1 and v2 certificates.
|