You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2024/03/03 15:58:00 UTC
[jira] [Commented] (AMQ-9438) FailoverTransport throws UnknowHostException on compareURIs
[ https://issues.apache.org/jira/browse/AMQ-9438?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17822947#comment-17822947 ]
ASF subversion and git services commented on AMQ-9438:
------------------------------------------------------
Commit dcb660f7fc0c221a7a1a620909bbcc614288b790 in activemq's branch refs/heads/main from JB Onofré
[ https://gitbox.apache.org/repos/asf?p=activemq.git;h=dcb660f7f ]
Merge pull request #1164 from jbonofre/AMQ-9438
AMQ-9438: Don't log full stack trace when lookup failure happens in FailoverTransport
> FailoverTransport throws UnknowHostException on compareURIs
> -----------------------------------------------------------
>
> Key: AMQ-9438
> URL: https://issues.apache.org/jira/browse/AMQ-9438
> Project: ActiveMQ Classic
> Issue Type: Improvement
> Components: Transport
> Affects Versions: 5.18.3, 5.17.6, 5.16.7
> Environment: This occurs using OpenJDK 11 on both Windows and Linux environments.
> Reporter: George McCone
> Assignee: Jean-Baptiste Onofré
> Priority: Minor
> Fix For: 6.1.0, 5.18.4, 5.17.7, 6.0.2
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> In the org.apache.activemq.transport.failover.FailoverTransport.compareURIs(), it is trying to compare 2 hosts to see if they are the same.
> To accomplish this, the function InetAddress.getByName() used to help extract out the the IP address of each of the hosts to see if they are the same.
> In the event one of the hosts is not resolvable, InetAddress.getByName() throws a UnknownHostException.
> This UnknownHostException is not being caught in the try/catch block, only IOException.
> I believe the exception catch block should be extended to catch UnknownHostException as it is simply doing a string compare that the 2 hosts are the same at that point.
> For example, in the stacktrace below the uri was, failover:(tcp://UNKNOWN:61616,tcp://AMQ1:61616)?randomize=false/org.apache.activemq.jndi.ActiveMQInitialContextFactory/ConnectionFactory
> {code:java}
> 2024-02-27T19:37:20,311 | ERROR | FelixStartLevel | FailoverTransport | 28 - org.apache.activemq.osgi - 5.18.3 | Failed to Lookup INetAddress for URI[tcp://UNKNOWN:61616] : {}
> java.net.UnknownHostException: No such host is known (UNKNOWN)
> at java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method) ~[?:?]
> at java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java:929) ~[?:?]
> at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1519) ~[?:?]
> at java.net.InetAddress$NameServiceAddresses.get(InetAddress.java:848) ~[?:?]
> at java.net.InetAddress.getAllByName0(InetAddress.java:1509) ~[?:?]
> at java.net.InetAddress.getAllByName(InetAddress.java:1368) ~[?:?]
> at java.net.InetAddress.getAllByName(InetAddress.java:1302) ~[?:?]
> at java.net.InetAddress.getByName(InetAddress.java:1252) ~[?:?]
> at org.apache.activemq.transport.failover.FailoverTransport.compareURIs(FailoverTransport.java:1393) ~[?:?] {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)