[ 
https://issues.apache.org/jira/browse/ARTEMIS-2459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

clebert suconic reopened ARTEMIS-2459:
--------------------------------------

> Fix err in the replacement of a non-destructively consumed LVQ message
> ----------------------------------------------------------------------
>
>                 Key: ARTEMIS-2459
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-2459
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 2.9.0
>            Reporter: yangwei
>            Priority: Major
>             Fix For: 2.10.0
>
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> The issue was reported by users, see 
> [http://activemq.2283324.n4.nabble.com/AMQ-224038-on-Last-Value-Queue-td4751400.html#a4751422.|http://activemq.2283324.n4.nabble.com/AMQ-224038-on-Last-Value-Queue-td4751400.html#a4751422]
> Protection steps are below:
> 1. First send a message.
> 2. Then receive the message. The key point is here: We ack this message and 
> delete the message so the record is removed in "records" map.
> 3. Last send another message. 
> Then exception thrown on broker side:
> [Thread-13 
> (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@77a57272)]
>  15:01:06,990 ERROR [org.apache.activemq.artemis.core.server] AMQ224038: 
> Failed to ack old reference: java.lang.IllegalStateException: Cannot find add 
> info 446 on compactor or current records
> at 
> org.apache.activemq.artemis.core.journal.impl.JournalImpl.checkKnownRecordID(JournalImpl.java:1081)
>  [:]
> at 
> org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendUpdateRecord(JournalImpl.java:888)
>  [:]
> at 
> org.apache.activemq.artemis.core.journal.Journal.appendUpdateRecord(Journal.java:98)
>  [:]
> at 
> org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.storeAcknowledge(AbstractJournalStorageManager.java:425)
>  [:]
> at 
> org.apache.activemq.artemis.core.server.impl.QueueImpl.acknowledge(QueueImpl.java:1539)
>  [:]
> at 
> org.apache.activemq.artemis.core.server.impl.LastValueQueue.acknowledge(LastValueQueue.java:193)
>  [:]
> at 
> org.apache.activemq.artemis.core.server.impl.MessageReferenceImpl.acknowledge(MessageReferenceImpl.java:235)
>  [:]
> at 
> org.apache.activemq.artemis.core.server.impl.LastValueQueue.replaceLVQMessage(LastValueQueue.java:172)
>  [:]
> at 
> org.apache.activemq.artemis.core.server.impl.LastValueQueue.addTail(LastValueQueue.java:107)
>  [:]
> at 
> org.apache.activemq.artemis.core.server.impl.RoutingContextImpl.internalprocessReferences(RoutingContextImpl.java:164)
>  [:]
> at 
> org.apache.activemq.artemis.core.server.impl.RoutingContextImpl.processReferences(RoutingContextImpl.java:159)
>  [:]
> at 
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl$2.done(PostOfficeImpl.java:1378)
>  [:]
> at 
> org.apache.activemq.artemis.core.persistence.impl.journal.OperationContextImpl$1.run(OperationContextImpl.java:244)
>  [:]
> at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
>  [:]
> at 
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
>  [:]
> at 
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:66)
>  [:]
> at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>  [rt.jar:1.8.0_102]
> at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>  [rt.jar:1.8.0_102]
> at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  [:]
>  



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Reply via email to