Domenico Francesco Bruscino created ARTEMIS-5308:
----------------------------------------------------
Summary: Messages are blocked after sending too large header
Key: ARTEMIS-5308
URL: https://issues.apache.org/jira/browse/ARTEMIS-5308
Project: ActiveMQ Artemis
Issue Type: Bug
Reporter: Domenico Francesco Bruscino
Assignee: Domenico Francesco Bruscino
When using a high available setup, an issue occurs when sending a message with
a header that is too large. The main broker rejects the message, but at the
same time, it seems that it is trying to perform replication to the backup
broker.
The backup broker also rejects this replication message, but after this it
seems that all further messages are blocked. Only after killing the backup
broker, the messages will be processed. Seems like this is related to journal
related operations being blocked until backup acknowledges the completion of
synchronization
(https://activemq.apache.org/components/artemis/documentation/latest/ha.html#replication)
{code:java}
[Thread-2 (org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnector)]
17:41:25,854 WARN [org.apache.activemq.artemis.core.server] AMQ222086: error
handling packet ReplicationAddTXMessage[type=92, channelID=2,
responseAsync=false, requiresResponse=false, correlationID=-1] for replication
org.apache.activemq.artemis.api.core.ActiveMQIOErrorException: AMQ149005:
Message of 524513 bytes is bigger than the max record size of 102400 bytes. You
should try to move large application properties to the message body.
at
org.apache.activemq.artemis.core.journal.impl.JournalImpl.checkRecordSize(JournalImpl.java:1011)
~[classes/:?]
at
org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendAddRecordTransactional(JournalImpl.java:1269)
~[classes/:?]
at
org.apache.activemq.artemis.core.journal.Journal.appendAddRecordTransactional(Journal.java:188)
~[classes/:?]
at
org.apache.activemq.artemis.core.journal.impl.JournalBase.appendAddRecordTransactional(JournalBase.java:115)
~[classes/:?]
at
org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendAddRecordTransactional(JournalImpl.java:105)
~[classes/:?]
at
org.apache.activemq.artemis.core.replication.ReplicationEndpoint.handleAppendAddTXRecord(ReplicationEndpoint.java:766)
~[classes/:?]
at
org.apache.activemq.artemis.core.replication.ReplicationEndpoint.handlePacket(ReplicationEndpoint.java:211)
~[classes/:?]
at
org.apache.activemq.artemis.core.protocol.core.impl.ChannelImpl.handlePacket(ChannelImpl.java:852)
~[classes/:?]
at
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.doBufferReceived(RemotingConnectionImpl.java:419)
~[classes/:?]
at
org.apache.activemq.artemis.core.protocol.core.impl.RemotingConnectionImpl.bufferReceived(RemotingConnectionImpl.java:392)
~[classes/:?]
at
org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl$DelegatingBufferHandler.bufferReceived(ClientSessionFactoryImpl.java:1334)
~[classes/:?]
at
org.apache.activemq.artemis.core.remoting.impl.invm.InVMConnection$1.run(InVMConnection.java:223)
~[classes/:?]
at
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)
~[classes/:?]
at
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
~[classes/:?]
at
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
~[classes/:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[?:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[?:?]
at
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
[classes/:?]
[Thread-4 (ActiveMQ-server-ActiveMQServerImpl::Server 1)] 17:41:25,887 WARN
[org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback]
AMQ149005: Message of 524513 bytes is bigger than the max record size of 102400
bytes. You should try to move large application properties to the message body.
org.apache.activemq.artemis.api.core.ActiveMQIOErrorException: AMQ149005:
Message of 524513 bytes is bigger than the max record size of 102400 bytes. You
should try to move large application properties to the message body.
at
org.apache.activemq.artemis.core.journal.impl.JournalImpl.checkRecordSize(JournalImpl.java:1011)
~[classes/:?]
at
org.apache.activemq.artemis.core.journal.impl.JournalImpl.appendAddRecordTransactional(JournalImpl.java:1269)
~[classes/:?]
at
org.apache.activemq.artemis.core.replication.ReplicatedJournal.appendAddRecordTransactional(ReplicatedJournal.java:192)
~[classes/:?]
at
org.apache.activemq.artemis.core.persistence.impl.journal.AbstractJournalStorageManager.storeMessageTransactional(AbstractJournalStorageManager.java:571)
~[classes/:?]
at
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.storeDurableReference(PostOfficeImpl.java:1790)
~[classes/:?]
at
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.processRouteToDurableQueues(PostOfficeImpl.java:1770)
~[classes/:?]
at
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.processRoute(PostOfficeImpl.java:1706)
~[classes/:?]
at
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:1244)
~[classes/:?]
at
org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.route(PostOfficeImpl.java:1135)
~[classes/:?]
at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.doSend(ServerSessionImpl.java:2368)
~[classes/:?]
at
org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.send(ServerSessionImpl.java:1963)
~[classes/:?]
at
org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.inSessionSend(AMQPSessionCallback.java:624)
~[classes/:?]
at
org.apache.activemq.artemis.protocol.amqp.broker.AMQPSessionCallback.lambda$serverSend$2(AMQPSessionCallback.java:580)
~[classes/:?]
at
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:57)
~[classes/:?]
at
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:32)
~[classes/:?]
at
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:68)
~[classes/:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[?:?]
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[?:?]
at
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
[classes/:?]
{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact