Release Notes
- 1. Introduction
- 2. System Requirements
- 3. Compatibility
- 4. What’s New in 7.3.1
- 4.1. Eliminated requirement to manually clean up thread resources on platforms that support automatic thread-specific storage (TSS) cleanup
- 4.2. Extensible Types compliance mask added to all APIs
- 4.3. New DynamicData APIs to get and set union’s discriminator value
- 4.4. Improved write execution time when dds.data_writer.history.purge_samples_after_acknowledgment set to 1
- 4.5. Improved throughput when disable_positive_acks field in DataReaderProtocol QoS policy set to TRUE
- 4.6. RTI DDS Spy enhanced source locator display with IPv6 and shared memory support
- 4.7. TCP Transport now uses POLL socket monitoring by default on Linux systems, offering significantly better responsiveness
- 4.8. Disallow unrealistic values of polling_period, to avoid errors collecting data for Observability Framework
- 4.9. Support for new metadata fields in content filter expressions
- 4.10. Third-Party Software Changes
- 5. What’s Fixed in 7.3.1
- 5.1. Discovery
- 5.1.1. [Critical] Port collision on one channel of multichannel DataWriter caused discovery to fail even if another channel had no port collision
- 5.1.2. [Critical] Undefined behavior when serializing using any of the builtin discovery plugins
- 5.1.3. [Critical] Incorrect locators used on newly created DataWriters or DataReaders after a Locator Reachability event
- 5.1.4. [Critical] DNS Tracking not supported with participants using SPDP2 *
- 5.1.5. [Major] DomainParticipants failed to announce that endpoint was not reachable when internal clock was monotonic and external clock was real-time
- 5.1.6. [Major] DomainParticipants using SPDP2 and fragmentation of the participant configuration messages failed to complete discovery *
- 5.2. Serialization and Deserialization
- 5.3. Usability
- 5.3.1. [Critical] Locator Reachability DataReader could not receive assertions from more than four DomainParticipants
- 5.3.2. [Minor] DDS_RTPS_AUTO_ID_FROM_MAC failed if MAC address had all zeros for first 4 bytes or last 4 bytes
- 5.3.3. [Minor] Inconsistent QoS error when enabling Monitoring Library 2.0 with a default profile (is_default_qos = TRUE) *
- 5.3.4. [Minor] Lack of allowed multicast interfaces did not cause Connext to ignore multicast addresses
- 5.4. Transports
- 5.4.1. [Critical] Shared Memory communications might not have been recovered if a DataReader crashed or was ungracefully killed
- 5.4.2. [Major] TCP Transport did not properly enforce system FD_SETSIZE hard limits for select() socket monitoring
- 5.4.3. [Minor] Possible failure to create DomainParticipant if using multicast
- 5.5. Reliability Protocol and Wire Representation
- 5.5.1. [Critical] Writer-side filtered samples not always marked as acknowledged when application acknowledgment was used
- 5.5.2. [Critical] Late-joiner DataReader may have stopped receiving samples from DataWriters using a finite durability.writer_depth
- 5.5.3. [Critical] Unexpected data loss when using batching and finite reader resource limits
- 5.5.4. [Critical] Repair sample was not sent if the sample was smaller than either transport’s message_size_max
- 5.5.5. [Critical] Sample may not have been delivered to a DataReader in a Required Subscription
- 5.5.6. [Major] DataWriters with finite durability.writer_depth may have sent repairs over unicast instead of multicast
- 5.5.7. [Major] Reliable large data performance issues due to redundant fragment repairs
- 5.6. Debuggability
- 5.7. Performance and Scalability
- 5.8. Bandwidth Sensitivity
- 5.9. Content Filters and Query Conditions
- 5.10. TopicQueries
- 5.11. Logging
- 5.11.1. [Major] Misleading warning message when one non-loopback interface doesn’t support multicast *
- 5.11.2. [Major] Unexpected warning during DomainParticipant enablement when locator reachability enabled *
- 5.11.3. [Trivial] Incorrect warning printed for best-effort synchronous DataWriters that required DDS fragmentation *
- 5.12. Dynamic Data
- 5.13. APIs (C or Traditional C++)
- 5.14. APIs (Modern C++ API)
- 5.15. APIs (Java)
- 5.16. APIs (Python)
- 5.17. APIs (Multiple Languages)
- 5.17.1. [Major] The result of cdr_serialized_sample_max_size was too small if the maximum size was greater than 4 GB
- 5.17.2. [Major] DynamicData Errors when operating on unions with unknown discriminator values
- 5.17.3. [Major] Non-Java register_type failed if the maximum size was greater than 2 GB
- 5.17.4. [Minor] Enum label not printed when there was only one enum member
- 5.17.5. [Minor] Creating a DomainParticipant with a negative domain ID was incorrectly allowed
- 5.18. XML Configuration
- 5.19. Entities
- 5.20. Platform and Build Changes
- 5.21. Crashes
- 5.21.1. [Critical] Potential race conditions in construction or deletion of Requesters and Repliers (C, Traditional C++, C#, and Python)
- 5.21.2. [Critical] Possible crash when creating dds.DynamicData.Topic with a listener
- 5.21.3. [Critical] Race condition in RTI Monitoring Library 2.0 caused a crash *
- 5.21.4. [Critical] Possible crash after a failure to create Monitoring Library 2.0 object *
- 5.21.5. [Critical] Modern C++ Distributed Logger may have crashed upon instance finalization *
- 5.21.6. [Critical] Segmentation fault if Application Kind contained more than 255 characters when calling RTI_DL_DistLogger_getInstance
- 5.21.7. [Critical] Potential stack overflow in Connext applications when parsing XML files with a custom DTD with deeply nested entity references
- 5.21.8. [Critical] Crash when writing data on a ContentFilteredTopic in combination with transient durability and delegated reliability
- 5.21.9. [Critical] Potential crash if creation of Publisher or Subscriber failed while database garbage collection process was running
- 5.21.10. [Critical] Possible crash when calling any write operation on architectures with a weak memory model
- 5.21.11. [Critical] Stack smashing error when serializing strings with RTI_CDR_SIZEOF_LONG_DOUBLE set to 16 in C++11 in release mode using GCC compiler
- 5.21.12. [Critical] Stack overflow when parsing very long SQL filter expressions
- 5.21.13. [Critical] Crash if element in initial_peers longer than 72 characters added
- 5.21.14. [Critical] Possible crash on MIGInterpreter_parse while receiving data at the same time that entities are removed, on architectures with a weak memory model
- 5.21.15. [Critical] Crash on DDS_DomainParticipantFactory_finalize_instance() when using XML-Based Application Creation *
- 5.21.16. [Critical] Possible crash when creating DomainParticipants concurrently *
- 5.21.17. [Critical] Possible crash when calling DDS_DataWriter_get_matched_subscriptions() or DDS_DataReader_get_matched_publications() on architectures with a weak memory model
- 5.21.18. [Critical] Possible segmentation fault while enabling a DataWriter that enables batching *
- 5.21.19. [Critical] Parsing of malformed RTPS packets may have led to bus error on some platforms
- 5.21.20. [Critical] Potential crash when creating new GuardCondition when low on resources
- 5.21.21. [Critical] Segmentation fault when copying invalid samples and using Zero Copy transfer over shared memory transport
- 5.21.22. [Critical] Parsing an XML file with a root “types” tag that contained a “name” attribute led to a segmentation fault
- 5.21.23. [Critical] Possible crash when metric value changed when Monitoring Library 2.0 was being disabled *
- 5.21.24. [Critical] Segmentation fault and precondition errors with Monitoring Library 2.0 when Entities were deleted *
- 5.21.25. [Critical] Segmentation fault when a DomainParticipant failed to be created
- 5.21.26. [Critical] Segmentation fault when using Network Capture APIs concurrently with DomainParticipantFactory deletion
- 5.21.27. [Critical] Potential crash while printing the log message after an error *
- 5.21.28. [Critical] Possible crash when accessing information about a remote endpoint at the same time that the endpoint was being removed
- 5.21.29. [Critical] Possible crash when using QosProvider to load XML file with syntax “file:///” on Windows systems
- 5.21.30. [Critical] Possible segmentation fault when deleting a DomainParticipant when DNS tracker was enabled
- 5.21.31. [Major] Possible crash when closing a logger device while it was being used
- 5.21.32. [Major] Precondition added to rti::flat::StringBuilder::set_string() and rti::flat::PrimitiveSequenceBuilder<T>::add_n()
- 5.22. Hangs
- 5.22.1. [Critical] Calling ignore_participant during a ParticipantBuiltinTopicDataDataReader on_data_available callback triggered by the deletion of a remote DomainParticipant led to a hang or unexpected error message
- 5.22.2. [Critical] Potential deadlock when calling DDS_DomainParticipantFactory_set_qos and DDS_DomainParticipantFactory_finalize_instance
- 5.22.3. [Critical] Potential deadlock when using TCP Transport on Windows systems if WINDOWS_WAITFORMULTIPLEOBJECTS was selected as the socket monitoring API
- 5.22.4. [Critical] Potential deadlock when using SHMEM transport on Linux, macOS, and LynxOS systems and killing one application
- 5.22.5. [Critical] Potential deadlock when creating entities in parallel that use Zero Copy Transfer over Shared Memory transport
- 5.22.6. [Critical] String built-in type unregister_type API blocked associated DomainParticipant
- 5.22.7. [Critical] Hang of QNX application using shared memory if one of the shared semaphores was in an unusable state
- 5.22.8. [Critical] Potential deadlock when using Network Capture utility APIs concurrently with DDS calls
- 5.22.9. [Major] Potential deadlock when using Durable Writer History if there was a failure while creating the connection *
- 5.22.10. [Major] Calling ignore_participant when using the on_data_available callback to process a ParticipantBuiltinTopicData with partial_configuration led to a hang during DomainParticipant deletion *
- 5.23. Memory Leaks/Growth
- 5.23.1. [Critical] Spike in memory usage when creating a DataWriter using Durable Writer History to restore samples
- 5.23.2. [Critical] Memory leaks and errors when using DynamicDataReaders or FlatData DataReaders plus DDS-fragmentation and compression or encryption *
- 5.23.3. [Critical] Possible unbounded memory growth on DataReader of keyed type after failing to match with a remote DataWriter
- 5.23.4. [Critical] Unbounded memory growth when using RECOVER instance state consistency and instances were removed from DataReader queue *
- 5.23.5. [Critical] Parsing DTD with many nested/recursive entities could cause uncontrolled resource consumption
- 5.23.6. [Critical] Parsing XML configuration with large tokens caused uncontrolled resource consumption
- 5.23.7. [Critical] Unbounded memory growth when using DynamicDataReaders with multiple data representations and keyed types
- 5.23.8. [Critical] Potential unbounded memory growth when using DNS tracking
- 5.23.9. [Major] RTI DDS Spy showed DDS_DataReader_get_matched_publication_participant_data error before leaking memory *
- 5.23.10. [Major] DomainParticipantFactory finalization failed even if all the DomainParticipants were deleted
- 5.23.11. [Minor] Memory leak upon Transport TCP creation failure because of invalid configuration
- 5.23.12. [Minor] Possible memory leak when initializing and finalizing the DomainParticipantFactory concurrently
- 5.24. Data Corruption
- 5.25. OMG Specification Compliance
- 5.26. Vulnerabilities
- 5.26.1. [Critical] Potential invalid read memory access in Connext applications during endpoint discovery
- 5.26.2. [Critical] Potential invalid read memory access in Connext applications when subscribing to PublicationBuiltinTopicData *
- 5.26.3. [Critical] Potential heap buffer read overflow in Connext applications when using a malicious license string
- 5.26.4. [Critical] Potential stack buffer write overflow in license-managed Core Libraries when setting RTI_LICENSE_FILE environment variable
- 5.26.5. [Critical] Potential buffer write overflow in Connext applications while parsing malicious license file
- 5.26.6. [Critical] Potential integer overflow in Connext applications on 32-bit systems when parsing XML files with very large number of default attributes or levels of nesting
- 5.26.7. [Critical] Potential stack buffer write overflow in Connext applications while parsing malicious license file
- 5.26.8. [Critical] Potential stack buffer write overflow in Connext applications while parsing malicious XML types document (1)
- 5.26.9. [Critical] Potential stack buffer write overflow in Connext applications while parsing malicious XML types document (2)
- 5.26.10. [Critical] Potential stack buffer overflow in Connext applications when parsing an XML type
- 5.26.11. [Critical] Potential unauthorized access to instance information in Connext applications *
- 5.27. Interoperability
- 5.27.1. [Critical] RTPS messages containing vendor-specific submessages could have been dropped
- 5.27.2. [Critical] XCDR serialization of a mutable union with a discriminator value that does not select a union member was not compliant with OMG specification
- 5.27.3. [Critical] Multiple RTPS messages received in a single datagram caused issues
- 5.27.4. [Critical] RTPS checksums incorrect for multiple RTPS messages received in a single datagram *
- 5.27.5. [Critical] Incorrect handling of RTPS messages with submessages from different participants
- 5.28. Other
- 5.28.1. [Critical] Data races on architectures with weak memory models
- 5.28.2. [Critical] Data races on architectures with weak memory model
- 5.28.3. [Major] Error sending batch when batch size exceeded transport MTU and included unregister or dispose messages
- 5.28.4. [Major] Printing to XML missed quotes for external union members
- 5.28.5. [Major] XML parser did not parse scientific notation when exponent included an explicit positive sign
- 5.28.6. [Major] Printing an IDL or XML enum with a default literal produced incorrect output
- 5.28.7. [Major] Printing an enum default literal printed the ordinal value instead of enumerator name
- 5.28.8. [Major] XML parser rejected external members with ranges excluding zero
- 5.28.9. [Major] Incorrect string representation of union DynamicType with arrays of sequences
- 5.28.10. [Major] Error parsing an XML with an external typedef
- 5.28.11. [Major] Error when parsing an XML with a union that has a member with a default value
- 5.28.12. [Major] Error when parsing an XML with a struct that has an enum member with a default enumerator
- 5.28.13. [Major] Invalid escaping of special characters in default strings for XML and IDL output
- 5.28.14. [Major] DynamicType with default string value incorrectly formatted for XML format
- 5.28.15. [Major] Incorrect hexadecimal formatting for uint8 and octet
- 5.28.16. [Major] XML string literal interpretation divergence between Core Libraries and Code Generator
- 5.28.17. [Major] Printing an IDL union with an enum discriminator could have produced an incorrect output
- 5.28.18. [Major] Incorrect CPU assignment when using THREAD_SETTINGS_CPU_RR_ROTATION in receiver_pool
- 5.28.19. [Major] Missing implementation of RTI_DL_DistLogger_get_version(), RTI_DL_DistLogger_get_api_build_version(), and RTI_DL_DistLogger_get_api_version_string()
- 5.28.20. [Minor] Python API was not included in patch releases *
- 5.28.21. [Minor] IDL annotations printed after typdef specifier
- 5.28.22. [Trivial] Possible data race when creating DomainParticipants
- 5.28.23. [Trivial] Printing a type with an annotation using an enum produced an incorrect output
- 5.1. Discovery
- 6. Previous Releases
- 6.1. What’s New in 7.3.0
- 6.2. What’s Fixed in 7.3.0
- 6.2.1. Discovery
- 6.2.2. Serialization and Deserialization
- 6.2.3. Usability
- 6.2.4. Transports
- 6.2.5. Reliability Protocol and Wire Representation
- 6.2.6. Debuggability
- 6.2.7. Content Filters and Query Conditions
- 6.2.8. TopicQueries
- 6.2.9. Logging
- 6.2.10. Dynamic Data
- 6.2.11. APIs (C or Traditional C++)
- 6.2.12. APIs (Modern C++ API)
- 6.2.13. APIs (Java)
- 6.2.14. APIs (Python)
- 6.2.15. APIs (Multiple Languages)
- 6.2.16. XML Configuration
- 6.2.17. Instances
- 6.2.18. Crashes
- 6.2.19. Hangs
- 6.2.20. Memory Leaks/Growth
- 6.2.21. Data Corruption
- 6.2.22. OMG Specification Compliance
- 6.2.23. Entities
- 6.2.24. Interoperability
- 6.2.25. Other
- 6.3. What’s New in 7.2.0
- 6.4. What’s Fixed in 7.2.0
- 6.4.1. Discovery
- 6.4.2. Serialization and Deserialization
- 6.4.3. Debuggability
- 6.4.4. Transports
- 6.4.5. Reliability Protocol and Wire Representation
- 6.4.6. Content Filters and Query Conditions
- 6.4.7. Dynamic Data
- 6.4.8. Performance and Scalability
- 6.4.9. APIs (C or Traditional C++)
- 6.4.10. APIs (Modern C++ API)
- 6.4.11. APIs (Java)
- 6.4.12. APIs (Python)
- 6.4.13. APIs (Multiple Languages)
- 6.4.14. XML Configuration
- 6.4.15. Instances
- 6.4.16. Crashes
- 6.4.17. Entities
- 6.4.18. Interoperability
- 6.4.19. Vulnerabilities
- 6.4.20. Other
- 6.5. What’s New in 7.1.0
- 6.6. What’s Fixed in 7.1.0
- 6.6.1. Fixes Related to Discovery
- 6.6.2. Fixes Related to Serialization and Deserialization
- 6.6.3. Fixes Related to Debuggability
- 6.6.4. Fixes Related to Transports
- 6.6.5. Fixes Related to Reliability Protocol and Wire Representation
- 6.6.6. Fixes Related to Content Filters and Query Conditions
- 6.6.7. Fixes Related to Dynamic Data
- 6.6.8. Fixes Related to APIs
- 6.6.9. Fixes Related to XML Configuration
- 6.6.10. Fixes Related to Request-Reply and RPC
- 6.6.11. Fixes Related to Shipped Examples
- 6.6.12. Fixes Related to Vulnerabilities
- 6.6.13. Fixes Related to Crashes
- 6.6.14. Other Fixes
- 6.7. What’s New in 7.0.0
- 6.8. What’s Fixed in 7.0.0
- 6.8.1. Fixes Related to Callbacks and Waitsets
- 6.8.2. Fixes Related to Discovery
- 6.8.3. Fixes Related to Transports
- 6.8.4. Fixes Related to Filtering and TopicQuery
- 6.8.5. Fixes Related to Group Presentation
- 6.8.6. Fixes Related to XML Configuration
- 6.8.7. Fixes Related to Vulnerabilities
- 6.8.8. Fixes Related to APIs
- 6.8.9. Fixes Related to Crashes
- 6.8.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 RTI Monitoring Library
- 7.14. Known Issues with RTI Monitoring Library 2.0
- 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