[
https://issues.apache.org/jira/browse/KARAF-7096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Grzegorz Grzybek updated KARAF-7096:
------------------------------------
Affects Version/s: 4.2.11
4.3.1
> When rmiServerHost is 127.0.0.1, RMIServerImpl_Stub still uses hostname's IP
> ----------------------------------------------------------------------------
>
> Key: KARAF-7096
> URL: https://issues.apache.org/jira/browse/KARAF-7096
> Project: Karaf
> Issue Type: Bug
> Affects Versions: 4.2.11, 4.3.1
> Reporter: Grzegorz Grzybek
> Assignee: Grzegorz Grzybek
> Priority: Major
>
> It's a follow-up of the investigation from KARAF-6955. Copying the
> description:
> I had problem after this change - {{jconsole}} stopped working and sample
> Java application ended with {{Connection refused}} exception.
> I did enjoyable analysis and I found that:
> * ports are opened on proper interfaces ({{::ffff:127.0.0.1}} in my case,
> which is an IPv6 address from _::ffff:0:0/96 CIDR_ that represents
> _Transition from IPv4_ address block)
> * I could connect to RMI Registry at port 1099 and even obtain {{karaf-root}}
> object from there, which:
> ** is of {{javax.management.remote.rmi.RMIServer}} interface
> ** is of {{javax.management.remote.rmi.RMIServerImpl_Stub}} implementation
> The problem is that this stub contains:
> {noformat}
> ref: java.rmi.server.RemoteRef = {sun.rmi.server.UnicastRef2@1918}
> ...
> ref: sun.rmi.transport.LiveRef = {sun.rmi.transport.LiveRef@1925}
> "[endpoint:[192.168.0.38:44444](remote),objID:[2f23195f:178a6a29327:-7ffa,
> 4962682433218761153]]"
> ep: sun.rmi.transport.Endpoint = {sun.rmi.transport.tcp.TCPEndpoint@1927}
> "[192.168.0.38:44444]"
> host: java.lang.String = "192.168.0.38"
> port: int = 44444 (0xAD9C)
> {noformat}
> The problem is that when {{RMIServerImpl_Stub}} is created *at server side*
> by karaf.management.server bundle, the bind address of this remote object is
> NOT taken from {{rmiServerHost}} property of {{org.apache.karaf.management}}
> PID. It's taken from (top to bottom):
> * sun.rmi.transport.tcp.TCPEndpoint#getLocalEndpoint()
> * java.net.InetAddress#getLocalHost()
> * java.net.InetAddressImpl#getLocalHostName()
> * java.net.InetAddress#getAddressesFromNameService()
> * java.net.Inet6AddressImpl#lookupAllHostAddr()
> * getaddress() libc method
> * /etc/hosts
> The way to solve this is to set {{java.rmi.server.hostname}} system property
> to 127.0.0.1, so the Stub contains proper address.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)