8.2. What’s New in 2.4.14.2

8.2.1. New multicast feature available on AUTOSAR platforms

This release introduces support for multicast sockets on AUTOSAR platforms. Previously, only unicast sockets were supported. For more information, see Connext Micro on AUTOSAR in this document and OSAPI AutoSAR in the API Reference.

The port property local_addr_id has been renamed to max_local_addr_id, and must be set to the maximum address id configured in the TcpIp BSW module.

[RTI Issue ID MICRO-3338]

8.3. What’s Fixed in 2.4.14.2

8.3.1. DataReader on a Topic using an appendable type may receive samples with incorrect value

A DataReader subscribing to a Topic on an appendable type may have received incorrect samples from a matching DataWriter.

The problem only occurred when the DataWriter published a type with fewer members than the DataReader type. For example, consider a DataWriter on FooBase and a DataReader on FooDerived:

@appendable struct FooBase {
   sequence<uint8,1024>base_value;
};

@appendable struct FooDerived {
   sequence<uint8,1024> base_value;
   @default(12) uint8 derived_value;
};

In this case, the serialized sample stream would be padded with extra bytes to align the stream to 4 bytes as required by the OMG ‘Extensible and Dynamic Topic Types for DDS’ specification, version 1.3. However, the additional padding bytes were incorrectly interpreted as part of the data and derived_value may have been set to a random value.

For example, in the case above, when the DataWriter published a sample with type FooBase, the DataReader should drop the sample instead of interpreting the padding bytes as data.

Note

Connext Micro does not support the @default annotation.

[RTI Issue ID MICRO-6402]

8.3.2. Building for FreeRTOS failed when using RTIME_CERT flag

When building Connext Micro with the RTIME_CERT flag enabled, the build would fail and output warnings.

[RTI Issue ID MICRO-5954]

8.3.3. Potential segmentation fault while creating entities

A segmentation fault could occur while creating certain entities if Connext Micro ran out of memory. Connext Micro will now detect this condition and return an error.

This issue only affected non-CERT profiles.

[RTI Issue ID MICRO-3396]

8.3.4. Incorrect generated code when using IDL whose name starts with a number

The generated code for an IDL whose name started with a number was incorrect and did not compile. The generated code contained some ifdef instructions that started with a number, which was not valid because an identifier must start with a letter (or underscore).

Now, invalid identifier characters are converted to ‘_’ in the ifdef instruction.

[RTI Issue ID MICRO-2066]

8.3.5. Code Generator could not parse a file preprocessed with GCC 11

GCC 11 produced unexpected output when used as a preproccesor. This unexpected output caused an error in Code Generator.

Code Generator will now work correctly with the output generated by GCC 11.

[RTI Issue ID CODEGENII-1508]

8.3.6. Race condition and memory corruption in logger

The following issues have been fixed in the logger:

  • Processing log-messages in a log handler was not thread-safe.

  • Memory corruption may have occurred.

  • Conversion of INT_MIN was incorrect.

Note

The OSAPI_Log_clear API must not be called outside a log-handler since it is no longer thread-safe.

[RTI Issue ID MICRO-5854]

8.3.7. Generated example CMakeLists.txt required -udp_intf option to be specified

The generated example CMakeLists.txt file did not use the default interfaces on macOS, Linux, and Windows, and it was necessary to use the -udp_intf option when running the example.

[RTI Issue ID MICRO-6969]