8.8. Regressions in 6.0.1
The following regressions occur in Connext 6.0.1.
8.8.1. Core Libraries
8.8.1.1. Fixed in 7.1.0 and 6.1.2
8.8.1.1.1. Creating DynamicDataTypePlugin with TypeCode from discovery and using content filtering causes segmentation fault
This regression was introduced in 6.0.0 and has been fixed in 6.0.1.30, 6.1.2, and 7.1.0. See Creating DynamicDataTypePlugin with TypeCode from discovery and using content filtering causes segmentation fault in the 6.0.0 Regressions section.
8.8.1.1.2. Crash with NULL listeners and non-none status masks in C applications that mix types with and without Zero Copy
This regression was introduced in 6.0.0 and has been fixed in 6.0.1.30, 6.1.2, and 7.1.0. See Crash with NULL listeners and non-none status masks in C applications that mix types with and without Zero Copy in the 6.0.0 Regressions section.
8.8.1.1.3. Application using Monitoring Libraries produces segmentation fault during DataReader creation
This regression was introduced in 6.0.0 and has been fixed in releases 7.1.0 and 6.1.2. See Section 8.9.1.1.3 in the 6.0.0 Regressions section.
8.8.1.2. Fixed in 7.0.0 and 6.1.2
8.8.1.2.1. Continuous creation of TopicQueries may lead to unnecessary memory fragmentation in OS memory allocator
This regression was introduced in 6.0.0 and has been fixed in releases 7.0.0 and 6.1.2. See Continuous creation of TopicQueries may lead to unnecessary memory fragmentation in OS memory allocator in the 6.0.0 Regressions section.
8.8.1.3. Fixed in 6.1.1
8.8.1.3.1. XSD Issue: order enforced in <publisher> tag
This regression was introduced in 6.0.0 and has been fixed in release 6.1.1. See XSD issue: order enforced in <publisher> tag in the 6.0.0 Regressions section.
8.8.1.3.2. Invalid key deserialization for mutable derived types with key members
This regression was introduced in 6.0.0 and has been fixed in release 6.1.1. See Invalid key deserialization for mutable derived types with key members in the 6.0.0 Regressions section.
8.8.1.3.3. Malformed samples with invalid strings not dropped by DataReader in C, traditional C++, and modern C++
This regression was introduced in 6.0.0 and has been fixed in release 6.1.1. See Malformed samples with invalid strings not dropped by DataReader in C, traditional C++, and modern C++ in the 6.0.0 Regressions section.
8.8.1.3.4. Samples lost if multiple readers were created in same locator and push_on_write was set to false
This regression was introduced in 6.0.1 and has been fixed in release 6.1.1.
If push_on_write
was set to false in a DataWriter’s DATA_WRITER_PROTOCOL
QoS Policy, and multiple DataReaders were created in the same locator (same participant,
same port), samples may have been lost.
This potential loss may have occurred when the second or subsequent DataReader was
created. When the DataWriter detected the new DataReader, it sent an RTPS gap message,
which may have gapped unsent samples. This was only an issue if push_on_write
was set to false.
[RTI Issue ID CORE-11515]
8.8.1.3.5. XML parser crashed from infinite recursion when XML QoS configuration contained inheritance loop
This regression was introduced in 6.0.1 and has been fixed in release 6.1.1.
An inheritance loop was formed when a <qos_profile>
inherited from itself
or when any <xxx_qos>
inherited from itself or its encapsulating <qos_profile>
.
Inheritance can be performed by using the base_name
attribute or <base_name>
tag.
In previous releases, Connext ignored this inheritance loop, but in 6.0.1 it crashed.
The following XML, which was fine in previous releases, caused a crash in 6.0.1:
<qos_profile name="SetIdentityRequest" base_name="SkyKeeperProfile">
<topic_qos name="SetIdentityRequest">
<durability>
<kind>VOLATILE_DURABILITY_QOS</kind>
</durability>
</topic_qos>
<datawriter_qos base_name="SetIdentityRequest"> <!-- Infinite recursion -->
<batch>
<enable>true</enable>
<max_flush_delay>
<sec>0</sec>
<nanosec>250000000</nanosec>
</max_flush_delay>
</batch>
</datawriter_qos>
<datareader_qos name="SetIdentityRequestReader">
<base_name>
<element>SetIdentityRequestReader</element> <!-- Infinite recursion -->
<element>ControlTowerProfile</element>
</base_name>
</datareader_qos>
</datareader_qos>
</qos_profile>
This problem has been fixed in release 6.1.1 by producing an error, instead of a crash, if the parser detects the inheritance loop.
To work around this problem in earlier releases, remove the inheritance loop in your XML file. For example, revise the above XML file as follows:
<qos_profile name="SetIdentityRequest" base_name="SkyKeeperProfile">
<topic_qos name="SetIdentityRequest">
<durability>
<kind>VOLATILE_DURABILITY_QOS</kind>
</durability>
</topic_qos>
<datawriter_qos> <!-- Remove base_name attribute -->
<batch>
<enable>true</enable>
<max_flush_delay>
<sec>0</sec>
<nanosec>250000000</nanosec>
</max_flush_delay>
</batch>
</datawriter_qos>
<datareader_qos> <!-- Remove the base_name tag element -->
<base_name>
<element>ControlTowerProfile</element>
</base_name>
</datareader_qos>
</qos_profile>
[RTI Issue ID CORE-11731]
8.8.1.3.6. Possible segmentation fault when receiving samples containing wstrings
This regression was introduced in 6.0.1 and 6.1.0 patch releases.
In releases 6.0.1.22 and higher and in release 6.1.0.3, a subscribing application may have crashed when receiving samples containing wstrings. This issue occurred when the following three conditions were all true:
The language binding was modern C++.
The size of wchar_t was 4-byte.
The length of a wstring member in the sample was equal to the maximum allowed. For example:
struct MyType { wstring<5> m1; };
For this type, the deserialization of a sample with the following value for m1
would lead to a segmentation fault: L"Hello"
.
This issue has been fixed in release 6.1.1.
[RTI Issue ID CORE-11896]
8.8.1.4. Fixed in 6.1.0
8.8.1.4.1. Possible issues with communication and enabling DomainParticipant on Windows systems if network interface had multiple IP addresses
On Windows platforms, when a network interface has assigned more than one IP address, Connext only detected the one with the lowest IP address. DomainParticipants running on a Windows host with this network configuration could not be discovered through the other IP addresses, causing communication issues.
Besides the communication issues, the DomainParticipant could not be enabled if the allow/deny_interfaces_list properties of the transport restricted the available IP addresses to the ones not reported and there was no other transport enabled on that DomainParticipant.
This regression was introduced in 6.0.1 and has been fixed in 6.1.0 and 6.0.1.20. Now, all the IP addresses of a network interface are detected and will work as expected.
[RTI Issue ID CORE-11232]
8.8.1.4.2. Failure to allocate memory larger than 2 GB
Connext failed to allocate heap memory larger than 2 GB. For example, if the
DataWriterQos’s resource_limits.initial_samples
was large enough to cause a
preallocation of more than 2 GB but less than the available heap memory, then
DataWriter creation incorrectly failed.
This problem only affected releases 5.3.1.22 and 6.0.1, and has been fixed in release 6.1.0.
[RTI Issue ID CORE-10057]
8.8.2. Security Plugins
8.8.2.1. Fixed in 7.2.0
8.8.2.1.1. Discovery time scaled poorly
This regression was introduced in 6.0.0 and has been fixed in 7.2.0. See Discovery time scaled poorly in the 6.0.0 Regressions section.
8.8.3. Code Generator
8.8.3.1. Fixed in 6.1.1
8.8.3.1.1. Change in behavior in C and traditional C++ for bounded sequences under certain conditions
This regression was introduced in 6.0.0 and has been fixed in release 6.1.1. See Change in behavior in C and traditional C++ for sequences of bounded strings under certain conditions when code is generated with optimization level 1 or 2 in the 6.0.0 Regressions section.
8.8.3.1.2. Invalid key deserialization for mutable derived types with key members
See Invalid key deserialization for mutable derived types with key members in the 6.0.0 Regressions section.
8.8.3.1.3. Malformed samples with invalid strings not dropped by DataReader in C, traditional C++, and modern C++
See Malformed samples with invalid strings not dropped by DataReader in C, traditional C++, and modern C++ in the 6.0.0 Regressions section.
8.8.4. Routing Service
8.8.4.1. Fixed in 6.1.1
8.8.4.1.1. Unbounded memory growth when restarting Service or creating/deleting DomainRoutes
This regression occurred in 6.0.0 and has been fixed in release 6.1.1. See Unbounded memory growth when restarting Service or creating/deleting DomainRoutes in the 6.0.0 Regressions section.
8.8.4.2. Fixed in 6.1.0
8.8.4.2.1. Create method in Service API fails to parse XML snippets that start with ‘str://’
This regression occurred in 6.0.0 and has been fixed in release 6.1.0. See Create method in Service API fails to parse XML snippets that start with ‘str://’ in the 6.0.0 Regressions section.
8.8.5. Recording Service
8.8.5.1. Fixed in 6.1.0
8.8.5.1.1. Crash if monitoring enabled and TopicGroup matched with Topic name containing ‘/’ character
This regression was introduced in 6.0.1. Recording Service crashed if monitoring was enabled and a TopicGroup matched with a Topic name that contained one or more forward slash (‘/’) characters. This problem has been fixed in 6.1.0 and 6.0.1.7.
[RTI Issue ID RECORD-1153]
8.8.5.1.2. Segmentation fault after discovering application that used UserData QoS Policy
This regression was introduced in 6.0.0. If Recording Service discovered an application that had at least one entity (DomainParticipant, DataReader, or DataWriter) that used the UserData QoS Policy, the behavior was undefined and would likely have resulted in a segmentation fault. This issue has been fixed in 6.1.0 and 6.0.1.3.
[RTI Issue ID RECORD-1125]
8.8.6. Prototyper
8.8.6.1. Fixed in 6.1.0
8.8.6.1.1. Prototyper broken in 6.0.1
Changes to internal components in RTI Connector, which are shared with RTI Prototyper, render Prototyper unusable in 6.0.1.
This problem is fixed in release 6.1.0; however, 6.1.0 is the last release in which Prototyper is supported. After 6.1.0, Prototyper will not be supported. RTI Connector replaces it and supports more scripting languages.
[RTI Issue ID PROT-89]