Release Notes
UM Version 6.9

The most-significant update to UM version 6.9 is the introduction of certificate-based security (authentication and encryption).

Warning
Due to a serious bug in UM 6.9 and 6.9.1, users of LBT-RM and LBT-RU transports are strongly advised to upgrade to 6.9.2 as soon as possible. The bug causes a crash (fatal assert) after approximately 4 billion datagrams are sent on a transport session.


Enhancements for 6.9  <-


Streaming Enhancements for 6.9  <-

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

  • TCP-based communication can now enable compression and/or encryption. Other protocols (udp, multicast, etc.) are not supported for compression or encryption at this time. See Encrypted TCP.

  • The LBT-RM transport type now supports a "zero-copy" API for sending messages. See Zero-Copy Send API.

  • The LBT-RM transport type now supports high-resolution timestamps for packet transmission and reception for customers using Solarflare network interfaces and the Onload driver. See highresolutiontimestamps.

  • Performance has been improved for sending messages on all transport types by reducing use of dynamic memory. This reduces the send time and also reduces the variance of send times ("jitter").

  • Added two new APIs to Java: com::latencybusters::lbm::LBMMessage::getSerializedResponse and com::latencybusters::lbm::LBMContext::respond, as well as a new class: com::latencybusters::lbm::LBMSerializedResponse. These provide a way to receive a UM request, serialize the response object, and then send the response, possibly via a different context.


Persistence Enhancements for 6.9  <-

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

  • An API has been added to start and stop a store from inside an application process. See Callable Store.

  • The store has been enhanced to log thread IDs for each of its internal threads. The log messages are of the form 'Store-8079-x'.

  • The Receiver-paced Persistence feature now supports blocking and non-blocking receivers. See Receiver-paced Persistence Operations.


Queuing Enhancements for 6.9  <-

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

  • None.


Dynamic Router Enhancements for 6.9  <-

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

  • Peer links may now be compressed and/or encrypted.


Fixed Limitations for 6.9  <-


Streaming Fixed Limitations for 6.9  <-

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

Change Request

Description

9759

The UM Log Messages chapter of the "Operations Guide" did not correctly order messages numerically. For example, "Core-1234-10" would come before "Core-1234-9".

The order has been corrected.

9484, 9566

UM generally reacts to an exhaustion of dynamic memory (heap) with a warning, and attempts to continue execution in a crippled manner.

UM has now been changed to react to exhaustion of dynamic memory by triggering a fatal assertion.

9582

When the C API lbm_register_fd() is used to register a socket, and an event queue is used to deliver socket events, there is a race condition that can cause delivery of a spurious read event. An application that responds by doing a blocking read can experience an unbounded block. A non-blocking read can return no data.

UM now effectively prevents this spurious read event.

9625

When the resolver_unicast_daemon (context) option is read multiple times with the same 'IP:PORT' combination, the context adds multiple references to that lbmrd, leading to wasted resources, potentially exhausting ports in the unicast resolver UDP port range.

UM now detects duplicate IP:PORT and maintains a single reference to that lbmrd.

9672

The multiple_receive_maximum_datagrams (context) configuration option enables the use of recvmmsg() to improve the efficiency of reading UDP data. However, multiple datagrams were not actually read. No improper behavior results, but the potential efficiency improvement is not delivered.

UM now properly enables reception of multiple datagrams.

9591

Under some circumstances, when using the epoll form of FD management, the operating system can return an error to UM that UM does not know how to handle. UM has been triggering a fatal assertion in these cases.

Further testing has suggested that some of these unexpected statuses can be benign. So UM has now been changed to use warning asserts when epoll returns an unexpected bad status.

9654 Fixed a potential crash with Windows Completions Ports due to memory corruption during a TCP disconnect.


Persistence Fixed Limitations for 6.9  <-

The following bug fixes apply to UMP and UMQ products.

Change Request

Description

9115

The store now prints BOS and EOS events to its log.

9276

If an RPP store configured for reduced FD storage fails and restarts immediately after a receiver registers, that receiver will sometimes lose messages.

Fixed by ensuring that the restarted reduced FD store starts at the correct sequence number.

9626

When the ume_store (source) and/or ume_store_name (source) configuration option is read multiple times referring to the same store, the context adds multiple references to that store, leading to wasted resources.

UM now detects duplicate stores and maintains a single reference to that store.


Queuing Fixed Limitations for 6.9  <-

The following bug fixes apply to the UMQ product.

Change Request

Description

9494

UMM did not include the option umq_queue_activity_timeout (context).

It has been added.

9555

When the C API lbm_rcv_topic_attr_setopt() is used to set a value for umq_ulb_source_activity_timeout (receiver), the value was not set correctly. Note that using text-based configuration files worked correctly for that option.

The C API function is now corrected.

9640

When the broker configuration option is read multiple times referring to the same broker, the context adds multiple references to that broker, leading to wasted resources.

UM now detects duplicate brokers and maintains a single reference to that broker.


Dynamic Router Fixed Limitations for 6.9  <-

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

Change Request

Description

8880

UM Router daemons using dual-tcp peer links with non-"select" FD management types might issue many 'Core-5688-3808...' log messages.

The Router now hard-codes peer links to use select for Unix and wsaeventselect for Windows. This avoids the errors.

9694, 9688 A race condition can cause a portal to become deadlocked and not pass traffic. The portal locking has been corrected.