[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

LDM 6.2.0 released


Version 6.2.0 of the LDM package is now available. Installation
instructions can be found at


under the heading "Download, Installation, and Configuration".

The release-notes and change-log are attached to this message. They can
also be seen by going to the GForge webpages of the LDM Project at


and clicking on the appropriate book icon in the "Latest File Releases"

The files CHANGE_LOG and RELEASE_NOTES also exist in the top-level
source-directory of the source-code distribution.

NOTE TO THE NWS: You don't have to replace your LDM-s unless you want
to.  Your old LDM-s should continue to work just fine.

Steve Emmerson

        Changes from LDM Version 6.1.0 to LDM
                  Version 6.2.0

Added "rpc" subpackage -- replacing use of the
native RPC library -- to work-around a bug in the
AIX 5.1 ONC RPC 4.0 implementation, which fails
when receiving large (~10 MB) RPC messages (i.e.,
most NIMAGE data wasn't being received).

Modified product-queue (pq) module:

    Corrected bug in pq(3) module when inserting a
    data-product that has the same insertion-time
    as an already existing data-product.  The
    insertion-time in now incremented by
    one microsecond to ensure unique keys
    in the time-map rather than using the
    byte-offset of the data-product.  Hopefully,
    this will eliminate the rare occurrence
    in which a data-product is missed by a
    product-queue reader because it has the same
    insertion-time as the previous data-product
    in the product-queue but has a smaller

    Corrected fClr() and fMask() macros in file
    "pq/fbits.h" so that they correctly handle
    the case where the "flag" variable is smaller
    than the variable in question.  This removes
    a problem creating product-queues with
    data-sections larger than (2^32)-1 bytes
    on systems where sizeof(size_t) == 8 and
    sizeof(unsigned) == 4.

Made all programs that use regular-expressions
convert all externally-specified pathological
regular-expressions into non-pathological ones.

Modified top-level LDM server:

    Removed latent bug that caused file-descriptor
    table to fill-up -- preventing additional
    connections -- if fork(2)s failed for a while.

    Corrected bug in LDM configuration-file
    parser.  The LDM will now log an error-message
    and terminate if it encounters an invalid
    feedtype expression.

Modified downstream (i.e., receiving) LDM:

    Changed the way the "last" data-product
    creation-time is saved.  Before, the
    creation-time of the most recently received
    data-product was used.  Now, that time is
    used only if it is more recent than the saved
    time.  This should reduce problems caused by
    the sequential arrival of data-products with
    creation-times that are non-monotonic.

    Modified down6_get_last_arrival() to
    accomodate SunOS 5.8's c89(1).

    Improved error-messages when the LDM can't
    connect to an upstream LDM.

Modified programs to reduce artificially-induced

    Modified the toClients() function in the
    "pqing" module so that the "arrival" argument
    is ignored and the creation-time of the
    data-product is set within the function
    itself.  This should reduce the (apparent)
    latency on systems doing data-product

    Modified the pqinsert(1) utility so that
    the data-product creation- time is set just
    prior to inserting the data-product into
    the product-queue.  This should reduce any
    (apparent) latency.

Modified pqact(1).  A configuration-file with
no entries is now logged as such rather than as
having a syntax error.

Modified rtstats(1):

    A warning-level error-message is logged if it
    can't connect to the remote LDM.

    The latency field in the data-product
    it creates is now formatted "%g" from a
    floating-point value.

Modified pqcheck(1).  Added support for logging
debug-level messages (-x option).

Modified scour(1) utility to work-around bug in
OSF1's find(1) utility.

Ensured that all utilities log messages of level

Modified ldmadmin(1) script:

    Moved the configuration section of ldmadmin(1)
    into a separate file (etc/ldmadmin-pl.conf).
    A consequence of this is that if the
    environment variable LDMHOME is not set, then
    $HOME is used.

    Removed setting of UDUNITS_PATH because it
    doesn't have anything to do with running
    the LDM.  User's who need this environment
    variable set in order for the gribtonc(1)
    decoder to work properly should set it in the
    profile-file of the LDM user's user-shell.

    Corrected default value of $surf_size
    variable.  Previous value of "2M" caused
    command "ldmadmin mksurfqueue" to hang.

    Fixed bug in ldmadmin(1) so that "ldmadmin
    watch -f 'IDS|DDPLUS'" now works.

    Made "ldmadmin clean" abort if the LDM system
    is running.

    Corrected use of "$?".

    Corrected some error-messages.

Added scouring of ~ldm/logs/*.stats files to
example scour(1) configuration-file.

Ported package to

        Darwin (alias Mac OS X)
        SunOS 5.10 (alias Solaris 10)

    The package has poor performance under SunOS
    5.10.  Sun is investigating.

Modified configure(1) script:

    Made the script try to create an LDM system
    that supports product-queue sizes up to
    (2^32)-1 bytes.

    Added "--disable-max-size" option so that
    the user can ensure that the resulting LDM
    only supports smaller product-queue sizes (to
    use a previously-existing product-queue, for

    Corrected test for non-socket /dev/log.

    Now augments, rather than replaces, a
    user-specified CPPFLAGS.

Modified makefiles:

    Modified top-level makefile to get
    libldm.a(ldm_version.o) updated when VERSION
    is modified.

    "make clean" no longer removes *.log files;
    "make distclean" does.

Removed files INSTALL and INSTALL.bin from
distribution after moving their information to
file README.

Renamed this file (HISTORY) to CHANGE_LOG.
        Release Notes for LDM version 6.2.0


    Self-Contained RPC

        This version of the LDM has its own RPC
        (Remote Procedure Call) implementation.
        This was done because the native RPC
        implementations on some systems (notably
        AIX 5.1) are buggy (they fail to transmit
        data-products larger than 16 MB, for

    Large Product-Queue by Default

        By default, this version of the LDM
        will be built with support for large
        product-queues (up to (2^32)-1 bytes
        in size) -- if that's possible on
        the system in question.  If you want
        to reuse a pre-existing queue that
        was created with a previous version
        of the LDM that didn't support large
        product-queues, then you'll have to
        specify the option "--disable-max-size" to
        the configure(1) script when you execute
        it.  The installation instructions have
        more information.

        Because of this change, THE INSTALLATION
        and follow them.

    Separate ldmadmin(1) Configuration-File

        The configuration section of the
        ldmadmin(1) script has been broken-out
        into its own file (etc/ldmadmin-pl.conf)
        to eliminate the need to modify the
        ldmadmin(1) script every time the LDM is


    If your previous LDM didn't support large
    product-queues (see above) and this updated
    one will, then you must re-link all programs
    that access the product-queue that are not
    part of this distribution.  Failure to do so


    Because problems can be reported after a
    release is made, you should check the "Known
    Problems" webpage at

nt/software/ldm/ldm- 6.2.0/release-notes.html#bugs

NOTE: All email exchanges with Unidata User Support are recorded in the Unidata inquiry tracking system and then made publicly available through the web. If you do not want to have your interactions made available in this way, you must let us know in each email you send to us.