10.9. Regressions in 6.0.1

The following regressions were introduced in Connext 6.0.1.

10.9.1. Core Libraries

10.9.1.1. Samples lost if multiple readers created in same locator and push_on_write is set to false

If push_on_write is set to false in a DataWriter’s DATA_WRITER_PROTOCOL QoS Policy, and multiple DataReaders are created in the same locator (same participant, same port), samples might be lost.

This potential loss might occur when the second or subsequent DataReader is created. When the DataWriter detects the new DataReader, it sends an RTPS gap message, which may gap unsent samples. This is only an issue if push_on_write is set to false.

Fixed in: 6.1.1

[RTI Issue ID CORE-11515]

10.9.1.2. XML parser crashes from infinite recursion when XML QoS configuration contains inheritance loop

An inheritance loop is formed when a <qos_profile> inherits from itself or when any <xxx_qos> inherits 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 crashes.

The following XML, which was fine in previous releases, causes 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>

Fixed in: 6.1.1

[RTI Issue ID CORE-11731]

10.9.1.3. Possible issues with communication and enabling DomainParticipant on Windows systems if network interface has multiple IP addresses

On Windows platforms, when a network interface has assigned more than one IP address, Connext only detects the one with the lowest IP address. DomainParticipants running on a Windows host with this network configuration cannot be discovered through the other IP addresses, causing communication issues.

Besides the communication issues, the DomainParticipant cannot be enabled if the allow/deny_interfaces_list properties of the transport restricts the available IP addresses to the ones not reported and there is no other transport enabled on that DomainParticipant.

In the fix for this issue, all the IP addresses of a network interface are detected and work as expected.

Fixed in: 6.1.0

[RTI Issue ID CORE-11232]

10.9.1.4. Failure to allocate memory larger than 2 GB

Connext fails to allocate heap memory larger than 2 GB. For example, if the DataWriterQos’s resource_limits.initial_samples is large enough to cause a preallocation of more than 2 GB but less than the available heap memory, then DataWriter creation incorrectly fails.

Fixed in: 6.1.0

[RTI Issue ID CORE-10057]

10.9.2. Routing Service

10.9.2.1. Fourth digit of product version not logged at startup

Routing Service does not log the fourth digit (revision) of the product version at startup.

Fixed in: 6.1.2, 7.0.0

[RTI Issue ID ROUTING-975]

10.9.3. Recording Service

10.9.3.1. Crash if monitoring enabled and TopicGroup matches with Topic name containing ‘/’ character

Recording Service crashes if monitoring is enabled and a TopicGroup matches with a Topic name that contains one or more forward slash (‘/’) characters.

Fixed in: 6.1.0

[RTI Issue ID RECORD-1153]

10.9.4. Prototyper

10.9.4.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.

Fixed in: 6.1.0

[RTI Issue ID PROT-89]

10.9.5. Security Plugins

10.9.5.1. Properties “com.rti.serv.secure.license_string” and “com.rti.serv.secure.license_file” not validated properly

The properties com.rti.serv.secure.license_string and com.rti.serv.secure.license_file are not validated properly. If you use these properties, you may see this error:

DDS_PropertyQosPolicy_validateEntityPropertyNames:Unexpected property: com.rti.serv.secure.license_string. Closest valid property: dds.license.license_string. If you wish to proceed with this property name anyway, change 'dds.participant.property_validation_action' to 'VALIDATION_ACTION_SKIP' or 'VALIDATION_ACTION_WARNING'.
DDS_DomainParticipantQos_is_consistentI:inconsistent QoS property
DDS_DomainParticipantFactory_create_participant_disabledI:ERROR: Inconsistent QoS
DDSDomainParticipant_impl::create_disabledI:!create participant
DDSDomainParticipant_impl::createI:!create participant

Fixed in: 6.1.1

[RTI Issue ID SEC-1352]

10.9.5.2. Using properties “dds.license.license_string” or “dds.license.license_file” leads to DomainParticipant creation failure

The properties dds.license.license_string and dds.license.license_file are not validated properly. If you use these properties, you will see an error like this one during DomainParticipant creation failure:

DDS_PropertyQosPolicy_validate_plugin_property_suffixes:Unexpected property: com.rti.serv.secure.dds.license.license_string. Closest valid property: com.rti.serv.secure.license_string. If you wish to proceed with this property name anyway, change 'com.rti.serv.secure.property_validation_action' to 'VALIDATION_ACTION_SKIP' or 'VALIDATION_ACTION_WARNING'.

Fixed in: 7.6.0

[RTI Issue ID SEC-2689]