Hi Jon, Just took a quick look on the PR and it looks good to me.
Just a side note: please open the PR only based on master (not for other branches). I do the cherry pick once master is up to date. Let’s wait other feedback before merging. Thanks, Regards JB > Le 23 mars 2021 à 20:49, Jonathan Gallimore <[email protected]> a > écrit : > > Hi > > I've been looking at a problem I ran into here where messages are consumed, > and acknowledged, but are then later redelivered to the consumer again > after a broker restart. > > The consumer is running with transacted sessions, and looking in KahaDB, I > can see a KAHA_REMOVE_MESSAGE_COMMAND, with the local transaction ID added > to the journal, and then a KAHA_COMMIT_COMMAND after it. Some time later, I > see the exact same KAHA_REMOVE_MESSAGE_COMMAND appended to the journal > again, with the exact same transaction information, but no > corresponding KAHA_COMMIT_COMMAND. This appears to follow a > KAHA_REWRITTEN_DATA_FILE_COMMAND. > > It looks like the ack compaction method is forwarding the acknowledgement, > but not the commit - it appears that the commit is only forwarded in the > case of an XA transaction. > > I notice that there are some tests around this in AMQ-7067. I've managed to > reproduce this with a further test case in AMQ8067Test.java, and I have > created a PR for this here: https://github.com/apache/activemq/pull/636, > and backported to 5.16.x https://github.com/apache/activemq/pull/637 and > 5.15.x. https://github.com/apache/activemq/pull/638 > > Are there other cases that should be tested around this? > > Thanks > > Jon
