Unit test ConflationQueueTest.testParallelProductionAndConsumption has failed on Jenkins at least twice:
This test has previously run successfully.
On first glance, the test doesn't appear to have any inherent race conditions, therefore it is possible that this represents a genuine problem.
In this test, two producers each each 400 messages with alternating conflation key values, followed by special "shutdown" messages. A single consumer remembers the latest message for each conflation key value.
Each producer's last few messages should be:
- Message 397 (conflation key '1')
- Message 398 (conflation key '0')
- Message 399 (conflation key '1')
- Shutdown message
The assertion in question checks the last message received for each conflation key value. In this case, the last message with key '1' is message 397, not the expected message 399.
Examination of the test output (attached) indicates that the consumer received message 399 once (it must have been conflated), and that - surprisingly - it arrived after the two shutdown messages.