Release Notes
- 1. Introduction
- 2. System Requirements
- 3. Compatibility
- 4. What’s New in 7.4.0
- 4.1. Set up reliable communications for fragmented data more easily and with better performance, by removing asynchronous publishing requirement
- 4.2. Modern C++ RPC API now fully productized and supported
- 4.3. Discover relevant QoS more easily through categorizations added to API Reference HTML documentation
- 4.4. Easier QoS configuration for Request-Reply and RPC with new built-in QoS profile
- 4.5. Write Python applications faster with reactive subscriptions
- 4.6. New Ping built-in type helps debug and prototype with the Python API
- 4.7. DDS Spy now prints full timestamps (with date and fractions of a second) and epoch timestamps
- 4.8. New DynamicData APIs get and set a union’s discriminator value
- 4.9. Deprecations and Removals
- 4.9.1. Simplify QoS configuration by deprecating unnecessary or rarely used QoS settings and policies
- 4.9.2. dds.sample_assignability.accept_unknown_enum_value and dds.sample_assignability.accept_unknown_union_discriminator properties deprecated
- 4.9.3. dds.participant.use_45d_compatible_alignment_enforcement property deprecated
- 4.9.4. EXCLUSIVE_AREA QoS policy removed
- 5. What’s Fixed in 7.4.0
- 5.1. Discovery
- 5.2. Serialization and Deserialization
- 5.3. Usability
- 5.4. Transports
- 5.5. Reliability Protocol and Wire Representation
- 5.5.1. [Critical] Repair sample was not sent if the sample was smaller than either transport’s message_size_max
- 5.5.2. [Critical] Late-joiner DataReader may have stopped receiving samples from DataWriters using a finite durability.writer_depth
- 5.5.3. [Major] inactivate_nonprogressing_readers did not always inactivate non-progressing readers
- 5.5.4. [Major] Reliable large data performance issues due to redundant fragment repairs
- 5.5.5. [Major] DataWriters with finite durability.writer_depth may have sent repairs over unicast instead of multicast
- 5.6. Bandwidth Sensitivity
- 5.7. Debuggability
- 5.8. Content Filters and Query Conditions
- 5.9. TopicQueries
- 5.10. Request-Reply and Remote Procedure Calls
- 5.11. Logging
- 5.12. Dynamic Data
- 5.13. APIs (Modern C++ API)
- 5.13.1. [Major] Possible exception thrown due to incorrect DynamicData move constructor or assignment operator
- 5.13.2. [Major] Modern C++ API was not enabled for x64Vx7SR0630llvm8.0.0.2_rtp
- 5.13.3. [Minor] find_member_by_id returned INVALID_INDEX in some cases
- 5.13.4. [Trivial] SampleProcessor not included by rti/rti.hpp header
- 5.14. APIs (Java)
- 5.15. APIs (Python)
- 5.15.1. [Major] Exception when printing or converting a sequence of octets to string
- 5.15.2. [Major] Incorrect deserialization of nested union with unknown discriminator
- 5.15.3. [Major] x64Linux Connext Python API not able to use libraries from $NDDSHOME/lib
- 5.15.4. [Minor] QosProvider could not be directly created with QosProviderParams
- 5.16. APIs (Multiple Languages)
- 5.17. XML Configuration
- 5.18. Crashes
- 5.18.1. [Critical] Potential crash when creating new GuardCondition when low on resources
- 5.18.2. [Critical] Parsing an XML file with a root “types” tag that contained a “name” attribute led to a segmentation fault
- 5.18.3. [Critical] Parsing of malformed RTPS packages may have led to bus error in some platforms
- 5.18.4. [Critical] Potential race conditions in construction or deletion of Requesters and Repliers (C, Traditional C++, C#, and Python)
- 5.18.5. [Critical] Possible crash when creating dds.DynamicData.Topic with a listener
- 5.18.6. [Critical] Possible crash after a failure to create Monitoring Library 2.0 object
- 5.18.7. [Critical] Possible segmentation fault while enabling a DataWriter that enables batching
- 5.18.8. [Critical] Segmentation fault when copying invalid samples and using Zero Copy transfer over shared memory transport
- 5.18.9. [Critical] Possible crash when calling DDS_DataWriter_get_matched_subscriptions() or DDS_DataReader_get_matched_publications() on architectures with a weak memory model
- 5.18.10. [Critical] Possible crash when using QosProvider to load XML file with syntax
file:///
on Windows systems - 5.18.11. [Critical] Crash on DDS_DomainParticipantFactory_finalize_instance() when using XML-Based Application Creation
- 5.18.12. [Critical] Parsing of malformed RTPS packets may have led to bus error on some platforms
- 5.18.13. [Critical] Crash if element in initial_peers longer than 72 characters added
- 5.18.14. [Major] Potential crash upon serialization, deserialization, or program shutdown when running out of memory
- 5.18.15. [Major] Possible crash when closing a logger device while it was being used
- 5.18.16. [Major] Crash during custom transport load when running out of memory
- 5.18.17. [Major] Precondition failure or segmentation fault when nonBasicTypeName is the name of a module
- 5.19. Hangs
- 5.19.1. [Critical] String built-in type unregister_type API blocked associated DomainParticipant
- 5.19.2. [Critical] Potential deadlock when using SHMEM transport on Linux, macOS, and LynxOS systems and killing one application
- 5.19.3. [Critical] Potential deadlock when creating entities in parallel that use Zero Copy transfer over shared memory transport
- 5.19.4. [Major] Running out of memory during DomainParticipant creation caused DomainParticipantFactory finalization to hang
- 5.20. Memory Leaks/Growth
- 5.20.1. [Critical] Parsing XML configuration with large tokens caused uncontrolled resource consumption
- 5.20.2. [Critical] Potential unbounded memory growth when using DNS tracking
- 5.20.3. [Critical] Parsing DTD with many nested/recursive entities could cause uncontrolled resource consumption
- 5.20.4. [Major] Memory leak when parsing malformed XML defined types
- 5.20.5. [Minor] Possible memory leak when initializing and finalizing the DomainParticipantFactory concurrently
- 5.20.6. [Minor] Memory leak when parsing XML QoS profile with unknown base_name
- 5.20.7. [Minor] Memory leak during DomainParticipant creation when running out of memory trying to create the event thread
- 5.21. Data Corruption
- 5.22. OMG Specification Compliance
- 5.23. Interoperability
- 5.24. Vulnerabilities
- 5.25. Other
- 5.25.1. [Critical] Data races on architectures with weak memory model
- 5.25.2. [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.25.3. [Major] Incorrect update of DataWriter’s pushed_fragment_count protocol statistic under some conditions
- 5.25.4. [Minor] IDL annotations printed after typdef specifier
- 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