Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.32, qpid-java-6.0, qpid-java-broker-7.0.0
-
None
Description
QPID-6164 added RabbitMQ's publish confirms [1] feature to Broker-J. Concerning when the basic.ack is sent back to the client, the feature documentation states:
When will messages be confirmed?
..
For routable messages, the basic.ack is sent when a message has been accepted by all the queues. For persistent messages routed to durable queues, this means persisting to disk.
Currently, Broker-J does not behave in this way. The basic.ack is returned to the client before the auto-async transaction has confirmed that the data is on disk. The code is AMQChannel#deliverCurrentMessageIfComplete. It ought to arrange for the acks to be returned once the sync completes.