Release Notes
UM Version 6.13

The most-significant updates to UM version 6.13 are enhanced TCP-based Topic Resolution (redundancy and scalability), and Persistence performance improvements.

Attention
There are some special upgrade instructions for UM versions 6.13 and beyond that will affect a small percentage of users upgrading from pre-6.13 versions of UM. See Special Upgrade Instructions for 6.13.


Enhancements for 6.13  <-


Streaming Enhancements for 6.13  <-

The following new features and enhancements apply to UMS, UMP, and UMQ products.

  • The Stateful Resolver Service (SRS) can now be deployed redundantly. UM components can be configured for multiple instances of SRS. If one SRS goes down or is cut off from the network, the other SRSes will continue to provide Topic Resolution service. See TCP-Based TR and Fault Tolerance for details.

  • The SRS now supports tracking of topics that each context is interested in (has receivers for). This allows further reduction of TR traffic by filtering source advertisements based on topic interest. Note that this can interfere with the resolver_source_notification_function (context) and resolver_event_function features. See TCP-Based TR Interest for more information.

  • A change has been made to how configuration file errors are handled - they can now be treated as "warnings" instead of "errors". See Configuration Error Handling for details.

  • Most of the UM daemons running as Windows Services can now have a file configured to set desired environment variables for the Service process. See Configure the Windows Service (the "-E" option).


Persistence Enhancements for 6.13  <-

The following new features and enhancements apply to UMP and UMQ products.

  • Performance improvements increasing persistence throughput of both storage of new messages and recovery of stored messages.

  • Fixed limitation 10877 allowed a change to the default value for Store option repository-disk-max-read-async-cbs from 16 to 10,000. This improves receiver recovery rates. See Special Upgrade Instructions for 6.13.

    Warning
    If your Store configuration specifies a value for repository-disk-max-read-async-cbs, you might see your recovery performance decrease. See fixed limitation 10877.
  • The UM Store Daemon can now set thread affinity to "pin" threads to one or more desired CPU cores. This can provide a significant improvement in throughput. See Store Thread Affinity.

  • Selected messages in the Persistent Store can now be marked as invalid, to prevent them from being delivered to a recovering receiver. This can be useful if a misbehaving publisher sends a "poison" message that causes receivers to crash; having that message in the Store's repository means that restarting the failed receiver will just cause it to crash again when the message is recovered. See Request: Mark Stored Message Invalid.

    Warning
    If misused, this feature allows a user to interfere with message delivery. By default, this feature is disabled. However, especially if you have enabled UMP Element "<remote-config-changes-request>", Informatica recommends Securing Daemon Control Requests.
  • A failed receiver can now be de-registered from a Persistent Store. This will delete the state information for that receiver. See Request: Deregister Receiver.

    Warning
    If misused, this feature allows a user to interfere with message delivery. By default, this feature is disabled. However, especially if you have enabled UMP Element "<remote-config-changes-request>", Informatica recommends Securing Daemon Control Requests.
  • A Persistent Store's state and cache files can now be statically analyzed, and stored messages can be extracted. See Store Repository Profiling (SRP).


Queuing Enhancements for 6.13  <-

The following new features and enhancements apply to the UMQ product.

  • None.


Dynamic Router Enhancements for 6.13  <-

The following new features and enhancements apply to the Dynamic Routing Option (DRO).

  • None.


Fixed Limitations for 6.13  <-


Streaming Fixed Limitations for 6.13  <-

The following bug fixes apply to UMS, UMP, and UMQ products.

Change Request

Description

10726

FIXED: When the multiple_receive_maximum_datagrams (context) option is used, undesired latencies can be introduced by multiple Topic Resolution or MIM datagrams being processed in a row.

The option now only affects LBT-RM and LBT-RU transports. It no longer applies to Topic Resolution or MIM.

10794

FIXED: In a race condition related to the closing of a socket, it is possible to get:
Core-5455-1: epoll_ctl: EPOLL_CTL_DEL ...
or:
Core-5455-2: lbm_fd_cancel epoll_ctl: epoll_op: ...
or:
FATAL: failed assertion [epoll_err==0]
(due to the unpredictable nature of race conditions, there may be other symptoms as well.)

10685

FIXED: In UM version 6.12, a dependency was added to UM for a dynamic library for "rsock", which is used for communication with the SRS. However, a static form of the rsock library was not provided.

As of UM version 6.13, the "rsock" code is now provided in static form. It is included in the "liblbm.a" library.

10841

FIXED: A hot failover receiver can crash with:
FATAL: failed assertion [hfrcv->timer_id == -1]

10822

FIXED: The SRS Daemon Statistics "clients.DR.inactive.SIR.count" and "clients.DR.inactive.SIR.count" are incorrectly classified as errors and are included in the SRS_ERROR_STATS message type.

The counters "clients.DR.inactive.SIR.count" and "clients.DR.inactive.SIR.count" have been moved to be in the SRS_STATS message type. See Message Type: SRS_STATS.

10777

FIXED: Inadvertent connection to TCP source from a UIM Request Client results in memory leak.

