The update R7B-4 is released
Kent Boortz
kent@REDACTED
Tue Oct 2 21:52:57 CEST 2001
Bug fix release : otp_src_R7B-4
>From snapshot : 20010930
This is a bug fix release R7B-4. You can download the full source
distribution or the patch that take R7B-3 up to R7B-4.
http://www.erlang.org/download/otp_src_R7B-4.tar.gz
http://www.erlang.org/download/otp_src_R7B-3to4.patch.gz
If you are on the Ericsson intranet you can now use
http://erlang.ericsson.se/opensource/download/otp_src_R7B-4.tar.gz
http://erlang.ericsson.se/opensource/download/otp_src_R7B-3to4.patch.gz
The release readme is included below.
To patch the previos release "otp_src_R7B-3" you use a patch program
that understand the "unified" patch format and do
% cd otp_src_R7B-X
% gzip -dc /location/of/patch/file/otp_src_R7B-3to4.patch.gz | patch -p1
There is no support for building a Windows version from source.
For installation instructions please read the README that is part of
the distribution,
The OTP Team
Release notes
-- mnesia -----------------------------------------------------------------
OTP-3712 - Speed/load improvements disc_copies tables are not
implemented with dets anymore.
OTP-XXXX - Removed references to dead nodes in loader queue,
which could lead to system wide hangings, if a node goes
down and another node has a reference to it in it's queue.
OTP-4097 - Mnesia (3.10.0) could crash during restart if it the logs
contained an update_counter operation.
OTP-4102 - Mnesia didn't remove buffered messages from dead nodes,
which could lead to that mnesia hanged if a mnesia went
down on another node during early startup.
OTP-4127 - The user supplied fallback_error_function now get's the
dying Node name as an argument.
-- mnesia_session ---------------------------------------------------------
Fixed error in table_info when accessing mnesia version 3.9.4 or later.
-- asn1 -------------------------------------------------------------------
OTP-4025 - Do not generate record in .hrl file for SET types
OTP-4026 - Fixed internal error when using BIT STRINGs with
Named Number List in combination with compact_bit_string
and ber_bin options.
OTP-4037 - The atom 'com' can now be used in ENUMERATED as an
EnumerationItem.
OTP-4057 - ber: Now it is possible to encode data from format
"{Type,Value}" in a SEQUENCE OF RequestParameter,
when RequestParameter is of type ENUMERATED.
OTP-4058 - Now is the bug in the new parser removed, that caused
failure on COMPONENTS OF.
-- erts/kernel/runtime_tools ----------------------------------------------
OTP-4018 - disk_log caches written terms.
This implies that the close, lclose and sync functions
can return file errors.
pid2name/1 is a new debug function that given a
disk log process (a pid) returns the name of the log.
OTP-4015 - In configurations where hostname resolving was done by the
inet_gethost_native module, a race condition could make
processes calling inet:gethostbyname crash with an exitcode
'unexpected_supervisor_response'. That race condition is
now removed.
OTP-3933 - A trace client fun that can be given to
dbg:trace_client/3 now gets informed about the
end of trace, so it can do something useful
with its collected data. See dbg:trace_client/3.
OTP-3934 - The flag 'procs' to erlang:trace/3 has got
a slightly new behaviour: Trace tag 'spawn' has
a new element, and trace tags 'register',
'unregister', and 'getting_unlinked' are new.
Therefore, new and/or different trace messages
will arrive to the tracer when the 'procs'
trace flag is used.
OTP-3938 - When using trace flags 'running' and 'timestamp'
to determine the amount of running time different
processes in the system were using, the results
were somewhat unreliable since the time to write
the trace buffer itself randomly burdened the traced
processes. This is now compensated for by faking
process schedule out and in trace messages around
the file writes (for the trace file driver
trace_file_drv).
OTP-3935 - Wrap file traces now can limit the size of each
file with a time instead of a size. See the
documentation for dbg:trace_port/2.
OTP-3965 - The file names for wrap file traces has been changed.
This has been done to make it easier for auxiliary
tools to know the file names when fetching wrap
traces over the network, especially if the tools
used for fetching does not support wildcards in
filenames. See the documentation for
dbg:trace_port/2. NOTE that this change may affect
existing fetch tools. Especially note that the
number of files in the wrap trace must now be known
when reading the trace, or as it is stated in the
documentation: the same wrap trace specification
must be used when reading the trace as when
creating the trace.
OTP-4047 - When gen_tcp:controlling_process/2 was called with
a closed socket as argument, it crashed internally
with a badmatch. This has now been corrected.
The error return code from gen_tcp:send/2 has been
changed in some cases to harmonize with the error
return codes from other functions in the module.
This is a slight incompatibility.
OTP-3929 - When demonitor/1 was used on a monitor for a process
on another node (for example, using gen_server
calls), not all associated allocated memory was
freed, causing a memory leak of some 20 bytes each time.
This has been fixed.
OTP-4019 - The --enable-threads flag was previously ignored by
the configure script. This has now been corrected, and
it is now possible to enable threads by passing the
--enable-threads flag to the configure script when
building the open source release.
OTP-4071 - When the system limit on maximal number of nodes
known to a node had been reached (the distribution
table had been filled), pids, ports, and references
belonging to previously connected nodes could change
node belonging. This bug has now been fixed.
OTP-4075 - dlmalloc was introduced in the Erlang emulator
version 5.0.2.3 because it performed better than
Solaris malloc when the emulator needed to allocate
large short-lived memory blocks. It was later observed
that it performed worse than Solaris malloc under some
conditions. We have therefore now removed dlmalloc
and replaced it with our own special treatment of
short-lived memory blocks (called sl_alloc) and the
standard malloc implementation for other blocks.
The current version of sl_alloc uses the system call
mmap() (on platforms where mmap() exists) in order to
allocate large blocks (just as dlmalloc) and uses the
standard malloc implementation for small blocks.
Maximum number of mmapped blocks and the threshold
which is used to determine if a block should be
mmapped can be adjusted, see "System Flags" in erl(1).
sl_alloc can be disabled. The standard malloc
implementation will in this case be used instead, see
"System Flags" in erl(1).
OTP-4095 - A memory leak in the efile driver has been fixed.
For every file that was closed, 12 bytes were lost.
OTP-4109 - A bug in the heap fragment allocation could cause an
emulator crash. This bug has now been fixed.
OTP-4112 - Emulator could crash due to exiting process monitoring
process on a node that concurrently goes down. This
has now been corrected.
OTP-4116 - Miscalculation in gc could cause emulator crash. This has
now been fixed.
OTP-4089 - A creepy bug involving trace has been corrected: when
trace process specification 'all' or 'new' was given to
erlang:trace/3, a default trace flags and tracer
for new processes was stored in the emulator. If then,
this tracer was killed, all existing processes that tried
to send trace messages to the killed tracer noted that
their tracer was dead, and cleared their trace flags, so,
eventually, the tracing in the emulator faded off,
except for all new processes that also cleared their
trace flags only after trying to send one trace message
to the dead tracer. So far so well. Not neat, but well.
Unfortunately, much later, the pid of the dead
tracer was reused for a new innocent process that
unexpectedly got all trace messages from all new processes.
This typically caused that process to crash.
Now, when the process that is default tracer dies,
the emulator default trace flags and tracer are cleared
immediately.
The faked time compensating trace message
{trace_ts, Pid, out, MFA} has been changed to
{trace_ts, Pid, out, 0} because the MFA was almost
always wrong, and very hard to make correct. The same
applies for {trace_ts, Pid, in, 0} as well, but
of course, the real 'out' and 'in' messages contains
MFA as before. This may be regarded as an
incompability, but note that MFA=0 could
appear before in rare cases, though it was not documented.
A trace flag 'all' has been added to the repertoire of
erlang:trace/3.
When turning off trace flags with erlang:trace/3,
it is no longer necessary to state the correct current
tracer of the traced process(es).
Please see the documentation for erlang:trace/3.
OTP-4120 - An mmap leak in sl_alloc has been fixed.
OTP-4115 - A memory leak of 36 bytes per thread created, and a
potential memory leak of 8 bytes per thread created
have been fixed.
-- os_mon -----------------------------------------------------------------
OTP-4000 - Gen_server calls to the memsup server of the os_mon
application could fail due to slow responses from
the memsup port program. The memory polling is now handled
by a separate process making answers from memsup more or
less instant.
The disksup server of the os_mon application is modified so
that it does not use os:cmd() on Unix systems.
-- orber ------------------------------------------------------------------
Orber now support interceptors.
-- cosEvent --------------------------------------------------------------
cosEvent-2.0
This version is a completely new version of the cosEvent
application; older versions was not compliant with the OMG
specification. The look and feel have been changed
to be more uniform with the other COS-services.
Incompatibilities
-----------------
All API:s not compliant with the OMG standard have been removed.
Registering the cosEvent application in the IFR is done via the
cosEventApp module. Upgrade in runtime is not possible.
-- cosNotification -------------------------------------------------------
OTP-4078 - It is now possible to start global channel factories.
OTP-4077 - The Orber, version 3.2.5 or later, configuration parameter
orber_debug_level can now be used to generate reports when
abnormal situations occurs. For more information consult
the Orber User's Guide. Note, it is not recommended to use
this option for delivered systems since some of the reports
is not to be considered as errors. The value of
orber_debug_level must be 3, or higher, for reports to be
generated.
OTP-4079 - When using the cosEvent API accessing a cosNotification
admins the objects returned by the functions
obtain_push_supplier, obtain_pull_supplier,
obtain_push_consumer and obtain_pull_consumer was not of
the correct type. Due to the interface change it is not
possible to upgrade during runtime.
-- cosNotification/cosTime -----------------------------------------------
OTP-4086 - If one used the '_get_default_supplier_admin'/1, exported
by the CosNotifyChannelAdmin_EventChannel-module, it
resulted in a loop which overloaded the channel. This is
no longer the case.
OTP-4092 - If one used the '_get_default_filter_factory'/1, exported
by the CosNotifyChannelAdmin_EventChannel-module, a new
instance was created each time. Now fixed.
OTP-4098 - SupplierAdmin's did not filter any events, even though
Filter objects had been attached to the SupplierAdmin.
OTP-4099 - When passing event sequences, the PushSuppliers and
PullSuppliers could crash if the objects had Filter objects
associated and only a subset of the sequences where
approved.
OTP-4093 - The include paths for CosNotification.idl have been
changed. Hence, if you include this file in your own
IDL-files you must update your paths to also point to
where the cosEvent IDL-files are stored. An includepath
in CosTimerEvent.idl have been changed. Hence, if you
include this file you should check your include paths
for your IDL-file(s), i.e., add the path to
CosEventComm.idl.
-- tools -----------------------------------------------------------------
OTP-4010 - A preliminary version of the new fprof tool has been
added to application tools.
-- ic --------------------------------------------------------------------
OTP-4107 - Added the erlang binary special type in C backends.
The erlang binary special type allows efficient transfer of
binaries between erlang and C. At the C side, the erlang
binary type is represented the same way as idl-c sequences.
At the erlang side, the build in binary type is used.
To erlang binary type is defined inside the erlang.idl file.
-- sasl ------------------------------------------------------------------
OTP-3998 - systools:make_relup/3,4 now generates
upgrade instructions for the applications in start
order, instead of in reversed start order.
OTP-4121 - systools:make_script/1,2 now keeps the order
of the release resource file (.rel) also for
included applications.
More information about the erlang-announce
mailing list