Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
The following WARN can occur due to a race condition between the initialization of org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry and the periodic check by RemotingServiceImpl$FailureCheckAndFlushThread:
AMQ212037: Connection failure to invm:0 has been detected: AMQ229014: Did not receive data from invm:0 within the -1ms connection TTL. The connection will now be closed. [code=CONNECTION_TIMEDOUT]
Also, the following ERROR message can happen at the same time:
ActiveMQNotConnectedException[errorType=NOT_CONNECTED message=AMQ219010: Connection is destroyed]
Internally, the org.apache.activemq.artemis.spi.core.protocol.ConnectionEntry is subject to the following race condition:
- ConnectionEntry is initilalized with the default ActiveMQClient.DEFAULT_CONNECTION_TTL (60000) at CoreProtocolManager#createConnectionEntry()
- RemotingServiceImpl$FailureCheckAndFlushThread evaluates if (entry.ttl != -1) as true.
- A Ping is sent. Then ttl is updated to ActiveMQClient.DEFAULT_CONNECTION_TTL_INVM (-1).
- RemotingServiceImpl$FailureCheckAndFlushThread checks if (now >= entry.lastCheck + entry.ttl). Since ttl has been updated to -1 the check passes (= expired) and the connection will be added to toRemove.
- The WARN and ERROR occur.
Attachments
Issue Links
- links to