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.

If you are on the Ericsson intranet you can now use

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 

        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 

        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 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

                   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

                   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 --------------------------------------------------------------


        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.


        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 

        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

        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

  -- 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-questions mailing list