Skip to content

Conversation

@Nautilus009
Copy link

In ActiveMQ-CPP 3.9.5, several methods in activemq/core/ActiveMQMessageAudit.cpp use subtraction against Integer::MAX_VALUE when normalizing the ProducerSequenceId. When the sequence exceeds 2,147,483,647, the subtraction results in a negative scaled index, which causes the bit array (BitSet) access to throw or behave incorrectly. As a result, messages — especially Advisory messages — are incorrectly marked as duplicates and discarded under failover conditions after long broker uptime.

In ActiveMQ-CPP 3.9.5, several methods in activemq/core/ActiveMQMessageAudit.cpp use subtraction against Integer::MAX_VALUE when normalizing the ProducerSequenceId.
When the sequence exceeds 2,147,483,647, the subtraction results in a negative scaled index, which causes the bit array (BitSet) access to throw or behave incorrectly.
As a result, messages — especially Advisory messages — are incorrectly marked as duplicates and discarded under failover conditions after long broker uptime.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant