You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Ivan (Jira)" <ji...@apache.org> on 2021/02/04 21:12:00 UTC

[jira] [Created] (ARTEMIS-3097) AMQ219014 Timed out after waiting 30,000 ms for response when sending packet on large file exchange

Ivan created ARTEMIS-3097:
-----------------------------

             Summary: AMQ219014 Timed out after waiting 30,000 ms for response when sending packet on large file exchange
                 Key: ARTEMIS-3097
                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3097
             Project: ActiveMQ Artemis
          Issue Type: Bug
    Affects Versions: 2.16.0
         Environment: OS
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)"



 
Docker version 18.09.7, build 2d0083d
 
Backend Tomcat
Server version name: Apache Tomcat/9.0.16
JVM Version: 11.0.5+10-post-Ubuntu-2ubuntu116.04'CATALINA_OPTS=-Xms512M -Xmx512M'
            Reporter: Ivan
         Attachments: configs_broker.xml

Hi!

We faced the issue with the timeout during sending files from our backend (java webapp on Tomcat 9.0.16) to the Artemis.
 We are using Artemis 2.16 on JDK11. 
 Tomcat deployed to the host machine natively and Artemis deployed as the docker container with exposed 61616 and 8161 ports.

So Tomcat works with the Artemis via tcp://localhost:61616

 

The error occurs with following conditions:
 * Files larger than ~ 120 MB are sent
 * Client and server are on the same host (Artemis in docker, application inside native Tomcat, linux)
 * The stacktrace is below:
{code:java}
//
Caused by: javax.jms.JMSException: AMQ219014: Timed out after waiting 30,000 ms for response when sending packet 73
 at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.sendSessionSendContinuationMessage(ActiveMQSessionContext.java:1064) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.sendLargeMessageChunk(ActiveMQSessionContext.java:575) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.largeMessageSendStreamed(ClientProducerImpl.java:497) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.largeMessageSend(ClientProducerImpl.java:334) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.doSend(ClientProducerImpl.java:266) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:143) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.send(ClientProducerImpl.java:125) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.doSendx(ActiveMQMessageProducer.java:483) ~[artemis-jms-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.jms.client.ActiveMQMessageProducer.send(ActiveMQMessageProducer.java:193) ~[artemis-jms-client-2.16.0.jar:2.16.0]
 at com.smartdec.incode.gui.backend.jms.QueueApi.sendSourceIfExists(QueueApi.java:150) ~[classes/:?]
 at com.smartdec.incode.gui.backend.jms.QueueApi.sendSources(QueueApi.java:118) ~[classes/:?]
 at com.smartdec.incode.gui.backend.TaskUtils.sendToQueue(TaskUtils.java:87) ~[classes/:?]
 ... 13 more
Caused by: org.apache.activemq.artemis.api.core.ActiveMQException: AMQ219014: Timed out after waiting 30,000 ms for response when sending packet 73
 at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.sendSessionSendContinuationMessage(ActiveMQSessionContext.java:1064) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQSessionContext.sendLargeMessageChunk(ActiveMQSessionContext.java:575) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.largeMessageSendStreamed(ClientProducerImpl.java:497) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.largeMessageSend(ClientProducerImpl.java:334) ~[artemis-core-client-2.16.0.jar:2.16.0]
 at org.apache.activemq.artemis.core.client.impl.ClientProducerImpl.doSend(ClientProducerImpl.java:266) ~[artemis-core-client-2.16.0.jar:2.16.0]
{code}
 

 
 # And interesting notes, error does not occur when:
 broker and consumer are on the different hosts even server threw the exception with local client
 # You set breakpoint at the supposed timeout line:
 [https://github.com/apache/activemq-artemis/blob/master/artemis-server/src/main/java/org/apache/activemq/artemis/core/protocol/core/ServerSessionPacketHandler.java#L317]
 If you remove breakpoint - it will fail again.

Would you please assist to avoid it?

 

Here is our dockerfile:
{code:java}
// 
FROM openjdk:11.0.9ENV ARTEMIS_VERSION 2.16.0
ENV ARTEMIS apache-artemis-$ARTEMIS_VERSION
ENV SHA512_VAL=4990a6b742b08bff6a4c7b310d2610565b08a2a02e1a7aec065460d16f8a6fe3d4fe91a8040839f93d7c2eab09fd6a79848fb130f9820559ee3e81dcf8d51eadENV ARTEMIS_HOME /opt/apache-artemis

ARG ARTEMIS_USER
ARG ARTEMIS_PASSWORD
ARG DAEMON_USER
ARG DAEMON_PASSWORD
ARG BACKEND_USER
ARG BACKEND_PASSWORD

RUN curl https://archive.apache.org/dist/activemq/activemq-artemis/$ARTEMIS_VERSION/$ARTEMIS-bin.tar.gz -o $ARTEMIS-bin.tar.gz && \
    if [ "$SHA512_VAL" != "$(sha512sum $ARTEMIS-bin.tar.gz | awk '{print($1)}')" ];\
        then \
            echo "sha512 values doesn't match! exiting."  && \
            exit 1; \
        fi; \
    tar -xzf $ARTEMIS-bin.tar.gz -C /opt && \
    ln -s /opt/$ARTEMIS $ARTEMIS_HOME && \
    rm -f $ARTEMIS-bin.tar.gzRUN cd /var/lib && \
    ${ARTEMIS_HOME}/bin/artemis create artemis \
    --home ${ARTEMIS_HOME} \
    --user ${ARTEMIS_USER:-admin} \
    --password ${ARTEMIS_PASSWORD:-admin} \
    --require-login && \
    sed -i "s/localhost/0.0.0.0/g" /var/lib/artemis/etc/bootstrap.xml && \
    sed -i "s/localhost//g" /var/lib/artemis/etc/jolokia-access.xml

WORKDIR /var/lib/artemisCOPY configs/broker.xml /var/lib/artemis/etc/

RUN /var/lib/artemis/bin/artemis-service start && \
    /var/lib/artemis/bin/artemis user add \
    --user ${ARTEMIS_USER:-admin} \
    --password ${ARTEMIS_PASSWORD:-admin} \
    --user-command-user some_value   \
    --user-command-password some_value \
    --role daemon && \
    /var/lib/artemis/bin/artemis user add \
    --user ${ARTEMIS_USER:-admin} \
    --password ${ARTEMIS_PASSWORD:-admin} \
    --user-command-user some_value \
    --user-command-password some_value \
    --role backend && \
    /var/lib/artemis/bin/artemis-service stop

EXPOSE 8161
# Port for CORE,MQTT,AMQP,HORNETQ,STOMP,OPENWIRE
EXPOSE 61616
# Port for HORNETQ,STOMP
EXPOSE 5445
# Port for AMQP
EXPOSE 5672
# Port for MQTT
EXPOSE 1883
#Port for STOMP
EXPOSE 61613

ENTRYPOINT [ "/var/lib/artemis/bin/artemis", "run" ]

{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)