Age | Commit message (Collapse) | Author |
|
Optimise ext table dumping
OTP-15588
|
|
Mnesia should always use the local context if available
OTP-15550
|
|
The original algorithm first grouped ops in a commit by ext engine
type via folding over the list with orddict:append/3, that resulted in
an O(n^2) algorithm.
However, grouping the ops is not needed, the ops can be dispatched to
insert_op/6 one-by-one, after looking up the storage semantics of
their respective engine. This is a much cheaper algorithm, assuming
looking up the storage semantics is cheap (which should be).
|
|
|
|
|
|
|
|
|
|
|
|
introduced after OTP_R13B03.
|
|
|
|
Do not read from (set | order_set) source table if the content is
already in the transactional context (i.e., a previous write/delete).
|
|
|
|
|
|
|
|
|
|
|
|
* maint:
Updated OTP version
Prepare release
Updated the engine load functionality
Clean up bag index tables
|
|
* maint-20:
Updated OTP version
Prepare release
Updated the engine load functionality
Clean up bag index tables
Conflicts:
OTP_VERSION
lib/crypto/c_src/crypto.c
lib/crypto/doc/src/notes.xml
lib/crypto/vsn.mk
lib/mnesia/doc/src/notes.xml
lib/mnesia/vsn.mk
otp_versions.table
|
|
|
|
Index records for bag tables with ram_copies was not deleted
after "real" objects where deleted and thus a memory leak.
|
|
|
|
(cherry picked from commit 1b36c8ff81e896f9aa172603962f838d980668a0)
|
|
* maint:
Fix delete_object and write convergence in transaction.
Replace for loop with strchr
Fix typos
Clean unused wxe_driver callbacks
Remove wx c_src compilation warning on Darwin
|
|
* upstream/pr/1858:
Fix delete_object and write convergence in transaction.
OTP-15231
|
|
* maint:
Updated OTP version
Update release notes
Update version numbers
crypto: Fix crash in compute_key(ecdh, ...) on badarg
Relax add_table_copy restriction
Fixed #Ref ordering bug
Test #Ref ordering in lists and ets
Do NOT disc_load from ram_copies when master_node is set
ssl: Make sure that a correct cipher suite is selected
ssl: Correct handling of empty server SNI extension
|
|
* maint-20:
Updated OTP version
Update release notes
Update version numbers
crypto: Fix crash in compute_key(ecdh, ...) on badarg
Relax add_table_copy restriction
Fixed #Ref ordering bug
Test #Ref ordering in lists and ets
Do NOT disc_load from ram_copies when master_node is set
ssl: Make sure that a correct cipher suite is selected
ssl: Correct handling of empty server SNI extension
|
|
|
|
|
|
* dgud/mnesia/add_table_copy_ram/OTP-15226:
Relax add_table_copy restriction
|
|
Allow to add replicas even if all other replicas are down when the
other replicase are not stored on disk.
|
|
Setting master_nodes to a node with ram_copies replica and
that node had not loaded the table, could cause it load an
empty table, even though (non master) nodes had disc_replicas.
This meant that tables where unexpected empty after multiple failures
happened. When this happen do not load the table and wait for user
to force_load it on some node, preferably with a disk copy.
|
|
I did not find any legitimate use of "can not", however skipped
changing e.g RFCs archived in the source tree.
|
|
|
|
|
|
|
|
Fix a bug, when delete_object was deleting the record if it was written
in the same transaction even if it was written to a different value.
To verify:
%% Create a set table
mnesia:create_table(foo, []).
%% Write and delete_object in transaction
mnesia:transaction(fun() ->
mnesia:write({foo, bar, one}),
mnesia:delete_object({foo, bar, not_one})
end).
{atomic, [{foo, bar, one}]} = mnesia:transaction(fun() -> mnesia:read(foo, bar) end).
Added a section to isolation tests to check for non-matching delete_object
requests.
|
|
|
|
|
|
This reverts commit fd8e49b5bddceaae803670121b603b5eee8c5c08.
|
|
|
|
This reverts commit 202bb737e3deabfebee683266f4b7c42781eb521.
|
|
This reverts commit 345f7f527a4c26ef49cef0d81e2c8b71bf01ebc3.
|
|
|
|
|
|
In order to get line numbers into the ghlink we have to add a post
processing step for all xml files.
|
|
* dgud/testcase-fixes:
debug info
add unicode opt env may contain unicode signs
Fix lexemes conversion
|
|
make erlang:process_info/1 not retrieve messages
|
|
process_info/1 retrieves a number of properties related to a process,
including the list of messages in its mailbox. This is potentially
unsafe if the target process has a large number of queued messages:
- there is no a priori upper bound on the amount of memory being
allocated to hold that list, and
- the loop to retrieve the messages is uninterruptible, so the
Erlang scheduler where this executes blocks for the duration
We've seen process_info/1 bring down heavily loaded nodes on more
than one occasion. At least once it appeared to have blocked the
Erlang heart process from executing, causing the external heart to
kill the VM.
Consequently this removes 'messages' from the list of process_info
tags to retrieve for process_info/1. Note that process_info/1 still
retrieves 'message_queue_len', and process_info/2 can still retrieve
'messages' when asked to.
A few places in the OTP libraries need minor adjustments, since they
want 'message_queue_len' but compute it from the length of the list
of messages.
|
|
Take care of the call of erlang:get_stacktrace() in
module mnesia_lib.
|
|
The remaining call (in module mnesia_lib) is taken care
of in the following commit.
|