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

Justin Bertram updated ARTEMIS-4307:
------------------------------------
    Summary: AMQP Artemis "hangs" on single message delivery  (was: AMQP 
ARtemis "hangs" on single message delivery)

> AMQP Artemis "hangs" on single message delivery
> -----------------------------------------------
>
>                 Key: ARTEMIS-4307
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-4307
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: AMQP
>    Affects Versions: 2.28.0
>            Reporter: daves
>            Priority: Major
>
> My Setup:
> - Multiple clients ~500 send messages to a queue in Artemis using AMQP
> - A single application reads consumes the messages from the queue using AMQP
>  
> At some point - I sadly don't know how to reproduce it - my consuming client 
> does not receive messages anymore.
> From the perspective of my client the call to receiving new messages 
> (AMQP.NET lite) just hands/waits for messages and never returns. Also, It 
> still looks like the connection is open and healthy.
> On the Artemis side I see two different pictures.
> - In the Broker console I can see a consumer from my client, and it tells me 
> that 1 Messages is in Transit. ...as if Artemis is waiting for an ACK for the 
> message.
>  
> In the Artemis log is see this: 
> {code:java}
>  
> 2023-06-09 15:11:37,934 WARN  
> [org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext] 
> Array must not be empty or null
> java.lang.IllegalArgumentException: Array must not be empty or null
>     at 
> org.apache.qpid.proton.codec.CompositeReadableBuffer.append(CompositeReadableBuffer.java:691)
>  ~[proton-j-0.34.0.jar:?]
>     at 
> org.apache.qpid.proton.engine.impl.DeliveryImpl.send(DeliveryImpl.java:345) 
> ~[proton-j-0.34.0.jar:?]
>     at org.apache.qpid.proton.engine.impl.SenderImpl.send(SenderImpl.java:74) 
> ~[proton-j-0.34.0.jar:?]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext$LargeMessageDeliveryContext.deliverInitialPacket(ProtonServerSenderContext.java:715)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext$LargeMessageDeliveryContext.deliver(ProtonServerSenderContext.java:622)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.deliverLarge(ProtonServerSenderContext.java:837)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.executeDelivery(ProtonServerSenderContext.java:567)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.core.paging.cursor.PagedReferenceImpl.run(PagedReferenceImpl.java:116)
>  ~[artemis-server-2.28.0.jar:2.28.0]
>     at 
> io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566) 
> ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
> ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at 
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.28.0.jar:?]
> 2023-06-09 15:11:37,934 WARN  [org.apache.activemq.artemis.core.server] 
> AMQ222151: removing consumer which did not handle a message, 
> consumer=ServerConsumerImpl [id=3, filter=null, binding=LocalQueueBinding 
> [address=MyQName, queue=QueueImpl[name=MyQName, postOffice=PostOfficeImpl 
> [server=ActiveMQServerImpl::name=MyApp], temp=false]@776d381a, filter=null, 
> name=MyQName, clusterName=MyQName431ed7e1-05dd-11ee-ade9-f44d30e2ecf9]], 
> message=PagedReferenceImpl [message=PagedMessageImpl [queueIDs=[47], 
> transactionID=-1, page=25, message=AMQPLargeMessage( [durable=false, 
> messageID=12940183, address=MyQName, size=0, scanningStatus=SCANNED, 
> applicationProperties={atmid=CHE80000128, 
> content-type=application/x-protobuf, content-version=2.0, 
> process-id=FireAndForgetJob_AtmStatusRequest_CHE80000128_ConfigurationRequest_f2eb7a14-fc1e-4439-8c83-4e836e83c818,
>  content-status=200, Issued=2023-06-08 19:46:55.862 +02:00, 
> x-version=7.9.44.348, AtmJobId=-1, AtmCommandTaskId=4, 
> AtmCommandTaskResultId=-1, extensions=1, content-length=8145690}, 
> messageAnnotations={}, 
> properties=Properties{messageId=MyQName_2023-06-08T19:46:55.8712925+02:00_208f699f-9636-493f-9bfd-af4317e3dc45,
>  userId=null, to='MyQName', subject='null', replyTo='null', 
> correlationId=null, contentType=null, contentEncoding=null, 
> absoluteExpiryTime=Fri Jun 07 19:46:55 CEST 2024, creationTime=null, 
> groupId='null', groupSequence=null, replyToGroupId='null'}, extraProperties = 
> TypedProperties[_AMQ_AD=MyQName]]], deliveryTime=0, persistedCount=0, 
> deliveryCount=1, subscription=PageSubscriptionImpl [cursorId=47, 
> queue=QueueImpl[name=MyQName, postOffice=PostOfficeImpl 
> [server=ActiveMQServerImpl::name=MyApp], temp=false]@776d381a, filter = null]]
> java.lang.IllegalArgumentException: Array must not be empty or null
>     at 
> org.apache.qpid.proton.codec.CompositeReadableBuffer.append(CompositeReadableBuffer.java:691)
>  ~[proton-j-0.34.0.jar:?]
>     at 
> org.apache.qpid.proton.engine.impl.DeliveryImpl.send(DeliveryImpl.java:345) 
> ~[proton-j-0.34.0.jar:?]
>     at org.apache.qpid.proton.engine.impl.SenderImpl.send(SenderImpl.java:74) 
> ~[proton-j-0.34.0.jar:?]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext$LargeMessageDeliveryContext.deliverInitialPacket(ProtonServerSenderContext.java:715)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext$LargeMessageDeliveryContext.deliver(ProtonServerSenderContext.java:622)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.deliverLarge(ProtonServerSenderContext.java:837)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.protocol.amqp.proton.ProtonServerSenderContext.executeDelivery(ProtonServerSenderContext.java:567)
>  ~[artemis-amqp-protocol-2.28.0.jar:2.28.0]
>     at 
> org.apache.activemq.artemis.core.paging.cursor.PagedReferenceImpl.run(PagedReferenceImpl.java:116)
>  ~[artemis-server-2.28.0.jar:2.28.0]
>     at 
> io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:566) 
> ~[netty-transport-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
>  ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at 
> io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) 
> ~[netty-common-4.1.86.Final.jar:4.1.86.Final]
>     at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>  ~[artemis-commons-2.28.0.jar:?]
>  
> {code}
>  
>  
> To me it looks like Artemis tries to close the session/connection of my 
> consuming client but fails to do so.
>  
> Restarting Artemis or restarting my consumer does not change anything. So as 
> soon as the problem occurs it does not go away anymore unless a delete the 
> messages in the queue.
> So far I've no way to force/reproduce this problem, it just sporadically 
> occurs.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to