You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Justin Bertram (Jira)" <ji...@apache.org> on 2020/11/10 21:47:00 UTC
[jira] [Commented] (ARTEMIS-2981) Core bridge failing
[ 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)