RTI Criticalissues
RTI Criticalissues
Issue Type Key Release Notes Title Release Notes Description Workaround Status Resolution Introduced in
Bug CODEGENII-881 Segfault when calling A call to TypeSupport::deserialize_data_from_cdr_buffer may have produced a segfault if the input buffer contained unknown enum values or union discriminators. For example: Resolved Fixed 2.5.0 (5.3.0)
TypeSupport::deserialize_data_from_c {code}
dr_buffer on a buffer containing enum MyEnumSub {
unknown enum values or union unknown,
discriminators ENUM_2,
ENUM_3
};
enum MyEnumPub {
unknown,
ENUM_2,
ENUM_3,
ENUM_4
};
@mutable
struct MyTypePub {
MyEnumPub myEnum;
};
@mutable
struct MyTypeSub {
MyEnumSub myEnum;
};
{code}
If your application called MyTypePubTypeSupport::serialize_data_to_cdr_buffer on a sample in which myEnum was set to ENUM_4 and deserialized the output buffer using the API
MyTypeSubTypeSupport::deserialize_data_from_cdr_buffer, the call to this last API may have produced a segfault.
This problem has been fixed: the call to MyTypeSubTypeSupport::deserialize_data_from_cdr_buffer will deserialize ENUM_4 and convert it to unknown.
Bug CORE-7388 Function DDS.To_DDS_Wide_String When using DDS.To_DDS_Wide_String in Ada to convert a Standard.Wide_String into a DDS.Wide_String, STORAGE_ERROR was raised and the operation failed. This problem has Resolved Fixed
in Ada failed, raising exception been resolved.
Bug CORE-8256 Segmentation fault while looking up When monitoring libraries were enabled in a traditional C++ or .NET application, the use of *lookup_topicdescription()* or *find_topic()* to get a monitoring topic led to a segmentation Resolved Fixed
vendor-specific topics from a fault. This problem has been resolved. These functions now successfully retrieve the monitoring topic.
traditional C++ or .NET application
Similar problems existed for the _Distributed Logger_ topics and the _Security Plugins_ Builtin Logging topic. These problems have also been resolved.
Bug CORE-8295 Possible Continuous Failure to Send When using the shared memory transport and rapidly creating and deleting DomainParticipants, it was possible for a DataWriter or DataReader to continuously fail to send content. The Resolved Fixed 4.1x
over Shared Memory Transport following log message was generated with the NDDS_CONFIG_LOG_VERBOSITY_STATUS_ALL verbosity and NDDS_CONFIG_LOG_CATEGORY_COMMUNICATION category:
{code}
RTINetioSender_send: send failed: locator: shmem://0000:0702:0007:0000:0000:0000:0000:0000:10414
{code}
Bug CORE-8462 Possible crash in the creation of a Applications creating an SQL content filter for a topic-type that inherits from an aliased type crashed in all the languages' APIs except for the C API. Resolved Fixed
content filter for a type with an aliased
base type For example, the creation of a DataReader with a ContentFilteredTopic based on the following IDL type "Foo" caused this problem (except in the C API):
{code:java}
struct Base { long x; };
typedef Base BaseAlias;
struct Foo : BaseAlias { long y; };
{code}
This problem has been resolved.
Bug CORE-8464 Segmentation Fault When A rare segmentation fault may have occurred in the following scenario: Resolved Fixed 4.1x
Simultaneously Removing Remote
Participant and Sending a Message to * Three DomainParticipants: P1, P2, P3.
a Third Participant * Delete P1.
* P2 receives an announcement (via ParticipantBuiltinTopicData) from P1 that it has been deleted. P2 starts removing P1 as a remote participant.
* Simultaneously, P2 sends a message to P3. For example, it could be an ACKNACK from P2's DataReader to P3's DataWriter.
* While P2 is sending the message, P2 may have crashed with a bad pointer access.
{code}
struct T1 {
long x;
};
This problem affected types with extensible extensibility (the default). It did not affect types with final or mutable extensibility.
The DataWriter keeps state for each TopicQuery it receives. This state can be deleted when all the samples that the TopicQuery selects have been delivered and acknowledged.
However, some state information was not removed until the samples were replaced (for example, when updating an instance and exceeding the history depth).
Bug CORE-8855 DDS_PublisherQos_copy() in the RTI DDS_PublisherQos_copy() in the RTI Connext DDS C API made a shallow copy for all the DDS_ThreadSettings_t it contained within the asynchronous_publisher members: Resolved Fixed 4.3x
Connext DDS C API made a shallow # asynchronous_batch_thread
copy # thread
# topic_query_publication_thread
Because of this shallow copy, if you made a copy of the DDS_PublisherQos from an original value and finalized the copy by calling finalize(), accessing the original structure would
have caused a crash, since the DDS_LongSeq corresponding to cpu_list would have been cleaned up due to the nature of shallow copy. The crash occurred because
DDS_ThreadSettings_t contained a member of type DDS_LongSeq, which, being a sequence, has just pointers to the actual values on the heap. Since other language wrappers were
calling the C API, this problem was present in all languages.
Now, DDS_PublisherQos_copy() makes a deep copy by replicating the heap values and not just the pointers, in all languages.
Bug CORE-8940 Potential crash when setting A crash may have occurred when using Java monitoring libraries with a new_participant_domain_id different than the default. This issue is now resolved: the Java monitoring libraries Resolved Fixed 5.3.0
new_participant_domain_id in Java no longer crash when setting new_participant_domain_id.
monitoring libraries
Bug CORE-8967 Segmentation fault on destruction of When using the C++ API, a segmentation fault happens if the DomainParticipantFactory is finalized in the same scope as stack-allocated DDSGuardCondition or DDSWaitset Confirmed Unresolved
DDSGuardCondition or DDSWaitset instances.
Bug CORE-8975 Converting DDS.Wide_String to When using Ada's DDS.To_Standard_Wide_String function to convert a DDS.Wide_String to a Standard.Wide_String, the function raised a CONSTRAINT_ERROR and failed to Resolved Fixed
Standard.Wide_String failed convert the string. If used in a DataReader listener, the internal reception thread stopped working without producing error messages and no new samples could be received. This
problem has been resolved.
Bug QUEUEING-670 Sample Lifespan not working when Queuing Service did not expire samples when their lifespan expired, when app_ack_sample_to_producer was disabled on a SharedReaderQueue. Now, even when Resolved Fixed
app_ack_sample_to_producer app_ack_sample_to_producer is disabled, Queuing Service expires samples (using whichever method you use to control lifespan: either the queue_qos or the Lifespan QoS for the
disabled on SharedReaderQueue QueueProducer).
Bug QUEUEING-677 Improper queue shutdown when using When attempting to delete a queue with WAIT_WITHOUT_REPLACEMENT sample replacement policy set, Queuing Service may have hanged or crashed. This problem may have Resolved Fixed 5.2.0
WAIT_WITHOUT_REPLACEMENT occurred during the graceful shutdown of a queue triggered by a remote administration DELETE command. This problem has been resolved.
policy
Bug QUEUEING-678 Replicated Queuing Service instance On Windows systems, a replicated Queuing Service instance may crash immediately after reaching quorum. Under review Unresolved
may crash on Windows machines
This problem has been resolved.
Bug QUEUEING-681 Queuing Service could potentially Queuing Service may have crashed if a full queue became available during shutdown. This problem has been resolved. Resolved Fixed
crash during shutdown
Bug RECORD-933 Replay crashes when incompatible When Replay's administration DataReader uses QoS settings that are incompatible with the administration DataWriters, Replay crashes instead of exiting gracefully. Output like the Confirmed Unresolved
QoS is provided for Administration following will be printed out before the crash:
DataReader {noformat}
RTI Replay 5.3.1 initializing ...
Periodic status announcement enabled.
[D0300|Sub(80000009)|T=rti/replay/administration/command_request|CREATE Reader]DDS_DataReaderQos_to_presentation_qos:!determine multicast transport locators
[D0300|Sub(80000009)|T=rti/replay/administration/command_request|CREATE Reader]DDS_DataReader_create_presentation_readerI:ERROR: Failed to set reader QoS
[D0300|Sub(80000009)|T=rti/replay/administration/command_request|CREATE Reader]DDS_DataReader_createI:!create reader
[D0300|Sub(80000009)|T=rti/replay/administration/command_request|CREATE Reader]DDS_Subscriber_create_datareader_disabledI:!create reader
PLAYBACKRemoteConfigServer_start:!create reader
PLAYBACKRemoteConfigServer_initialize:!create connection
{noformat}
Bug RECORD-941 Replay did not replay instance state The _Replay_ service was not replaying the recorded instance state (NOT_ALIVE_DISPOSED and NOT_ALIVE_NO_WRITERS). This meant that when, for example, a dispose Creating Unresolved
changes message was recorded for an instance, _Replay_ would not dispose that instance. Documentation
Bug ROUTING-539 Crashed on shutdown if types Routing Service could have randomly crashed during shutdown if it obtained types from both discovery and XML configuration. This problem has been resolved. Resolved Fixed 5.0.0
provided both through discovery and
Bug ROUTING-579 TopicRoutes with TopicQuery proxy A TopicRoute with multiple outputs that enabled TopicQuery proxy mode forwarded live data only to the first output. This problem has been resolved so live data is forwarded to all Resolved Fixed 5.3.0
mode enabled forwarded live data only outputs.
Bug SEC-734 Potential crash in Spy, Ping, or Enabling Security and Secure Distributed Logging on Spy, Ping, or Persistence Service may have provoked a segfault. This problem is now resolved. Creating Unresolved 5.1.1
Persistence Service when enabling Documentation
Secure Distributed Logging
Bug SEC-842 Segmentation Fault When Trying to According to the DDS Security specification, an encoded RTPS message must have an SRTPS_POSTFIX submessage. When trying to decode an RTPS message with an Resolved Fixed 5.2.6
Decode a Malformed RTPS Message SRTPS_PREFIX but no SRTPS_POSTFIX, a segmentation fault would occur in the function MIGRtpsTrustSubmessage_deserializePostfix. This problem has been resolved by
discarding such an RTPS message.