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