
Release Notes
- 1. System Requirements
- 2. Compatibility
- 3. What’s New in 7.5.0
- 3.1. Python RPC API now fully productized and supported
- 3.2. More efficient endpoint discovery for RPC and Request-Reply
- 3.3. Improved DataWriter queue sample memory management eliminates required configuration for unbounded types
- 3.4. Enhanced out-of-the-box network performance with updated socket buffer sizes
- 3.5. Improved scalability for applications using writer-side content filtering
- 3.6. Initial discovery performance improvements in large systems with participants containing many endpoints
- 3.7. Eliminated requirement to manually clean up thread resources on platforms that support automatic thread-specific storage (TSS) cleanup
- 3.8. Improved flow control of fragmented sample repairs
- 3.9. RTPS messages containing a malformed inline Qos now trigger a warning, to avoid deserialization errors downstream
- 3.10. Capture periodic DomainParticipant announcements in DISCOVERY logging category to enhance debugging of discovery
- 3.11. Print incompatible QoS policies in a discovery snapshot for improved discovery debugging
- 3.12. Updated default value for socket_monitoring_kind to more performant WINDOWS_IOCP value on Windows systems
- 3.13. Support for new metadata fields in content filter expressions
- 3.14. InstanceHandle now provides a default constructor
- 3.15. Parameter type change to more convenient/appropriate size_t in pluggable transport’s to_string APIs
- 3.16. Deprecations and Removals
- 3.17. Third-Party Software Changes
- 4. What’s Fixed in 7.5.0
- 4.1. Discovery
- 4.1.1. [Critical] Undefined behavior when serializing using any of the builtin discovery plugins
- 4.1.2. [Critical] Incorrect locators used on newly created DataWriters or DataReaders after a Locator Reachability event
- 4.1.3. [Major] DomainParticipants using SPDP2 and fragmentation of the participant configuration messages failed to complete discovery
- 4.1.4. [Major] DomainParticipants failed to announce that endpoint was not reachable when internal clock was monotonic and external clock was real-time
- 4.1.5. [Minor] DomainParticipants using LBED unregistered remote DataWriters when a remote participant was deleted instead of deleting them
- 4.2. Usability
- 4.3. Transports
- 4.4. Reliability Protocol and Wire Representation
- 4.5. Performance and Scalability
- 4.6. Debuggability
- 4.7. Content Filters and Query Conditions
- 4.8. Request-Reply and Remote Procedure Calls
- 4.9. Logging
- 4.10. APIs (C or Traditional C++)
- 4.11. APIs (Java)
- 4.12. APIs (C# API)
- 4.13. APIs (Python)
- 4.14. APIs (Multiple Languages)
- 4.15. XML Configuration
- 4.16. Instances
- 4.17. Crashes
- 4.17.1. [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
- 4.17.2. [Critical] Possible crash on MIGInterpreter_parse while receiving data at the same time that entities are removed, on architectures with a weak memory model
- 4.17.3. [Critical] Race condition in RTI Monitoring Library 2.0 caused a crash
- 4.17.4. [Critical] Segmentation fault if Application Kind contained more than 255 characters when calling RTI_DL_DistLogger_getInstance
- 4.17.5. [Critical] Potential crash if creation of Publisher or Subscriber failed while database garbage collection process was running
- 4.17.6. [Critical] Possible crash when calling any write operation on architectures with a weak memory model
- 4.17.7. [Critical] Stack overflow when parsing very long SQL filter expressions
- 4.17.8. [Critical] Possible crash when creating DomainParticipants concurrently
- 4.17.9. [Critical] Crash when writing data on a ContentFilteredTopic in combination with transient durability and delegated reliability
- 4.17.10. [Major] Possible crash after memory allocation failures
- 4.17.11. [Major] Using unbounded or very large types with query conditions in Python API could cause crash
- 4.17.12. [Major] Segmentation fault if application ran out of memory while generating a log message
- 4.18. Hangs
- 4.18.1. [Critical] Potential deadlock when using TCP Transport on Windows systems if WINDOWS_WAITFORMULTIPLEOBJECTS was selected as the socket monitoring API
- 4.18.2. [Major] Potential deadlock when using Durable Writer History if there was a failure while creating the connection
- 4.18.3. [Major] Potential deadlock when using DynamicData in Debug libraries if TypePlugin initialization failed
- 4.18.4. [Major] Potential issues using rti.asyncio.run or asyncio.run with dds.DataReader.take_async
- 4.18.5. [Major] RPC failures when serializing the return value or out/inout parameters caused a timeout on client side
- 4.19. Memory Leaks/Growth
- 4.19.1. [Critical] Possible unbounded memory growth on DataReader of keyed type after failing to match with a remote DataWriter
- 4.19.2. [Critical] Memory leaks and errors when using DynamicDataReaders or FlatData DataReaders plus DDS-fragmentation and compression or encryption
- 4.19.3. [Critical] Unbounded memory growth when using DynamicDataReaders with multiple data representations and keyed types
- 4.19.4. [Critical] Unbounded memory growth when using RECOVER instance state consistency and instances were removed from DataReader queue
- 4.19.5. [Major] Memory leak when parsing invalid module in XML
- 4.19.6. [Major] Memory leak when using DynamicData with types containing optional members of string aliases or when cloning such types
- 4.19.7. [Minor] DynamicDataTypeSupport objects not reclaimed by garbage collector
- 4.19.8. [Minor] Potential DynamicData sample leaked on DataReader deletion
- 4.20. Data Corruption
- 4.21. Entities
- 4.22. Interoperability
- 4.22.1. [Critical] XCDR serialization of a mutable union with a discriminator value that does not select a union member was not compliant with OMG specification
- 4.22.2. [Critical] RTPS messages containing vendor-specific submessages could have been dropped
- 4.22.3. [Critical] Multiple RTPS messages received in a single datagram caused issues
- 4.23. Vulnerabilities
- 4.23.1. [Critical] Potential stack buffer overflow in Connext applications when parsing an XML type
- 4.23.2. [Critical] Potential stack buffer write overflow in license-managed Core Libraries when setting RTI_LICENSE_FILE environment variable
- 4.23.3. [Critical] Buffer write overflow while parsing malicious license file
- 4.23.4. [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
- 4.24. Other
- 4.24.1. [Critical] Data races on architectures with weak memory models
- 4.24.2. [Major] Printing an IDL union with an enum discriminator could have produced an incorrect output
- 4.24.3. [Major] Incorrect CPU assignment when using THREAD_SETTINGS_CPU_RR_ROTATION in receiver_pool
- 4.24.4. [Trivial] Possible data race when creating DomainParticipants
- 4.24.5. [Trivial] Printing a type with an annotation using an enum produced an incorrect output
- 4.1. Discovery
- 5. Previous Release
- 5.1. What’s New in 7.4.0
- 5.1.1. Set up reliable communications for fragmented data more easily and with better performance, by removing asynchronous publishing requirement
- 5.1.2. Modern C++ RPC API now fully productized and supported
- 5.1.3. Discover relevant QoS more easily through categorizations added to API Reference HTML documentation
- 5.1.4. Easier QoS configuration for Request-Reply and RPC with new built-in QoS profile
- 5.1.5. Write Python applications faster with reactive subscriptions
- 5.1.6. New Ping built-in type helps debug and prototype with the Python API
- 5.1.7. DDS Spy now prints full timestamps (with date and fractions of a second) and epoch timestamps
- 5.1.8. New DynamicData APIs get and set a union’s discriminator value
- 5.1.9. Deprecations and Removals
- 5.2. What’s Fixed in 7.4.0
- 5.2.1. Discovery
- 5.2.2. Serialization and Deserialization
- 5.2.3. Usability
- 5.2.4. Transports
- 5.2.5. Reliability Protocol and Wire Representation
- 5.2.6. Bandwidth Sensitivity
- 5.2.7. Debuggability
- 5.2.8. Content Filters and Query Conditions
- 5.2.9. TopicQueries
- 5.2.10. Request-Reply and Remote Procedure Calls
- 5.2.11. Logging
- 5.2.12. Dynamic Data
- 5.2.13. APIs (Modern C++ API)
- 5.2.14. APIs (Java)
- 5.2.15. APIs (Python)
- 5.2.16. APIs (Multiple Languages)
- 5.2.17. XML Configuration
- 5.2.18. Crashes
- 5.2.19. Hangs
- 5.2.20. Memory Leaks/Growth
- 5.2.21. Data Corruption
- 5.2.22. OMG Specification Compliance
- 5.2.23. Interoperability
- 5.2.24. Vulnerabilities
- 5.2.25. Other
- 5.1. What’s New in 7.4.0
- 6. Known Issues
- 6.1. Known Issues with Discovery (SPDP2)
- 6.2. Known Issues with Serialization and Deserialization
- 6.3. Known Issues with Usability
- 6.3.1. Cannot open USER_QOS_PROFILES.xml in rti_workspace/examples from Visual Studio
- 6.3.2. DataWriter’s Listener callback on_application_acknowledgment() not triggered by late-joining DataReaders
- 6.3.3. HighThroughput and AutoTuning built-in QoS Profiles may cause communication failure when writing small samples
- 6.3.4. Memory leak if Foo:initialize() called twice
- 6.3.5. Wrong error code after timeout on write() from Asynchronous Publisher
- 6.3.6. Type Consistency enforcement disabled for structs with more than 10000 members
- 6.3.7. Escaping special characters in regular/filter expressions not supported in some cases
- 6.3.8. Non-English Unicode (UTF-8) file names and paths not supported
- 6.4. Known Issues with Code Generation
- 6.5. Known Issues with Instance Lifecycle
- 6.6. Known Issues with Reliability
- 6.7. Known Issues with Content Filters and Query Conditions
- 6.8. Known Issues with TopicQueries
- 6.9. Known Issues with C# API
- 6.10. Known Issues with Transports
- 6.10.1. AppAck messages cannot be greater than underlying transport message size
- 6.10.2. DataReader cannot persist AppAck messages greater than 32767 bytes
- 6.10.3. Discovery with Connext Micro fails when shared memory transport enabled
- 6.10.4. Communication may not be reestablished in some IP mobility scenarios
- 6.10.5. Corrupted samples may be forwarded through Routing Service when using Zero-Copy transfer over shared memory
- 6.10.6. Network Capture does not support frames larger than 65535 bytes
- 6.10.7. Shared memory transport in QNX 7.0 and earlier can result in priority inversion
- 6.10.8. Ungracefully terminated QNX processes using SHMEM transport prevents startup of new processes due to unclosed POSIX semaphores (QNX 7.0 and earlier)
- 6.11. Known Issues with FlatData
- 6.12. Known Issues with Coherent Sets
- 6.13. Known Issues with Dynamic Data
- 6.14. Known Issues with RTI Monitoring Library
- 6.15. Other Known Issues
- 6.15.1. Possible Valgrind still-reachable leaks when loading dynamic libraries
- 6.15.2. 64-bit discriminator values greater than (2^31-1) or smaller than (-2^31) not supported
- 6.15.3. Creating multiple DataReaders for the same Topic under the same Subscriber configured with Group Ordered Access is not supported
- 6.15.4. With DISALLOW_TYPE_COERCION and Types containing unbounded members, other vendor DataWriters/DataReaders will not match Connext DataWriters/DataReaders