Kernel Release Notes
Kernel 2.1.1
Fixed errors and malfunctions
-
ets:file2tab
which uses disk_log
now uses the read_only
option to disk_log:open
when it opens the file.
Own Id: OTP-1716
Aux Id: OTP-1765
-
All applications are now informed of all changed, new and
removed configuration parameters at installation of a
new release. The new call-back functions is defined as
Mod:config_changed(Changed, New, Removed).
Where Mod is the module defined in the .app file.
Refer to the reference manual application(3).
Own Id: OTP-2012
-
When killing a shell in the ^G command level using the
sequence "^G k", some processes associated with the
shell were left running. Now, there are no extra processes
left anymore.
Own Id: OTP-2317
-
The function
gen_tcp:controlling_process(S, NewOwner)
did hang
the calling process if it was not the current owner of S
.
This is now corrected. If called by any other process than the current
owner {error, eperm}
will be returned.
Own Id: OTP-2321
Aux Id: seq 779
-
When application environment variables are given on the
command line, no error message was given if the variable's
value was malformed; application:get_env/2 simply returned
'undefined'. Now, application:start/1
returns an error in those cases.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-2350
Aux Id: OTP-2347, OTP-2348
-
If a process attempts to call erl_ddll:unload_driver/1 on
a driver for which it didn't previously call
erl_ddll:load_driver/2, the unloading
fails. In previous release, either the result 'ok' was
returned, or in certain cases the erl_ddll server
crashed. Now the correct error tuple is returned.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-2568
-
Sometimes when a R3 node and a R4 node were connected, global
could crash due to not checked '{badrpc,nodedown}' messages.
This is now corrected.
Own Id: OTP-2648
Aux Id: Seq 987
-
The processes which controls a port corresponding to a
socket is now set to priority high instead of normal
to assure that e.g node-ticks between
distributed nodes are sent fast enough.
Own Id: OTP-2709
Improvements and new features
-
The documentation has been augmented with a description of
the error return values from erl_ddll:load_driver/2 and
erl_ddll:unload_driver/1, and the error formatting function
format_error/1.
Own Id: OTP-2569
-
The 'backlog' option to gen_tcp:listen/2 is now documented.
Own Id: OTP-2674
Kernel 2.1
Fixed errors and malfunctions
-
For the arguments to the command-line option -s, the
documentation was incorrect. It has been changed to reflect
the actual behaviour, namely that all arguments to the
function called by -s are passed as atoms.
Own Id: OTP-2087
-
When using the -boot and -config command-line options
on Windows, filenames in the native Windows syntax using
only backslashes didn't work -- forward slashes had to be
used. Now backslashes work as well as forward slashes.
Own Id: OTP-2373
-
An unnecessary report to the error logger caused by a timeout from
inet:gethostbyname
and inet:gethostbyaddr
is removed.
Own Id: OTP-2478
Improvements and new features
-
New start type, {failover, node()}, added. Note,
for compability reasons this is only valid if the new key
start_phases
is defined in the .app
-file
for the application, refer to application (3)
.
It is also possible to check the current start type
by application:start_type()
, refer to
application (3)
Own Id: OTP-1504
Aux Id: OTP-1979, OTP-2498
-
A first increment to allow several global name spaces
to exist in the same system. The Global Groups are
defined in the .config file by the key '{node_groups,
[{GroupName, [Node]}]}.
If the node_groups-key is not defined the system
behaves as before; if the Global Group service
is used then it is required that all nodes in a system
are defined in one. and only one, Global Group.
It is not possible to mix nodes belonging to
a global group and nodes not belonging to a global
group in the same system, if global group functionality
is used.
Missing functionality: Reconfiguration, at the moment
it is not possible to change the configuration without
restarting all nodes.
Own Id: OTP-1559
Aux Id: OTP-2497
-
Better error messages for erroneous .config file.
Own Id: OTP-1983
-
The functions
write_file_info/2
, change_owner/2,3
,
and change_time/2,3
in the file
module are
now documented.
Own Id: OTP-2252
Aux Id: seq 710
-
It is now possible to synchronize the start of an
application by defining a new key in the
.app
file, {start-phases, [{Phase, Args}]}. This will result
that the new call back function
Mod:start_phase(Phase, Args)
is called, Mod is
the module defined in the mod
key of the
application.
There is also a generic help module to syncronize the
start of included applications, application_starter
.
If this module is defined in the mod
key for
the top application, the included applications
will be started in each start phase in the order
of appearance in the included_applications
key.
Own Id: OTP-2498
Aux Id: OTP-1504
-
It is added to the documentation of
file:list_dir/1
that
the returned filenames are not sorted.
Own Id: OTP-2508
Aux Id: seq 891
-
A new key,
id
, in the application resource file
(.app
, ). It can be used to define the product
identification of the application.
Own Id: OTP-2518
-
The description of error_handler:undefined_global_name/2
has been removed, since it's no longer called from
Erlang 4.6 and later.
Own Id: OTP-2525
-
Sequential tracing is available in alfa status and only
for JAM systems. Since it is an alpha release the
programmatic interface could be slightly changed based on
experience from users. The module
seq_trace
contains the interface.
Sequential tracing makes it possible to trace all messages
that are a direct result from one initiating message
e.g. all messages in a call-setup for one connection.
Own Id: OTP-2527
-
It is now possible to read an application's resource file
(.app) keys. New functions:
application:get_all_key()
application:get_all_key(Application)
application:get_key()
application:get_key(Application, Key)
Own Id: OTP-2535