Piotr Tylenda created AMBARI-19646:
--------------------------------------

             Summary: AMBARI Java services do not resolve localhost FQDN 
properly in some cases
                 Key: AMBARI-19646
                 URL: https://issues.apache.org/jira/browse/AMBARI-19646
             Project: Ambari
          Issue Type: Bug
          Components: ambari-server
    Affects Versions: 2.4.2
         Environment: Ubuntu 14 LTS
HDP 2.5.3.0-37
            Reporter: Piotr Tylenda
            Priority: Minor


When installing hive client I have noticed the following problem in the logs:
{code}
Traceback (most recent call last):
  File 
"/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py",
 line 68, in <module>
    HiveClient().execute()
  File 
"/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py",
 line 280, in execute
    method(env)
  File 
"/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py",
 line 35, in install
    self.configure(env)
  File 
"/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py",
 line 43, in configure
    hive(name='client')
  File "/usr/lib/python2.6/site-packages/ambari_commons/os_family_impl.py", 
line 89, in thunk
    return fn(*args, **kwargs)
  File 
"/var/lib/ambari-agent/cache/common-services/HIVE/0.12.0.2.0/package/scripts/hive.py",
 line 282, in hive
    mode = 0644,
  File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", 
line 155, in __init__
    self.env.run()
  File 
"/usr/lib/python2.6/site-packages/resource_management/core/environment.py", 
line 160, in run
    self.run_action(resource, action)
  File 
"/usr/lib/python2.6/site-packages/resource_management/core/environment.py", 
line 124, in run_action
    provider_action()
  File 
"/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py",
 line 123, in action_create
    content = self._get_content()
  File 
"/usr/lib/python2.6/site-packages/resource_management/core/providers/system.py",
 line 160, in _get_content
    return content()
  File "/usr/lib/python2.6/site-packages/resource_management/core/source.py", 
line 51, in __call__
    return self.get_content()
  File "/usr/lib/python2.6/site-packages/resource_management/core/source.py", 
line 193, in get_content
    web_file = opener.open(req)
  File "/usr/lib/python2.7/urllib2.py", line 404, in open
    response = self._open(req, data)
  File "/usr/lib/python2.7/urllib2.py", line 422, in _open
    '_open', req)
  File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.7/urllib2.py", line 1214, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib/python2.7/urllib2.py", line 1184, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 111] Connection refused>
{code}

Which was caused by:
{code}

2017-01-19 16:00:55,016 - 
File['/usr/lib/ambari-agent/DBConnectionVerification.jar'] {'content': 
DownloadSource('http://localhost:8080/resources/DBConnectionVerification.jar'), 
'mode': 0644}
{code}

I have searched through the python files and have found that jdk_location in 
ambari properties is set to "http://localhost:8080/resources";.

This property is resolved in this file 
https://github.com/apache/ambari/blob/ddcc13b40902f7fc9144bcaa2af5b54d85442dfa/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java

After that I have tested how this java code behaves on the ambari server 
machine:
{code}
InetAddress.getLocalHost().getCanonicalHostName();
{code}

The result is "localhost" (not as expected)

For command
{code}
hostname -f
{code}

returns "some-ambari-server.org" (as expected)

Python code
{code}
python -c 'import socket; print(socket.getfqdn())'
{code}

returns "some-ambari-server.org" (as expected)

It seems that such entry in /etc/hosts
{code}
127.0.0.1       localhost   some-ambari-server.org
{code}

causes this situation and changing this to
{code}
127.0.0.1       some-ambari-server.org   localhost
{code}

fixed the issue.

I am not sure if it is actually something that should be fixed in code or 
mentioned in docs - it makes the ambari environment partially stable, apart 
from the parts which require jdk_location property.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to