Note that while the memory leak is fixed, it is still not valid for an application to send a UIM to a port that is used by a TCP source.

10657

FIXED: There are cases where the use of a Hot Failover (HF) receiver will inhibit the delivery of unrecoverable Tail Loss events.

9917

FIXED: When using LBT-RU, packet lengths are sometimes improperly set according to LBT-RM's maximum datagram size. This can result in errors of the form:
Core-5688-449: LBMC datagram malformed


Persistence Fixed Limitations for 6.13  <-

The following bug fixes apply to UMP and UMQ products.

Change Request

Description

10877

FIXED: Large values for repository-disk-max-read-async-cbs can lead to unresponsive Stores during large message recovery operations by receivers.

As of UM version 6.13, changes in the internal threading model of the Store avoids contention between receiver message recovery handshaking with the Store, allowing higher recovery performance without degrading responsiveness.

Associated with this fix is a change in the default value for repository-disk-max-read-async-cbs from 16 to 10,000. Users are recommended not to explicitly set a value for repository-disk-max-read-async-cbs and instead simply allow it to default.

See Special Upgrade Instructions for 6.13.

10849

FIXED: If using LBT-RU transport with Smart Sources, and two or more sources are mapped to the same transport session, deleting one of them leaves the other sources on the same session corrupted. This can result in segmentation faults or other bad behaviors.

10818

FIXED: If a persistent receiver configuration does not set values for ume_state_lifetime (receiver) and ume_activity_timeout (receiver) (both default to zero), the store's value of receiver-state-lifetime is not used to determine the receiver's state lifetime, as it should be. Instead, the value of receiver-activity-timeout is used.

10867

FIXED: If a Source initially registers with a Store with Proxy Sources disabled, and then the source restarts and registers with Proxy Sources enabled, the Store fails with a segmentation fault.

This sequence no longer causes the Store to crash. However, changing the Proxy Source configuration is not permitted across a re-registration. See Registration Limitations.

10811

FIXED: There are certain sequences of of shutting down and restarting persistent receivers and stores that can result in multiple entries for the same source registration on the Store Web Monitor. For this problem to happen, the receiver must use the deregistration API.

10808

FIXED: If a session ID value is chosen that exceeds 2**31, it is displayed on the Store Web Monitor as a negative number.

Session IDs are now displayed as 32-bit unsigned numbers.

10765

FIXED: For all UM versions 6.11.* and 6.12.*, the Store logs the warning:
Core-5688-28: WARNING: context config variable receive_thread_pool_size is deprecated

This warning is benign and can be ignored. As of UM version 6.13, this warning is removed altogether.

10737

FIXED: A registering RPP receiver can get old messages replayed after a store is shut down, the state and cache files deleted, and the store restarted.

This bug is caused by the cleanly restarted Store requesting Late Join message recovery from the Source, and the receiver registering with the Store during the late join process. The receiver is mistakenly told to start with the sequence number of the next message to be recovered by Late Join.

As of UM version 6.13, when a receiver registers with a store and that store has no state information for that receiver, the receiver will be told to start with the sequence number that the source's live messages are at.

10733

FIXED: When a persistent receiver restarts after a period of being down, and the Store's retention policy has led to messages no longer being available, the receiver's persistent delivery controller does not properly use the value of delivery_control_maximum_burst_loss (receiver) when delivering loss events to the receiver callback. That is, even if the number of missing messages exceeds the configured value of delivery_control_maximum_burst_loss (receiver), UM still delivers a separate loss event for every missing sequence number.

The persistence delivery controller will now deliver a single "burst loss" event if the number of missing messages exceeds delivery_control_maximum_burst_loss (receiver).

10676

FIXED: When a Store experiences packet loss (typically do to overload), it can delay or block the sending of stability ACKs to the Source.

10661

FIXED: When sending messages using a Smart Source in Java, if the messages contain message properties and are larger than the datagram maximum size (requiring UM fragmentation), a crash can result.

10805

FIXED: When a UM configuration file is supplied to the UMP Element "<daemon-monitor>", source-scoped options are not applied.

10483

FIXED: There are rare circumstances under which a persistent receiver becomes deaf to some number of new messages sent by a source due to the receiver's expected sequence number being higher than the source's live sequence numbers. This typically happens when the source is restarted after a period of store overload, or through product misuse.

The receiver registration now ensures that the low sequence number is never higher than the high.


Queuing Fixed Limitations for 6.13  <-

The following bug fixes apply to the UMQ product.

  • None.


Dynamic Router Fixed Limitations for 6.13  <-

The following bug fixes apply to the Dynamic Routing Option (DRO).

Change Request

Description

10856

FIXED: A DRO can crash with:
FATAL: failed assertion [len<LBMC_MAX_TOPICNAME_LEN]
if a source or receiver is created with a topic name of exactly 246 characters (not including a final null).

10826

FIXED: A DRO can crash with a segmentation fault when used with an SRS for TCP-based Topic Resolution. In a stack back trace it happens in lbm_topic_resolve_process_tir().

10588

FIXED: When a UM configuration file is supplied to the Router Element "<daemon-monitor>", source-scoped options are not applied.