Skip to content

Missing closed session event when connection times out

Description

From the client point of view, when the TCP connection holds but the OPC UA connection times out, usually the applicative layer will call SOPC_ToolkitClient_AsyncCloseSession, which issues a CloseSessionRequest. If the TCP connection still holds but this server is still not responding, the latter request also times out.

In this latter case, the timeout event is not received by the applicative layer, which cannot declare the connection closed.

Analysis

The timeout of the CloseSessionRequest is handled in internal_client_request_timeout, which does not call cli_request_timeout, because the message is not applicative.

Recommendations

The B operations internal_client_request_timeout and client_snd_msg_failure should be merged, as they do have lots of similarities.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information