[
https://issues.apache.org/jira/browse/ARTEMIS-2981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17229539#comment-17229539
]
Justin Bertram commented on ARTEMIS-2981:
-----------------------------------------
This is essentially a configuration problem although the broker could deal with
the situation more gracefully. Here's your bridge from {{global-broker.xml}}:
{code:xml}
<bridge name="global-to-region-s">
<queue-name>laravel:region-s:default</queue-name>
<forwarding-address>laravel:region-s:default</forwarding-address>
<static-connectors>
<connector-ref>region-s</connector-ref>
</static-connectors>
</bridge>
{code}
Here's the configuration of the queue "laravel:region-s:default":
{code:xml}
<address name="laravel:region-s:default">
<anycast>
<queue name="laravel:region-s:default" max-consumers="0">
<durable>true</durable>
</queue>
</anycast>
</address>
{code}
Since the queue from which the bridge is attempting to consume the message uses
{{max-consumers="0"}} then the bridge is unable to initialize. Turning on
{{DEBUG}} logging for
{{org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl}} reveals
this underlying exception:
{noformat}
DEBUG [org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl]
Underlying bridge connection failure:
ActiveMQQueueMaxConsumerLimitReached[errorType=MAX_CONSUMER_LIMIT_EXCEEDED
message=AMQ229200: Maximum Consumer Limit Reached on
Queue:(address=laravel:region-s:default,queue=laravel:region-s:default)]
at
org.apache.activemq.artemis.core.server.impl.QueueImpl.addConsumer(QueueImpl.java:1383)
[artemis-server-2.15.0.jar:2.15.0]
at
org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl.connect(BridgeImpl.java:1026)
[artemis-server-2.15.0.jar:2.15.0]
at
org.apache.activemq.artemis.core.server.cluster.impl.BridgeImpl$ConnectRunnable.run(BridgeImpl.java:1189)
[artemis-server-2.15.0.jar:2.15.0]
at
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
[artemis-commons-2.15.0.jar:2.15.0]
at
org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
[artemis-commons-2.15.0.jar:2.15.0]
at
org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
[artemis-commons-2.15.0.jar:2.15.0]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
[rt.jar:1.8.0_151]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
[rt.jar:1.8.0_151]
at
org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
[artemis-commons-2.15.0.jar:2.15.0]
{noformat}
This causes the bridge initialization to break half-way though which means the
connection to the remote broker is established and then not properly closed.
That's why you see the timeout exceptions on the other side. As I said, the
broker should handle this better, but you can avoid the issue by setting
{{max-consumers}} > 0.
> Core bridge failing
> -------------------
>
> Key: ARTEMIS-2981
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2981
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Affects Versions: 2.15.0
> Environment: I am running on freshly created broker directories with
> no customizations done except to the {{broker.xml}} files, which I am
> attaching to this issue.
> Reporter: Alexander Trauzzi
> Assignee: Justin Bertram
> Priority: Major
> Attachments: global-broker.xml, regional-broker.xml
>
>
> I'm encountering a situation where any bridge configured between two brokers
> is failing with the following errors showing up in the logs:
> *On the receiving broker:*
>
> {code:java}
> 411 WARN [org.apache.activemq.artemis.core.client] AMQ212037: Connection
> failure to /172.27.0.12:61627 has been detected: AMQ229014: Did not receive
> data from /172.27.0.12:61627 within the 60,000ms connection TTL. The
> connection will now be closed. [code=CONNECTION_TIMEDOUT]{code}
>
> *On the outbound broker:*
>
> {code:java}
> 780 WARN [org.apache.activemq.artemis.core.server] AMQ224091: Bridge
> BridgeImpl@3a8e6648 [name=region-s-to-global,
> queue=QueueImpl[name=laravel:global:default, postOffice=PostOfficeImpl
> [server=ActiveMQServerImpl::serverUUID=29f37694-2371-11eb-90ba-0242ac1b000c],
> temp=false]@34498f69 targetConnector=ServerLocatorImpl (identity=Bridge
> region-s-to-global) [initialConnectors=[TransportConfiguration(name=global,
> factory=org-apache-activemq-artemis-core-remoting-impl-netty-NettyConnectorFactory)
> ?localPort=61627&port=61616&host=global-broker],
> discoveryGroupConfiguration=null]] is unable to connect to destination.
> Retrying
> {code}
>
> ----
> The nature of the problem does not to my eye indicate a communication or
> network visibility issue. Despite that, we've still ensured there is full
> connectivity between the brokers by doing some manual testing with {{nc}} and
> {{telnet}} with everything checking out fine.
> Going off of the error messages alone, it looks as though the connection to
> {{61627}} is being successfully made, but that for some reason, the receiving
> broker is closing the connection after 60s.
> It is not apparent whether this is due to a misconfiguration on my part or
> due to an issue in Artemis that is causing that connection to become unstable.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)