Age | Commit message (Collapse) | Author |
|
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.
|
|
* maint:
Updated OTP version
Prepare release
mnesia: Fix checkpoint crash
|
|
|
|
* dgud/mnesia/checkpoint-crash/OTP-14841:
mnesia: Fix checkpoint crash
|
|
* dgud/mnesia/slow-startup/OTP-14829:
mnesia: Read schema user properties directly
|
|
Bad timing can cause retain messages to go to a new process if
checkpoint name is reused directly and the checkpoints contain
different tables.
Ignore those messages instead of crash.
|
|
* maint:
Updated OTP version
Prepare release
mnesia: Read schema user properties directly
ssh: testcases for space trailing Hello msg
ssh: Don't remove trailing WS in Hello msg
|
|
* maint-19:
Updated OTP version
Prepare release
mnesia: Read schema user properties directly
ssh: testcases for space trailing Hello msg
ssh: Don't remove trailing WS in Hello msg
|
|
|
|
* dgud/mnesia/slow-startup/OTP-14829:
mnesia: Read schema user properties directly
|
|
Doing a proper transaction handling of user properties (in current
implmenentation) caused schema_transactions to be quadratic which
caused huge startup times for nodes with many tables since the merge schema
is a schema_transaction.
Do a direct read instead, cheap but implies that the plugin changes
will not be visible until the changes are commited and cannot be used
later in same transaction, which was possible before if undocumented
functions where used.
|
|
|
|
|
|
|
|
* maint:
mnesia: Fix error handling in abort write
|
|
* dgud/mnesia/backup-error-handling/OTP-14776:
mnesia: Fix error handling in abort write
|
|
* maint:
Fix type create_option() in mnesia
|
|
The create_option() type in mnesia lacks the user_properties field
which is used by mnesia in various places.
|
|
|
|
|
|
The "root cause" error reason was lost when abort_write failed,
e.g. file was already closed, and Mod:abort_write(..) returned an
error.
|
|
This commit also adds a check to see that all files that
are part of an xi:include also have part of XML_FILES
and vice versa. It also fixes any applications where this
was not true.
|
|
|
|
|
|
* lars/doc-cleanup/OTP-14475:
[edoc] Remove unused module otpsgml_layout.erl
Remove unused files from the documentation build
|
|
|
|
|
|
|
|
|
|
* maint:
erts, stdlib: Fix xmllint warning
Update runtime deps to depend on new stdlib functionality
|
|
~tw and new string functions are new since OTP-20 (stdlib-3.4)
|
|
* maint:
reltool: Remove export_all warning in tests
et: Remove export_all warnings in test
mnesia: Remove export_all in tests
wx: Remove export_all in example code
wx: test remove export_all
wx: Update doc, OpenGL external links
wx: Reduce Opengl docs
|
|
* siri/string-new-api: (28 commits)
hipe (test): Do not use deprecated functions in string(3)
dialyzer (test): Do not use deprecated functions in string(3)
eunit (test): Do not use deprecated functions in string(3)
system (test): Do not use deprecated functions in string(3)
system (test): Do not use deprecated functions in string(3)
mnesia (test): Do not use deprecated functions in string(3)
Deprecate old string functions
observer: Do not use deprecated functions in string(3)
common_test: Do not use deprecated functions in string(3)
eldap: Do not use deprecated functions in string(3)
et: Do not use deprecated functions in string(3)
os_mon: Do not use deprecated functions in string(3)
debugger: Do not use deprecated functions in string(3)
runtime_tools: Do not use deprecated functions in string(3)
asn1: Do not use deprecated functions in string(3)
compiler: Do not use deprecated functions in string(3)
sasl: Do not use deprecated functions in string(3)
reltool: Do not use deprecated functions in string(3)
kernel: Do not use deprecated functions in string(3)
hipe: Do not use deprecated functions in string(3)
...
Conflicts:
lib/eunit/src/eunit_lib.erl
lib/observer/src/crashdump_viewer.erl
lib/reltool/src/reltool_target.erl
|
|
|
|
Cleanup warnings
|
|
In the Table Fragmentation documentation section, note that the
functions first/1, next/2, prev/2 and last/1 return elements in an
undefined order for fragmented tables.
Also remove superfluous "the".
|