10.6. Known Issues¶
Note
For an updated list of critical known issues, see the Critical Issues List on the RTI Customer Portal at https://support.rti.com.
10.6.1. Possible memory leak when entity creation functions fail¶
If DDS entity creation fails due to a configuration error, a memory leak may occur.
[RTI Issue ID MICRO-3531]
10.6.2. DomainParticipant_assert_liveliness does not function properly if Reader/Writer are in same DomainParticipant¶
DomainParticipant_assert_liveliness does not properly assert liveliness
if the DataReader and DataWriter are in the same DomainParticipant.
[RTI Issue ID MICRO-2759]
10.6.3. GCC warnings caused by type plugin functions¶
When compiling TypePluginProgramExecution.c (only included in the full
source bundle), GCC version 12 and above emits the following warning:
storing the address of local variable 'xcdrStream' in '*localContext.xcdrStream' [-Wdangling-pointer=]
localContext->xcdrStream = xcdrStreamPtr;
This warning is benign and the behavior is correct.
[RTI Issue ID MICRO-13220]
10.6.4. MAG always generates initial value for AUTOSAR data type with one element¶
Due to Micro Application Generator’s limited capacity to process data types,
the initial value generated for AUTOSAR_CDD only contains a single
element, regardless of the number of elements required as defined in
DDS-XML. This can cause incompatibility errors in DaVinci Developer.
As a workaround, modify the generated files application.arxml and DdsCddType.arxml
to add values as needed, either manually or through DaVinci Developer.
[RTI Issue ID MICRO-13486]
10.6.5. MAG does not support hex values as XML input¶
Micro Application Generator (MAG) cannot process hex inputs from XML files.
As a workaround, convert hex values to decimal values in your XML file before running rtiddsmag.
[RTI Issue ID MAG-402]
10.6.6. Samples cannot be recovered if subscribing application fails to return loan¶
When a subscribing application has taken a loan for the Zero Copy v2 transport (using the API FooDataReader_read() or FooDataReader_take()) and fails to return the loan due to a crash or other circumstances, Connext Micro cannot recover those samples. This also affects the matching DataWriter, which cannot reclaim the samples and continues to run in a degraded state.
[RTI Issue ID MICRO-5834]
10.6.7. 64-bit discriminator values greater than (2^31-1) or smaller than (-2^31) not supported¶
Unions with a 64-bit integer discriminator type containing discriminator values that cannot fit in a 32-bit value are not supported when using the following language bindings:
C
Traditional C++
They are also not supported with ContentFilteredTopics, regardless of the language binding.
Using label values greater than 32-bit may lead to receiving samples with invalid content or to filtering samples incorrectly.
[RTI Issue ID MICRO-3056]
10.6.8. NaN and INF float and doubles are not detected and will not cause errors¶
Normally, Connext Micro discards samples with values that are out of range during serialization and de-serialization; however, Not a Number (NaN) and Infinite (INF) floating point and doubles are not detected and will not cause serialization or de-serialization errors.
[RTI Issue ID MICRO-5960]
10.6.9. Ungracefully terminated QNX processes using SHMEM transport prevents startup of new processes due to unclosed POSIX semaphores¶
If a QNX 7.0 or earlier application using the shared-memory transport was ungracefully shut down, crashed, or otherwise had an abnormal termination while holding a POSIX semaphore used by the transport (for example, while sending data through the shared-memory transport), Connext applications launched after that point on the same domain may wait forever for that semaphore to be released.
Workaround for QNX 7.0 and earlier: to enable new applications to start, RTI recommends stopping all applications, then cleaning up the Inter-Process Communication (IPC) resources before starting new applications.
This problem is resolved for QNX 7.1, as described in the fix for [Critical] Ungracefully terminated QNX processes using SHMEM transport prevented startup of new processes due to unclosed POSIX semaphores.
[RTI Issue ID MICRO-6013]
10.6.11. Porting Guide not included¶
Starting in release 4.2.0, Connext Micro has many internal changes from previous versions of Connext Micro, and APIs are not considered stable. Therefore, instructions for porting Connext Micro are not included. If you need instructions to port Connext Micro, please contact support@rti.com.
[RTI Issue ID MICRO-8618]
10.6.12. Platform Independent Library toolchain dependencies¶
The platform independent libraries (PIL) are not completely independent of the toolchain and standard C library, and thus require a compatible toolchain and standard library to link to. See Platforms Guide for more information.
[RTI Issue ID MICRO-8154]
10.6.13. Technical limitations for semaphore timeout variance on Windows systems¶
The Windows semaphore implementation utilizes the kernel-level
WaitForSingleObject function. While the Windows API represents time in 100ns
intervals (ticks), the Windows kernel dispatcher does not evaluate wait
conditions at that resolution. Instead, thread completion and timeout
expiration are governed by the system interrupt timer.
In standard Windows configurations for Connext Micro, this interrupt occurs every 15.6ms. Because the kernel processes the “waitlist” only during these interrupt intervals, a requested timeout is rounded to the nearest interrupt boundary. This creates a scenario where a thread may be signaled at the start of the interrupt period encompassing the target time, resulting in a return that is physically “early” when measured against a high-resolution clock.
[RTI Issue ID MICRO-13073]