So I just looked at the code again and I totally missed the Thread.sleep()
in consumeMessage() which nullifies my previous theory.


Justin

On Wed, Aug 23, 2017 at 3:02 PM, Justin Bertram <jbert...@redhat.com> wrote:

> Your code may be inducing a race condition.  Your consumeMessage() method
> is creating a session, setting a MessageListener, starting the session, and
> then closing the session immediately.  Meanwhile another thread is likely
> invoking your MessageListener's onMessage and attempting to acknowledge the
> message (on the session which was just closed).  The broker might should
> handle this situation more elegantly, but this looks like a bug in your
> code.  I'm not a Scala expert so correct me if I'm wrong.
>
>
> Justin
>
> On Wed, Aug 23, 2017 at 1:29 AM, Marko Asplund <marko.aspl...@gmail.com>
> wrote:
>
>> Hi,
>>
>> I'm getting occasional ActiveMQIllegalStateException in Artemis server
>> log.
>> Artemis has been deployed in a single instance setup and I'm connecting
>> using the core API. I've a single queue with one producer and 10
>> consumers.
>> The messages can be rather large but the volume has been quite low.
>> Here's a log extract:
>>
>> 13:51:37,340 ERROR [org.apache.activemq.artemis.core.server] AMQ224016:
>> Caught exception: ActiveMQIllegalStateException[errorType=ILLEGAL_STATE
>> message=AMQ119027: Could not find reference on consumer ID=0, messageId =
>> 1,535 queue = foo.bar.requests]
>>         at
>> org.apache.activemq.artemis.core.server.impl.ServerConsumerI
>> mpl.acknowledge(ServerConsumerImpl.java:850)
>> [artemis-server-2.2.0.jar:2.2.0]
>>         at
>> org.apache.activemq.artemis.core.server.impl.ServerSessionIm
>> pl.acknowledge(ServerSessionImpl.java:773)
>> [artemis-server-2.2.0.jar:2.2.0]
>>         at
>> org.apache.activemq.artemis.core.protocol.core.ServerSession
>> PacketHandler.onSessionAcknowledge(ServerSessionPacketHandler.java:629)
>> [artemis-server-2.2.0.jar:2.2.0]
>>         at
>> org.apache.activemq.artemis.core.protocol.core.ServerSession
>> PacketHandler.onMessagePacket(ServerSessionPacketHandler.java:267)
>> [artemis-server-2.2.0.jar:2.2.0]
>>         at
>> org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:33)
>> [artemis-commons-2.2.0.jar:2.2.0]
>> ...
>>
>> Any ideas on what could be causing this?
>>
>>
>> Artemis has been deployed on Ubuntu 16.04 server and running with Oracle
>> Java 8.
>>
>> The code is demonstrated in a sample here:
>> https://gist.github.com/marko-asplund/983300e4bec59f53a13bc0d319a506f6
>>
>>
>> marko
>>
>
>

Reply via email to