[teiid-issues] [JBoss JIRA] (TEIID-3124) InetAddress getLocalHost return UnknownHostException cause Teiid service start failed in JBoss Server

Kylin Soong (JIRA) issues at jboss.org
Wed Sep 10 21:17:19 EDT 2014


    [ https://issues.jboss.org/browse/TEIID-3124?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13001106#comment-13001106 ] 

Kylin Soong commented on TEIID-3124:
------------------------------------

Root Cause
==========
No hostname IP mapping cause InetAddress.getLocalHost() throw java.net.UnknownHostException, this trigger teiid-runtime SocketConfiguration.java as [1] line 79 throw UnknownHostException, but the exception be swallowed, instead with the TeiidRuntimeException


How reproducible:
================

The following steps for reproduce the issue in Rad Hat Linux 6

1. edit the /etc/sysconfig/network, set a hostname, below is the setting in my machine:
~~~
NETWORKING=yes
HOSTNAME=kylin.redhat.com
~~~
Note: the logout is necessary for let hostname take effect

2. start the JDV 
~~~
/standalone.sh
~~~
Note the TeiidRuntimeException throw, this due to SocketConfiguration as [1] line 79 InetAddress.getLocalHost() return UnknownHostException, the swallowed exception like below:
~~~
Caused by: java.net.UnknownHostException: kylin.redhat.com: Name or service not known
	at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
	at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:901)
	at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1293)
	at java.net.InetAddress.getLocalHost(InetAddress.java:1469)
	... 1 more
~~~

3. edit /etc/hosts, add hostname IP mapping as below:
~~~
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4 kylin.redhat.com
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 kylin.redhat.com
~~~
Note: the kylin.redhat.com are new appended


Expected results
================

Change the SocketConfiguration resolveHostName() method, InetAddress.getLocalHost()have risk while look up local address via hostname, if no address are mapped the code throw exception, cause service start up failed

[1] https://github.com/teiid/teiid/blob/master/runtime/src/main/java/org/teiid/transport/SocketConfiguration.java

> InetAddress getLocalHost return UnknownHostException cause Teiid service start failed in JBoss Server
> -----------------------------------------------------------------------------------------------------
>
>                 Key: TEIID-3124
>                 URL: https://issues.jboss.org/browse/TEIID-3124
>             Project: Teiid
>          Issue Type: Enhancement
>          Components: Server
>    Affects Versions: 8.9
>         Environment: JDV 6.x
>            Reporter: Kylin Soong
>            Assignee: Kylin Soong
>
> After install JDV 6.0.0.GA via
>    java -jar jboss-dv-installer-6.0.0.GA-redhat-4.jar 
> start JDV throw the following exception cause some of servers start failed:
> ~~~
> 17:17:35,824 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-8) MSC000001: Failed to start service jboss.teiid.transport.jdbc: org.jboss.msc.service.StartException in service jboss.teiid.transport.jdbc: Failed to start service
>     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55]
>     at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_55]
> Caused by: org.teiid.core.TeiidRuntimeException: TEIID40065 Failed to resolve the bind address
>     at org.teiid.transport.SocketConfiguration.resolveHostName(SocketConfiguration.java:82)
>     at org.teiid.transport.SocketConfiguration.getHostAddress(SocketConfiguration.java:103)
>     at org.teiid.transport.SocketListener.<init>(SocketListener.java:55)
>     at org.teiid.jboss.TransportService.start(TransportService.java:157)
>     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
>     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
>     ... 3 more
> 17:17:35,844 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.teiid.transport.odbc: org.jboss.msc.service.StartException in service jboss.teiid.transport.odbc: Failed to start service
>     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1767) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_55]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_55]
>     at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_55]
> Caused by: org.teiid.core.TeiidRuntimeException: TEIID40065 Failed to resolve the bind address
>     at org.teiid.transport.SocketConfiguration.resolveHostName(SocketConfiguration.java:82)
>     at org.teiid.transport.SocketConfiguration.getHostAddress(SocketConfiguration.java:103)
>     at org.teiid.transport.SocketListener.<init>(SocketListener.java:55)
>     at org.teiid.transport.ODBCSocketListener.<init>(ODBCSocketListener.java:43)
>     at org.teiid.jboss.TransportService.start(TransportService.java:181)
>     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
>     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
>     ... 3 more
> ~~~



--
This message was sent by Atlassian JIRA
(v6.3.1#6329)


More information about the teiid-issues mailing list