Laszlo Gaal created IMPALA-13724:
------------------------------------

             Summary: Impala fails to start up in Dockerised tests when the 
Docker gateway name is resolved as _gateway
                 Key: IMPALA-13724
                 URL: https://issues.apache.org/jira/browse/IMPALA-13724
             Project: IMPALA
          Issue Type: Bug
          Components: Infrastructure
    Affects Versions: Impala 4.5.0
            Reporter: Laszlo Gaal
            Assignee: Laszlo Gaal


When Impala daemons are started inside a Docker container (using the dockerised 
form of bin/start-impala-cluster.py like this):{code}
$ export DOCKER_NETWORK=impala-dockernet # or use your own name
$ bin/start-impala-cluster.py --docker_network=${DOCKER_NETWORK}
{code}
the gateway generated by Docker networking receives an IP address from Docker, 
but the way this IP address is resolved to a DNS name is platform-dependent.
Unfortunately some newer platforms (e.g. Rocky 9 with Docker 27.5) resolve the 
gateway's name as {code}
_gateway{code}
with a leading underscore. This is a problem for Impala: on startup the catalog 
and all coordinators attempt to connect to HMS over Thrift, using a Java 
implementation of Thrift. This Java code relies on a communication library that 
considers the the underscore character invalid within DNS names, throws an 
exception complaining about it, and refuses to connect to HMS because of the 
exception. Failing to connect to HMS is fatal during Impala startup, so this 
problem prevents impala catalog and coordinator roles from starting up in such 
an environment.
Example coordinator log sequence:
{code}
I0201 18:13:30.205049     1 HiveMetaStoreClient.java:279] HMS client filtering 
is enabled.
E0201 18:13:30.288259     1 MetaStoreUtils.java:259] Got exception: 
java.net.URISyntaxException Illegal character in hostname at index 9: 
thrift://_gateway:9083
Java exception follows:
java.net.URISyntaxException: Illegal character in hostname at index 9: 
thrift://_gateway:9083
        at java.net.URI$Parser.fail(URI.java:2847)
        at java.net.URI$Parser.parseHostname(URI.java:3386)
        at java.net.URI$Parser.parseServer(URI.java:3235)
        at java.net.URI$Parser.parseAuthority(URI.java:3154)
        at java.net.URI$Parser.parseHierarchical(URI.java:3096)
        at java.net.URI$Parser.parse(URI.java:3052)
        at java.net.URI.<init>(URI.java:673)
        at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.resolveUris(HiveMetaStoreClient.java:325)
        at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:232)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at 
org.apache.hadoop.hive.metastore.utils.JavaUtils.newInstance(JavaUtils.java:85)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:98)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:151)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:122)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:115)
        at 
org.apache.impala.catalog.MetaStoreClientPool$MetaStoreClient.<init>(MetaStoreClientPool.java:103)
        at 
org.apache.impala.catalog.MetaStoreClientPool$MetaStoreClient.<init>(MetaStoreClientPool.java:82)
        at 
org.apache.impala.catalog.MetaStoreClientPool.initClients(MetaStoreClientPool.java:182)
        at 
org.apache.impala.catalog.MetaStoreClientPool.<init>(MetaStoreClientPool.java:171)
        at 
org.apache.impala.catalog.MetaStoreClientPool.<init>(MetaStoreClientPool.java:163)
        at org.apache.impala.service.Frontend.<init>(Frontend.java:539)
        at org.apache.impala.service.Frontend.<init>(Frontend.java:493)
        at org.apache.impala.service.JniFrontend.<init>(JniFrontend.java:153)
E0201 18:13:30.288360     1 MetaStoreUtils.java:260] Converting exception to 
MetaException
W0201 18:13:30.289749     1 MetaStoreClientPool.java:113] Failed to connect to 
Hive MetaStore. Retrying.
Java exception follows:
java.lang.RuntimeException: Unable to instantiate 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient
        at 
org.apache.hadoop.hive.metastore.utils.JavaUtils.newInstance(JavaUtils.java:87)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.<init>(RetryingMetaStoreClient.java:98)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:151)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:122)
        at 
org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:115)
        at 
org.apache.impala.catalog.MetaStoreClientPool$MetaStoreClient.<init>(MetaStoreClientPool.java:103)
        at 
org.apache.impala.catalog.MetaStoreClientPool$MetaStoreClient.<init>(MetaStoreClientPool.java:82)
        at 
org.apache.impala.catalog.MetaStoreClientPool.initClients(MetaStoreClientPool.java:182)
        at 
org.apache.impala.catalog.MetaStoreClientPool.<init>(MetaStoreClientPool.java:171)
        at 
org.apache.impala.catalog.MetaStoreClientPool.<init>(MetaStoreClientPool.java:163)
        at org.apache.impala.service.Frontend.<init>(Frontend.java:539)
        at org.apache.impala.service.Frontend.<init>(Frontend.java:493)
        at org.apache.impala.service.JniFrontend.<init>(JniFrontend.java:153)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at 
org.apache.hadoop.hive.metastore.utils.JavaUtils.newInstance(JavaUtils.java:85)
        ... 12 more
Caused by: MetaException(message:Got exception: java.net.URISyntaxException 
Illegal character in hostname at index 9: thrift://_gateway:9083)
        at 
org.apache.hadoop.hive.metastore.utils.MetaStoreUtils.logAndThrowMetaException(MetaStoreUtils.java:261)
        at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.resolveUris(HiveMetaStoreClient.java:342)
        at 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient.<init>(HiveMetaStoreClient.java:232)
        ... 17 more
{code}
This is repeated several times, then eventually Impala exits, reporting this as 
a FATAL error:
{code}
F0201 18:15:30.194324     1 frontend.cc:188] 
MetastoreClientInstantiationException: java.lang.RuntimeException: Unable to 
instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
CAUSED BY: RuntimeException: Unable to instantiate 
org.apache.hadoop.hive.metastore.HiveMetaStoreClient
CAUSED BY: InvocationTargetException: null
CAUSED BY: MetaException: Got exception: java.net.URISyntaxException Illegal 
character in hostname at index 9: thrift://_gateway:9083
. Impalad exiting.
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to