Kernel Release Notes
Kernel 2.2.1
Known problems
-
If an error occurs when accessing a file, the file process
dies, and any further attempts to access the file may cause
the caller to hang.
Own Id: OTP-1400
Aux Id: OTP-1034
-
Using
gen_tcp:send
on a closed socket causes the
process to hang.
Own Id: OTP-2714
Aux Id: seq 1122
-
If more than 1024 bytes of text (more than 256 in release R4)
are pasted into the shell, and this text consists of
more than one expression sequence (each ending with a period),
text after the first 1024 bytes may be lost.
Own Id: OTP-3041
Fixed errors and malfunctions
-
global locks do now keep track of all pids that share
the same lock, i.e after two set_lock and one del_lock
the lock is still set.
Own Id: OTP-1849
-
Global may have exited if bursty nodeup/nodedowns was
received to a node. This is solved now.
Own Id: OTP-2766
Aux Id: otp-2728, otp-2928
-
Changes of the kernel configuration parameter 'distributed'
are now taken care of at release upgrade.
Kernel will however not automatically move applications
to the nodes with highest priority; this must be done
manually after the release upgrade is finished
(use application:takeover/2).
Own Id: OTP-2830
-
If a transient application exited with reason normal
application_controller crashed; this malfunction is now
corrected.
Own Id: OTP-2955
Aux Id: seq1445
-
If a system is started and a permanent application
has erroneous environment parameters, the system should
crash. This is the behaviour now, before the system
only printed an error report.
The system will only crash if the application is
started from a boot script genrated by calling
systools:make_script/1/2
If application:start/1/2 is called the behaviour is as before.
Note: affects the result of the systools:make_script/1/2.
systools:make_script generates now a call to
application:start_boot/2 instead of as prevoiusly a call to
application:start/2.
Own Id: OTP-3002
-
applicaition:get_application(module_name) returned 'undefined'
if the module_name was defined as {module_name, Vsn} in the
.app-file
Own Id: OTP-3081
Aux Id: Seq 1618
-
The possible InternalStatus
stopping
was missing in
the documentation for init:get_status/0
.
Own Id: OTP-3096
Aux Id: Seq 1672
-
when opening an externally formatted disk log the header
was not written to the files.
Own Id: OTP-3118
-
application:permit can now handle also applications
which are only loaded (but not started).
Own Id: OTP-3119
-
When reading a wrap log and for some reason a file
was missing an error was given and it was not possible
to read further.
Now a missing file will result only in an error log
message and it is possible to continue reading the log.
Own Id: OTP-3136
Aux Id: OTP-3137
-
It is now possible to open an existing wrap log without
giving the size parameter. The last given values will
be used as default values.
Own Id: OTP-3147
Improvements and new features
-
It is now possible to change the size of an open disk log.
For a halt log it is always possible to increase the size,
but it is not possible to decrease the size to be less than
the current size of the file. For a wrap log it is always
possible to increase both the size and number of files.
If the max files is decreased the redundant files will be
removed next time the log wraps. If the size of the
files is decreased the change will not affect the logs
already full.
If the log size is decreased for instance to save space,
the function inc_wrap_log/1 can be used to force the log
to wrap.
Own Id: OTP-2999
Aux Id: OTP-2989,OTP-2990,seq 1499
-
It is possible to force the disk_log to change to next
wrap log file by calling the new function
disk_log:inc_wrap_log(Log). This makes the current file
to be closed and the next index file is opened.
Own Id: OTP-3078
Aux Id: Seq 1607
-
The undocumented and not recommended BIFs
erlang:spawn/2
and erlang:spawn_link/2
will disappear in OTP R6, to
be replaced with a more consistent set of BIFs for spawning
processes from funs.
Own Id: OTP-3141
Aux Id: OTP-3121
Kernel 2.2
Fixed errors and malfunctions
-
net_adm:names
did not always return the correct result
when epmd on the own host was called on Windows or Linux. This
is now corrected.
Own Id: OTP-2851
Aux Id: OTP-2840
-
Some BIFs e.g
append
could during certain circumstances
consume huge amounts of memory (causing the Erlang node to crash) before
the garbage collector was invoked to free the unused memory. This is
now corrected.
Own Id: OTP-2865
Aux Id: Seq 1337
-
When a heart command is set with
heart:set_cmd(Command)
the length is miscalculated which results in 2 garbage
characters at the end of the command. This can cause the
heart command to fail if the garbage characters are other
chars then SPACE or NULL.
This is now corrected.
Own Id: OTP-2903
Aux Id: Seq 1372
-
I thought I already had written the release note for thisx
Own Id: OTP-2911
Aux Id: Seq 1384
-
Previously
gen_tcp:accept
erroneously could return
{error,normal}
. This is now corrected.
Own Id: OTP-2954
Aux Id: Seq 1374, OTP-2904
-
A request to start a distributed application, which already
was started, caused that the application controller hanged.
This malfunction is now corrected.
Own Id: OTP-2967
Aux Id: Seq 1474
-
Two processes starting the same application on the same node
at the same time actually started the application twice.
Now the systems keeps track of all the start requests and
starts the application only once. The result of the
start is returned to all requesters.
Own Id: OTP-2973
Aux Id: Seq 1461
-
A local application would not start when its permission
was set to true if it was initially started with permission
set to false.
Own Id: OTP-2974
-
The error returns from the functions in the
rpc
module
were not consistent: if {badrpc, {'EXIT', Reason}}
was
reported for remote nodes, only {badrpc, Reason}
was
reported for the local node.
Now, {badrpc, {'EXIT', Reason}}
is reported in both
cases.
(*** POTENTIAL INCOMPATIBILITY ***)
Own Id: OTP-3007
Aux Id: OTP-2875
-
net_adm:localhost/0
is corrected to not append a
"." to the hostname if the domain is not set (i.e when the
domain is the empty string).
Own Id: OTP-3013
Aux Id: Seq 1533
-
On Unix, if there were no current working directory for an
Erlang node (if another Unix process has deleted the directory),
the commands
c:pwd/0
, m/0
, and m/1
would
crasch. The pwd
has been corrected to print
"Cannot determine current directory" if there are no current
directory, and the other commands do not attempt to convert
absolute pathnames to relative pathnames as they usually do.
Own Id: OTP-3015
Aux Id: Seq 1537
-
When starting the emulator with the
-noshell
switch,
a "^R" marker was printed if reading and writing on the
console was mixed. This marker is no longer printed.
Own Id: OTP-3085
Aux Id: Seq 1629
Improvements and new features
-
Functions have been added to the
file
module to
handle links. The read_link_info/1
reads information
about a symbolic link, and the read_link/1
function
returns what a symbolic link is actually pointing to.
The make_link
function creates a new hard link,
and the make_symlink
function creates a new symbolic link.
Own Id: OTP-1385
Aux Id: OTP-3008
-
It is now possible to reconfigure global groups. The
parameter name is changed from node_groups to global_groups.
Own Id: OTP-2497
Aux Id: OTP-1559
-
gen_udp:recv/3
has been added, in analogy with
gen_tcp:recv/3
,
and gen_udp:recv/[2,3]
are now documented.
Own Id: OTP-2645
-
Allowed number of files in a wrap log is increased from 255
to 65000.
Own Id: OTP-2748
Aux Id: seq 1204
-
gen_tcp:connect/[3,4]
take the same options as
gen_udp:open/[1,2]
, in particular the binary
option. This is not new in R5, but was
left out of the documentation.
Own Id: OTP-2814
Aux Id: Seq 1250
-
The syntax of Erlang tokens has been extended to
allow the use of the full ISO-8859-1 (Latin-1)
character set. This is noticeable in the following
ways: all the Latin-1 printable characters can be used
and are shown without the escape backslash convention;
atoms and variables can use all Latin-1 letters.
Own Id: OTP-2985
-
The disk_log wrote a header every time a log file was opened,
now the header is only written once in each file.
Own Id: OTP-3014
Aux Id: Seq 1534
-
A new open mode,
append
, has been added to the
file:open/2
function.
Own Id: OTP-3067
You can find release notes for older versions
here.