Nezih BEN FREDJ created AMQ-7009:
------------------------------------

             Summary: ActiveMQ stop delivering messages
                 Key: AMQ-7009
                 URL: https://issues.apache.org/jira/browse/AMQ-7009
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.13.4
            Reporter: Nezih BEN FREDJ
         Attachments: MemoryMessageStore.java, activemq.log

We have a problem with ActiveMQ 5.13.4, it stop deliver messages to clients.

This happens completely randomly and we are not able to give a test case that 
reproduce the problem

Activemq is configured to use the « memoryPersistenceAdapter »

 

When examining memory dumps, we identified incoherent situation in the class 
MemoryMessageStore that can lead to stop delivering messages. When :

- MemoryMessageStore.recoverNextMessages(...) is called

- « lastBatchId » is not null

- « messageTable » does not contains any entry with « lastBatchId » as key

no messages are recovered

 

We added logs to try to understand how it is possible to have a non null « 
lastBatchId » and «  messageTable » with no entry having « lastBatchId » as key.

 

We noticed that the method setBatch is called with a non null « messageId » 
parameter, but no message with this id is inserted in « messageTable ». After 
that, when the method MemoryMessageStore.recoverNextMessages(...) is called, it 
does nothing and no messages are recoverd. And the system go in a what looks 
like an endless loop.

 

We are testing a temporary solution by resetting « lastBatchId » to null when 
the incoherent situation is detected.

 

Can you help us resolving the problem at the source and not just get around.

I joined modified source code of the class MemoryMessageStore and an extract of 
the log file.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to