[ 
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)

Reply via email to