5.4.18. Hangs

5.4.18.1. [Critical] Potential deadlock when using TCP Transport on Windows systems if WINDOWS_WAITFORMULTIPLEOBJECTS was selected as the socket monitoring API

A potential deadlock occurred when using TCP Transport on Windows systems if WINDOWS_WAITFORMULTIPLEOBJECTS was selected as the socket monitoring API.

[RTI Issue ID CORE-14983]

5.4.18.2. [Major] Potential deadlock when using Durable Writer History if there was a failure while creating the connection

A potential deadlock occurred when using Durable Writer History if there was a failure while creating the connection.

[RTI Issue ID CORE-15130]

5.4.18.3. [Major] Potential deadlock when using DynamicData in Debug libraries if TypePlugin initialization failed

A potential deadlock occurred when using DynamicData in the Debug libraries if the TypePlugin initialization failed.

[RTI Issue ID CORE-14986]

5.4.18.4. [Major] Potential issues using rti.asyncio.run or asyncio.run with dds.DataReader.take_async

There were two potential issues running the take_async methods:

  • When the coroutine was run using rti.asyncio.run, attempting to explicitly close a DomainParticipant afterward may have caused an exception.

  • When the coroutine was run using asyncio.run, a future call to asyncio.run for a new coroutine using the take_async methods may have deadlocked.

These two issues have been resolved. Furthermore, starting in this release, most applications may simply use asyncio.run instead of rti.asyncio.run.

[RTI Issue ID PY-181]

5.4.18.5. [Major] RPC failures when serializing the return value or out/inout parameters caused a timeout on client side

When an operation has a return value or out/inout parameters, serialization may fail under certain circumstances, such as if the return value is a bounded string and you return a string with a length that exceeds the bound. This failure produced a hang on the client side, ending with a dds::core::TimeoutError exception.

Now, the client will receive dds::rpc::RemoteUnknownExceptionError, letting the client know there’s an error on the service side, rather than timing out. You can look at the service log to see the cause of the serialization error.

[RTI Issue ID REQREPLY-245]