You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2010/08/06 15:53:48 UTC

[jira] Resolved: (AMQ-2771) Side effect from AMQ-2094, server listens on host name address, client connects to localhost with the same URI

     [ https://issues.apache.org/activemq/browse/AMQ-2771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gary Tully resolved AMQ-2771.
-----------------------------

         Assignee: Gary Tully
    Fix Version/s: 5.4.0
                       (was: 5.4.1)
       Resolution: Fixed

default changed in r982962

> Side effect from AMQ-2094, server listens on host name address, client connects to localhost with the same URI
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2771
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2771
>             Project: ActiveMQ
>          Issue Type: Wish
>    Affects Versions: 5.3.0, 5.3.1, 5.3.2
>            Reporter: Przemek Bruski
>            Assignee: Gary Tully
>             Fix For: 5.4.0
>
>         Attachments: BrokerServiceResolveHostTest.java
>
>
> TcpTransport.java contains the following code:
> {code}
>     protected String resolveHostName(String host) throws UnknownHostException {
>         String localName = InetAddress.getLocalHost().getHostName();
>         if (localName != null && isUseLocalHost()) {
>             if (localName.equals(host)) {
>                 return "localhost";
>             }
>         }
>         return host;
>     }
> {code}
> TcpTransportServer.java contains the following code:
> {code}
>         InetAddress addr = InetAddress.getByName(host);
>         try {
>             this.serverSocket = serverSocketFactory.createServerSocket(bind.getPort(), backlog, addr);
> {code}
> /etc/hosts looks like this:
> {code}
> 127.0.0.1       localhost.localdomain   localhost
> someip       myhostname.mydomain myhostname
> {code}
> Now, if I start server with uri: myhostname.mydomain, the server will listen on someip but the client started on the same host with the same uri will try connect to localhost (and fail).
> I know that useLocalHost can be used to avoid it, but silently connecting to localhost is counterintuitive and does not sound like a valid default behaviour (according to documentation, using localhost instead of the host name is a workaround, the workaround is now effectively default behaviour and breaks valid setups that used to work with 5.2).
> This worked fine on 5.2, since the server bound to all interfaces - but fixing this was obviously the right thing to do.
> Questions:
> 1. Can the default behaviour be changed to one that would work on majority of systems?
> 2. Is the workaround really needed? Maybe it's the local network settings that should be corrected?
> 3. The debug messages are misleading and probably should be changed:
> [ActiveMQ Task] [FailoverTransport:604] urlList connectionList:[tcp://hostname:54663?wireFormat.maxInactivityDuration=300000]
> [ActiveMQ Task] [FailoverTransport:723] Attempting connect to: tcp://hostname:54663?wireFormat.maxInactivityDuration=300000
> [ActiveMQ Task] [FailoverTransport:764] Connect fail to: tcp://hostname:54663?wireFormat.maxInactivityDuration=300000, reason: java.net.ConnectException: Connection refused
> In fact, it was the connection to localhost:54663 that was refused.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.