There is a race condition between ConnectionEntry.ttl and
FailureCheckAndFlushThread whereby an in-vm connection may get closed
inadvertently due to a TTL timeout. This is because ConnectionEntry.ttl
is initialized to 60000 and then later set to -1 upon the initial Ping.
If this update happens at *just* the right time in
FailureCheckAndFlushThread then the connection will be closed.
The fix ensures that the ConnectionEntry.ttl is set to -1 for in-vm
connections from the start. It also eliminates the possibility of the
race in FailureCheckAndFlushThread.
This fix is based on static analysis of the code. The timing window is
just too small to contruct a reliable test. The failure has only been
seen in the wild a handful of times.
ActiveMQ Artemis is the next generation message broker from Apache ActiveMQ.
Getting Started
See the User Manual for an in-depth explanation of all aspects of broker configuration and behavior.
The ActiveMQ Artemis Examples repository contains over 90 examples demonstrating many of the client and broker features.
How to Build, etc.
See the Hacking Guide for details about modifying the code, building the project, running tests, IDE integration, etc.
Migrate from ActiveMQ "Classic"
See the Migration Guide for information about the architectural and configuration differences between ActiveMQ "Classic" (i.e. 5.x) and ActiveMQ Artemis.
Report an Issue
See our website for details on how to report an bug, request a feature, etc.