Release Notes
- 1. Introduction
- 2. System Requirements
- 3. Compatibility
- 4. What’s New in 7.3.0 LTS
- 4.1. Sending and Receiving Data
- 4.1.1. Type evolution now allowed with Zero Copy transfer over shared memory when using FlatData types
- 4.1.2. Simpler DataReader and DataWriter constructors (Python, Modern C++ APIs)
- 4.1.3. Topic constructors now receive std::string_view arguments
- 4.1.4. Directly get duration in nanoseconds, instead of calculating it, using new to_nanosec function in Duration class
- 4.1.5. JSON now a fully supported data format, enabling easier integration of Connext with other technologies
- 4.2. Performance
- 4.2.1. Skip deserialization in DynamicData for efficient data handling, using new property
- 4.2.2. Compression level applied to built-in Instance State Consistency DataWriter reduced, speeding up response time and reducing CPU usage
- 4.2.3. Performance improvement for durable writer history and Persistence Service with high late-joiner activity
- 4.2.4. Performance improvement in large systems using SHMEM transport
- 4.2.5. More efficient use of network and CPU resources, through support for multiple instances of a UDPv4/UDPv6 transport in a single DomainParticipant
- 4.3. Debugging and Logging
- 4.3.1. Set exactly the metrics you want to collect for Observability Framework, using new setting in MONITORING QoS policy
- 4.3.2. Better understand port collision warnings through improved logging
- 4.3.3. New log message warning if sample’s serialized size exceeds MTU and risks not being sent
- 4.3.4. Overly long activity context section of log message now truncated instead of generating additional log messages
- 4.3.5. Set finer-grained time values for logging properties that take a duration
- 4.3.6. Log messages for use by Logger Device contain further useful information: timestamp, source (facility), and message ID
- 4.3.7. New logging APIs provide ability to emit custom log messages in Connext applications
- 4.3.8. New log warnings when SPDP and SPDP2 participants cannot communicate
- 4.4. DDS Ping and DDS Spy
- 4.5. Miscellaneous
- 4.5.1. Python API supports latest version, Python 3.12
- 4.5.2. Determine a dynamic type’s minimum serialized sample size using new cdr_serialized_sample_min_size
- 4.5.3. Validate a license using a shared library call
- 4.5.4. Micro Compatibility Builtin Profile updated to not send serialized types
- 4.5.5. EXCLUSIVE_AREA QoS Policy no longer supported; documentation removed
- 4.6. Third-Party Software Changes
- 4.1. Sending and Receiving Data
- 5. What’s Fixed in 7.3.0 LTS
- 5.1. Discovery
- 5.1.1. [Critical] SPDP2 participants with RTPS peers and participant_liveliness_assert_period less than participant_announcement_period may have crashed upon deletion *
- 5.1.2. [Major] Rediscovery failed if participant with SPDP2 lost liveliness before receiving remote participant’s configuration message *
- 5.1.3. [Major] Participants with SPDP2 failed to discover new participant that was using the same unicast locator as a previously discovered (and not removed) participant *
- 5.2. Serialization and Deserialization
- 5.3. Usability
- 5.4. Transports
- 5.4.1. [Critical] High CPU and several warnings in some cases when using MultiChannel or TransportUnicast QoS
- 5.4.2. [Critical] Participant may have received RTPS traffic over SHMEM transport not intended for participant
- 5.4.3. [Critical] Undefined behavior of shared memory transport if shared mutex or semaphores removed externally
- 5.4.4. [Minor] DLL leak when using UDP/TCP transports
- 5.5. Reliability Protocol and Wire Representation
- 5.6. Debuggability
- 5.7. Content Filters and Query Conditions
- 5.8. TopicQueries
- 5.9. Logging
- 5.9.1. [Major] Modern C++ Distributed Logger Options header incorrectly included generated header file *
- 5.9.2. [Major] Misleading log message when sending specific number of bytes through socket *
- 5.9.3. [Major] Missing logging on the standard output for Windows GUI applications
- 5.9.4. [Minor] Incorrect error message when setting inconsistent ReaderDataLifeCycleQosPolicy values
- 5.9.5. [Minor] Log messages truncated below maximum size of 1024 bytes *
- 5.9.6. [Trivial] Error message that was printed when failing to allocate the writer buffer pool was wrong *
- 5.9.7. [Trivial] Missing space between Activity Context and message text if Logging Category was printed *
- 5.10. Dynamic Data
- 5.11. APIs (C or Traditional C++)
- 5.12. APIs (Modern C++ API)
- 5.12.1. [Major] Potential crash when mixing the C and Modern C++ APIs in the same executable
- 5.12.2. [Major] DataReader created with builtin topic not automatically destroyed *
- 5.12.3. [Major] Possible link error when building a Windows DLL *
- 5.12.4. [Minor] Conversion of invalid Time to integer units caused unexpected behavior
- 5.13. APIs (Java)
- 5.14. APIs (Python)
- 5.14.1. [Critical] Potential deadlock in applications that call certain APIs and use Entity Listeners
- 5.14.2. [Minor] Possible memory leak in DynamicData.loan_value
- 5.14.3. [Minor] Converting a SampleInfo object to string failed when source_timestamp was invalid
- 5.14.4. [Minor] Some functions didn’t allow keyword arguments
- 5.15. APIs (Multiple Languages)
- 5.15.1. [Major] Using a Listener and a Waitset in the same application may have resulted in the Waitset waking up unexpectedly
- 5.15.2. [Major] Sentinel constant for “invalid” Time contained unexpected value *
- 5.15.3. [Minor] IDL printing of Enum TypeCodes was not standards-compliant
- 5.15.4. [Minor] Extensibility of unions defined within modules incorrectly printed as IDL *
- 5.15.5. [Minor] Incorrect output when printing a union with an enum discriminator as IDL
- 5.15.6. [Trivial] First enum label not printed
- 5.16. XML Configuration
- 5.16.1. [Critical] Potential segmentation fault when using XML application creation if the names of <domain_participant_library> and <domain_library> were the same
- 5.16.2. [Major] Micro Compatibility Builtin Profiles updated UDPv4 message_size_max so that samples larger than 8192 were not silently dropped by Micro applications
- 5.16.3. [Minor] XML parser did not parse scientific notation
- 5.17. Instances
- 5.18. Crashes
- 5.18.1. [Critical] Crash when deserializing PID_TYPE_OBJECT_LB with class ID of RTI_OSAPI_COMPRESSION_CLASS_ID_NONE
- 5.18.2. [Critical] Potential crash while calling DynamicData APIs when running out of system memory
- 5.18.3. [Critical] Potential crash when calling DDS_TypeCodeFactory_create_value_tc_ex with a NULL ex parameter
- 5.18.4. [Critical] Crash when calling DDS_DataWriter_set_qos with a NULL qos parameter
- 5.18.5. [Critical] Crash when performing an illegal call to DDS_DataWriter_get_qos
- 5.18.6. [Critical] Crash if SPDP2 participant received unexpected field in participant discovery message *
- 5.18.7. [Critical] Crash during DomainParticipant initialization if failure to get local address mapping when using UDPV4_WAN transport
- 5.18.8. [Critical] Crash when converting a DynamicData object to a CDR buffer
- 5.18.9. [Critical] Potential crash if allocation of RTI Monitoring Library’s publish thread failed
- 5.18.10. [Critical] Segmentation fault upon destruction of DDSGuardCondition or DDSWaitset
- 5.18.11. [Critical] Crash if participant received endpoint discovery sample and was not able to allocate memory to process it
- 5.18.12. [Critical] Possible exception after using a Condition object if it was not explicitly disposed
- 5.18.13. [Critical] Potential crash or errors when using SHMEM transport in QNX *
- 5.18.14. [Critical] Crash if participant failed to allocate memory for endpoint discovery type plugins
- 5.18.15. [Critical] Modern C++ Distributed Logger may hang or crash upon instance finalization *
- 5.18.16. [Critical] Invalid multicast locator could cause precondition error or segmentation violation
- 5.18.17. [Critical] Crash during DomainParticipant enable operation when running out of system memory
- 5.18.18. [Critical] Segmentation fault when a reader was deleted while a remote writer cleanup event was scheduled *
- 5.18.19. [Critical] Race condition between the creation of a Replier and the call to its Listener
- 5.18.20. [Critical] Undefined behavior when Requesters or Repliers for same service name were concurrently created and deleted
- 5.18.21. [Critical] Hang led to crash if Monitoring Library 2.0 was enabled then right away disabled *
- 5.18.22. [Critical] Possible crash when creation of TCP Transport failed
- 5.18.23. [Critical] Possible crash upon destruction of TCP transport if it was created programmatically and it logged messages
- 5.19. Hangs
- 5.20. Memory Leaks/Growth
- 5.20.1. [Critical] Memory leak in best-effort writers when switching from more than one unicast locator to a multicast locator
- 5.20.2. [Critical] Concurrency problem in Asynchronous WaitSet’s global instance initialization led to memory and TSS key leaks in multi-threading scenarios
- 5.20.3. [Critical] Memory leak when creating a QueryCondition with Parameters
- 5.20.4. [Critical] Memory leak when using NetworkCaptureParams
- 5.20.5. [Critical] Memory Leak in Java API when printing QoS objects
- 5.20.6. [Critical] Asynchronous WaitSet global instance’s thread-specific storage key leaked
- 5.20.7. [Major] Memory leak when using XML-Based Application Creation and DynamicData
- 5.20.8. [Minor] Memory leak when finalizing DomainParticipantFactory for first time
- 5.20.9. [Minor] DomainParticipantFactory was leaked when factory finalization failed
- 5.20.10. [Minor] Potential Memory leak upon ContentFilteredTopic creation failure
- 5.20.11. [Critical] ODBC DataWriters may have leaked instances when they were replaced if writer-side filtering was used
- 5.21. Data Corruption
- 5.21.1. [Critical] Undefined behavior using XCDR2 with keyed topic types with key union members
- 5.21.2. [Critical] Stack overflow if value of “rti.monitor.config.publish_thread_options” property had 512 or more characters
- 5.21.3. [Critical] Failure to send serialized key with dispose when using dds.data_writer.history.memory_manager.fast_pool.pool_buffer_max_size property
- 5.21.4. [Critical] Error uncompressing samples when using batching and setting serialize_key_with_dispose to TRUE
- 5.21.5. [Critical] SampleInfo’s flag and related_original_publication_virtual_guid may have had invalid information for unkeyed Topics
- 5.21.6. [Critical] DataReader on a Topic using an appendable type may have received samples with incorrect value
- 5.22. OMG Specification Compliance
- 5.22.1. [Critical] Extensible types did not include padding size in length value of each element of RTPS parameter list
- 5.22.2. [Critical] Problems exchanging data with other vendors for types containing unbounded members
- 5.22.3. [Critical] Non-primitive sequences and arrays serialized incorrectly with XCDR2_DATA_REPRESENTATION when using dds.type_plugin.dheader_in_non_primitive_collections
- 5.22.4. [Critical] DataReader on a Topic using an appendable type may have received samples with incorrect value
- 5.22.5. [Major] FlatData did not support XCDR2-compliant serialization
- 5.23. Entities
- 5.24. Interoperability
- 5.25. Other
- 5.25.1. [Critical] Potential bus error when calling print and to_string APIs in TypeCode *
- 5.25.2. [Critical] Restarted keyed DataReaders using durable reader state and destination order by source timestamp may have received old samples
- 5.25.3. [Critical] Reliable DataReader may have stopped receiving samples from DataWriter using durable writer history and DDS fragmentation
- 5.25.4. [Critical] Support for systems running beyond 2038 when using a database and logging
- 5.25.5. [Major] Durable writer history failed to restore data in buildable sources
- 5.25.6. [Minor] Discovery plugins libraries did not close if creation of plugin failed
- 5.25.7. [Trivial] Strings with default size (255) may have printed as unbounded when printing TypeCodes as IDL
- 5.25.8. [Trivial] Alias’s annotations may not have printed out correctly
- 5.1. Discovery
- 6. Previous Releases
- 6.1. What’s New in 7.2.0
- 6.2. What’s Fixed in 7.2.0
- 6.2.1. Discovery
- 6.2.2. Serialization and Deserialization
- 6.2.3. Debuggability
- 6.2.4. Transports
- 6.2.5. Reliability Protocol and Wire Representation
- 6.2.6. Content Filters and Query Conditions
- 6.2.7. Dynamic Data
- 6.2.8. Performance and Scalability
- 6.2.9. APIs (C or Traditional C++)
- 6.2.10. APIs (Modern C++ API)
- 6.2.11. APIs (Java)
- 6.2.12. APIs (Python)
- 6.2.13. APIs (Multiple Languages)
- 6.2.14. XML Configuration
- 6.2.15. Instances
- 6.2.16. Crashes
- 6.2.17. Entities
- 6.2.18. Interoperability
- 6.2.19. Vulnerabilities
- 6.2.20. Other
- 6.3. What’s New in 7.1.0
- 6.4. What’s Fixed in 7.1.0
- 6.4.1. Fixes Related to Discovery
- 6.4.2. Fixes Related to Serialization and Deserialization
- 6.4.3. Fixes Related to Debuggability
- 6.4.4. Fixes Related to Transports
- 6.4.5. Fixes Related to Reliability Protocol and Wire Representation
- 6.4.6. Fixes Related to Content Filters and Query Conditions
- 6.4.7. Fixes Related to Dynamic Data
- 6.4.8. Fixes Related to APIs
- 6.4.9. Fixes Related to XML Configuration
- 6.4.10. Fixes Related to Request-Reply and RPC
- 6.4.11. Fixes Related to Shipped Examples
- 6.4.12. Fixes Related to Vulnerabilities
- 6.4.13. Fixes Related to Crashes
- 6.4.14. Other Fixes
- 6.5. What’s New in 7.0.0
- 6.6. What’s Fixed in 7.0.0
- 6.6.1. Fixes Related to Callbacks and Waitsets
- 6.6.2. Fixes Related to Discovery
- 6.6.3. Fixes Related to Transports
- 6.6.4. Fixes Related to Filtering and TopicQuery
- 6.6.5. Fixes Related to Group Presentation
- 6.6.6. Fixes Related to XML Configuration
- 6.6.7. Fixes Related to Vulnerabilities
- 6.6.8. Fixes Related to APIs
- 6.6.9. Fixes Related to Crashes
- 6.6.10. Other Fixes
- 7. Known Issues
- 7.1. Known Issues with Discovery (SPDP2)
- 7.2. Known Issues with Serialization and Deserialization
- 7.3. Known Issues with Usability
- 7.3.1. Cannot open USER_QOS_PROFILES.xml in rti_workspace/examples from Visual Studio
- 7.3.2. DataWriter’s Listener callback on_application_acknowledgment() not triggered by late-joining DataReaders
- 7.3.3. HighThroughput and AutoTuning built-in QoS Profiles may cause communication failure when writing small samples
- 7.3.4. Memory leak if Foo:initialize() called twice
- 7.3.5. Wrong error code after timeout on write() from Asynchronous Publisher
- 7.3.6. Type Consistency enforcement disabled for structs with more than 10000 members
- 7.3.7. Escaping special characters in regular/filter expressions not supported in some cases
- 7.4. Known Issues with Code Generation
- 7.5. Known Issues with Instance Lifecycle
- 7.6. Known Issues with Reliability
- 7.7. Known Issues with Content Filters and Query Conditions
- 7.8. Known Issues with TopicQueries
- 7.9. Known Issues with Transports
- 7.9.1. AppAck messages cannot be greater than underlying transport message size
- 7.9.2. DataReader cannot persist AppAck messages greater than 32767 bytes
- 7.9.3. Discovery with Connext Micro fails when shared memory transport enabled
- 7.9.4. Communication may not be reestablished in some IP mobility scenarios
- 7.9.5. Corrupted samples may be forwarded through Routing Service when using Zero-Copy transfer over shared memory
- 7.9.6. Network Capture does not support frames larger than 65535 bytes
- 7.9.7. Shared memory transport in QNX 7.0 and earlier can result in priority inversion
- 7.9.8. Ungracefully terminated QNX processes using SHMEM transport prevents startup of new processes due to unclosed POSIX semaphores (QNX 7.0 and earlier)
- 7.10. Known Issues with FlatData
- 7.11. Known Issues with Coherent Sets
- 7.12. Known Issues with Dynamic Data
- 7.13. Known Issues with Logging
- 7.14. Known Issues with RTI Monitoring Library
- 7.15. Other Known Issues
- 7.15.1. Possible Valgrind still-reachable leaks when loading dynamic libraries
- 7.15.2. 64-bit discriminator values greater than (2^31-1) or smaller than (-2^31) not supported
- 7.15.3. Creating multiple DataReaders for the same Topic under the same Subscriber configured with Group Ordered Access is not supported
- 7.15.4. With DISALLOW_TYPE_COERCION and Types containing unbounded members, other vendor DataWriters/DataReaders will not match Connext DataWriters/DataReaders
- 8. Experimental Features