Age | Commit message (Collapse) | Author |
|
|
|
OTP-9502
|
|
* rz/add_proplist_type:
Add a proplist() type
OTP-9499
|
|
In the current implementation of supervisors, temporary children
should never be restarted. However, when a temporary child is
restarted as part of a one_for_all or rest_for_one strategy where
the failing process is not the temporary child, the supervisor
still tries to restart it.
Because the supervisor doesn't keep some of the MFA information
of temporary children, this causes the supervisor to hit its
restart limit and crash.
This patch fixes the behaviour by inserting a clause in
terminate_children/2-3 (private function) that will omit temporary
children when building a list of killed processes, to avoid having
the supervisor trying to restart them again.
Only supervisors in need of restarting children used the list, so
the change should be of no impact for the functions that called
terminate_children/2-3 only to kill all children.
The documentation has been modified to make this behaviour
more explicit.
|
|
zip:zip_open/1,2 did not accept binary archives.
Also corrected the contracts of t/1 and tt/1.
|
|
The contracts of zip:zip_list_dir/1 and zip:zip_get/2 have been
corrected.
|
|
The contract of timer:now_diff() has been corrected.
(Thanks to Alex Morarash).
|
|
|
|
|
|
|
|
* hb/stdlib/queue_contracts/OTP-9418:
Modify the contracts of the queue module
|
|
The contracts of the queue module have been re-written as to avoid
some issues concerning Dialyzer and opaque types.
|
|
|
|
|
|
An incorrect spec, rpc:yield/1, has been fixed.
|
|
erl_tar:extract earlier failed when unpacking inside a directory which
had some parent directory to which the user had no read access. This
is corrected.
|
|
Recently I was adding specs to an API and found that there is
no canonical proplist() type defined.
|
|
A specification that could cause problems for Dialyzer has been fixed.
An opaque type in erl_eval has been turned in to a ordinary type. This
is a temporary fix.
|
|
|
|
OTP-9088: [agent] Added support for sending traps to IPv6 targets.
OTP-9119: [agent] To be able to handle multiple engine-id(s) when
sending trap(s), the function
snmp_community_mib:add_community/6 has been added.
OTP-9162: [manager] The API for snmp requests has been augmented to
allow the caller to override some configuration.
OTP-9174: [manager] The old API functions (for get and set
requests) are now officially deprecated.
OTP-9183: [agent] Pass extra info through the agent to the net-if
process when sending notifications.
OTP-9208: Added type specs for functions that do not return.
Kostis Sagonas
Merge branch 'bmk/snmp/snmp420_integration' into dev
|
|
* hb/stdlib/dets_tablenames/OTP-9282:
Allow Dets tablenames to be arbitrary terms
Conflicts:
lib/stdlib/src/dets.erl
|
|
|
|
|
|
Since initial arguments of temporary children under simple_one_for_one
supervisors are not saved, only a list of pids was stored in such
supervisors. When adding/deleting many children, this would scale
badly. To avoid this the list is now changed to a set.
|
|
'siri/stdlib/supervisor-terminate_child-simple_one_for_one/OTP-9201' into dev
* siri/stdlib/supervisor-terminate_child-simple_one_for_one/OTP-9201:
Add terminate_child(Sup, Pid) for simple_one_for_one
Allow supervisor:terminate_child(SupRef,Pid) for simple_one_for_one
|
|
* km/pool_connect-to-running-nodes:
Change pool module to attempt to attach to nodes that are already running
OTP-9244
|
|
|
|
supervisor:terminate_child/2 was not allowed if the supervisor used
restart strategy simple_one_for_one. This is now changed so that
children of this type of supervisors can be terminated by specifying
the child's Pid.
|
|
* gc/gen-format-status-improvements:
Fix format_status bug for unregistered gen_event processes
Conflicts:
lib/stdlib/test/gen_event_SUITE.erl
OTP-9218
|
|
|
|
terminates" and improved test suite
The bug fix supplied by Filipe David Manana <[email protected]>
did not cover all possible ways that a process may be terminated
as for instance with supervisor:terminate_child. Also there
was a bug in the base case of the patch returning a list of a list instead
of only the list.
Added a timeout for the test cases, eliminated unnecessary sleeps,
improved code.
|
|
The temporary child specs are never removed from the supervisor's state, and
have they're MFA component set to {M, F, undefined} instead of the MFA passed
in the supervisor:start_child/2 call. Subsequent calls to supervisor:restart_child/2
may crash. Stack trace example:
{badarg,[{erlang,apply,[gen_server,start_link,undefined]},
{supervisor,do_start_child,2},{supervisor,handle_call,3},
{gen_server,handle_msg,5},
{proc_lib,init_p_do_apply,3}]}
|
|
|
|
* siri/stdlib/log_mf_h-write-index-atomically/OTP-9148:
Update index file atomically
|
|
Since the log_mf_h index file might be read by other processes than
the error handler (e.g. by the rb tool), this file should be updated
atomically. This will avoid hitting the time gap between opening the
file in write mode (and thus emptying the file) and the actual update
with the new contents. To do this, a temporary file is written, and
the file:rename/1 used to replace the real index file.
|
|
The default value 'undefined' was added to records field types in such
a way that the result was not always a well-formed type. This bug has
been fixed.
---
erl_pp has since OTP-8150 formatted types so that 'undefined' was
removed from union types assigned to record fields. Since one cannot
distinguish between 'undefined' added by the parser or supplied by the
user, a side effect was that user supplied 'undefined's were also
removed.
Now the pretty printer shows 'undefined' even if added by the parser.
This is a minor issue.
|
|
|
|
|
|
|
|
|
|
This new feature adds the missing week number function to the calendar module
of the stdlib application. The implementation conforms to the ISO 8601 standard.
The new feature has been implemented tested and documented.
|
|
* lukas/stdlib/native_escript/OTP-9076:
Update escrips to allow the -n or -compile(native) flag, which compiles the code within the escript with the +native flag. You need an HiPE enabled emulator for this to work.
|
|
dialyzer spec.
|
|
Previous commit changed the supervisor to not save
parameter lists for temporary processes supervised by simple-one-for-one
supervisors. But it is unnecessary to save them for any
temporary processes as they should not be restarted. Proably the
biggest gain is in the simple-one-for-one case.
Also changed the test case count_children_memory so it does
not test that which_children will produce garbage that must
be reclaimed later. This is a strange thing to test and it is no
longer true for all invocations of which_children.
|
|
|
|
* egil/io-badarg/OTP-9045:
Fix exception generation in the io module
|
|
Some functions did not generate correct badarg exception on a
badarg exception.
Affected functions:
- io:put_chars/1,2
- io:nl/1
- io:write/1,2
- io:format/1,2,3
- io:fwrite/1,2,3
|
|
code within the escript with the +native flag. You need an HiPE enabled emulator for this to work.
|
|
|
|
* bjorn/beam-loader/OTP-9030: (43 commits)
c: Reduce memory footprint
erl_posix_msg: Reduce memory footprint
Introduce a few more variations of the move instructions
Combine a move + jump sequence into the move_jump instruction
Optimize and clean-up the exact equality/non-equality instructions
Optimize addition of a small integer to a variable
Introduce a special instruction for select_val with two values
Introduce a few more specialized put_list instructions
Eliminate the "put_list c n Dst" instructions
Eliminate the specific move_sd instruction
Eliminate use of GetArg1() in the badmatch and case_end instructions
Eliminate use of GetArg2() in the i_element instruction
Eliminate use of GetArg1() in the fast_element instruction
Eliminate use of GetArg1() in the jump_on_val* instructions
Eliminate use of GetArg1() in the select_val instruction
beam_emu: Eliminate sloppy use of tmp_arg1 and tmp_arg2
beam_emu: Don't inline helper functions into process_main()
beam_emu: Clean up calling of the error_handler module
Simplify a select_val instruction that selects only one value
Optimize creation of tuples
...
|