[ 
https://issues.apache.org/jira/browse/AMBARI-15864?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Hurley updated AMBARI-15864:
-------------------------------------
    Description: 
STR:
# With Ambari 2.2.2.0-408 build, install 2.2.9.0 cluster (HA cluster)
# Perform EU to 2.4.2.0-178 till finalize step
# Downgrade back to 2.2.9
# Again run EU to 2.4.2.0

The problem is that the downgrade unlinks configurations, getting rid of 
{{conf.backup}} and makes {{/etc/<component>/conf}} a directory again. However, 
the only code which bootstraps {{conf.backup}} is executed on installation of 
the stack. That action does not happen again between U->D->U.

As a way to catch this scenario, {{conf_select.select()}} tries to be smart and 
checks for {{/etc/<component>/conf}} as a directory and if it finds that it is, 
it will create {{conf.backup}}. *The bug here is that the new 
{{/etc/<component</conf}} link points to {{/usr/hdp/current/<component>/conf}} 
which is a link back to {{/etc/<component>/conf}}. It should be linked to 
{{/etc/<component>/conf.backup}} instead.*

{code}
Traceback (most recent call last):
  File 
"/var/lib/ambari-agent/cache/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py",
 line 153, in <module>
    Nodemanager().execute()
  File 
"/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py",
 line 219, in execute
    method(env)
  File 
"/var/lib/ambari-agent/cache/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py",
 line 45, in stop
    service('nodemanager',action='stop')
  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/YARN/2.1.0.2.0/package/scripts/service.py",
 line 84, in service
    Execute(daemon_cmd, user=usr)
  File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", 
line 154, 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 238, in action_run
    tries=self.resource.tries, try_sleep=self.resource.try_sleep)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 70, in inner
    result = function(command, **kwargs)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 92, in checked_call
    tries=tries, try_sleep=try_sleep)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 140, in _call_wrapper
    result = _call(command, **kwargs_copy)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 291, in _call
    raise Fail(err_msg)
resource_management.core.exceptions.Fail: Execution of 'export 
HADOOP_LIBEXEC_DIR=/usr/hdp/2.2.9.0-3393/hadoop/libexec && 
/usr/hdp/current/hadoop-yarn-nodemanager/sbin/yarn-daemon.sh --config 
/usr/hdp/2.2.9.0-3393/hadoop/conf stop nodemanager' returned 1. Error: Cannot 
find configuration directory: /usr/hdp/2.2.9.0-3393/hadoop/conf
{code}

  was:
STR:
# With Ambari 2.2.2.0-408 build, install 2.2.9.0 cluster (HA cluster)
# Perform EU to 2.4.2.0-178 till finalize step
# Downgrade back to 2.2.9
# Again run EU to 2.4.2.0

The problem is that the downgrade unlinks configurations, getting rid of 
{{conf.backup}} and makes {{/etc/<component>/conf}} a directory again. However, 
the only code which bootstraps {{conf.backup}} is executed on installation of 
the stack. That action does not happen again between U->D->U.

As a way to catch this scenario, {{conf_select.select()}} tries to be smart and 
checks for {{/etc/<component>/conf}} as a directory and if it finds that it is, 
it will create {{conf.backup}}. *The bug here is that the new 
{{/etc/<component</conf}} link points to {{/usr/hdp/current/<component>/conf}} 
which is a link back to {{/etc/<component>/conf}}. It should be linked to 
{{/etc/<component>/conf.backup}} instead.*

{code}
EU fails while stopping 3/5 Node Managers with below error:
{code}
Traceback (most recent call last):
  File 
"/var/lib/ambari-agent/cache/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py",
 line 153, in <module>
    Nodemanager().execute()
  File 
"/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py",
 line 219, in execute
    method(env)
  File 
"/var/lib/ambari-agent/cache/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py",
 line 45, in stop
    service('nodemanager',action='stop')
  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/YARN/2.1.0.2.0/package/scripts/service.py",
 line 84, in service
    Execute(daemon_cmd, user=usr)
  File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", 
line 154, 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 238, in action_run
    tries=self.resource.tries, try_sleep=self.resource.try_sleep)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 70, in inner
    result = function(command, **kwargs)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 92, in checked_call
    tries=tries, try_sleep=try_sleep)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 140, in _call_wrapper
    result = _call(command, **kwargs_copy)
  File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
line 291, in _call
    raise Fail(err_msg)
resource_management.core.exceptions.Fail: Execution of 'export 
HADOOP_LIBEXEC_DIR=/usr/hdp/2.2.9.0-3393/hadoop/libexec && 
/usr/hdp/current/hadoop-yarn-nodemanager/sbin/yarn-daemon.sh --config 
/usr/hdp/2.2.9.0-3393/hadoop/conf stop nodemanager' returned 1. Error: Cannot 
find configuration directory: /usr/hdp/2.2.9.0-3393/hadoop/conf
{code}


> Re-Upgrade from 2.2 to 2.3+ Fails Due To Circular Symlink
> ---------------------------------------------------------
>
>                 Key: AMBARI-15864
>                 URL: https://issues.apache.org/jira/browse/AMBARI-15864
>             Project: Ambari
>          Issue Type: Bug
>    Affects Versions: 2.2.0
>            Reporter: Jonathan Hurley
>            Assignee: Jonathan Hurley
>            Priority: Blocker
>             Fix For: 2.2.2
>
>
> STR:
> # With Ambari 2.2.2.0-408 build, install 2.2.9.0 cluster (HA cluster)
> # Perform EU to 2.4.2.0-178 till finalize step
> # Downgrade back to 2.2.9
> # Again run EU to 2.4.2.0
> The problem is that the downgrade unlinks configurations, getting rid of 
> {{conf.backup}} and makes {{/etc/<component>/conf}} a directory again. 
> However, the only code which bootstraps {{conf.backup}} is executed on 
> installation of the stack. That action does not happen again between U->D->U.
> As a way to catch this scenario, {{conf_select.select()}} tries to be smart 
> and checks for {{/etc/<component>/conf}} as a directory and if it finds that 
> it is, it will create {{conf.backup}}. *The bug here is that the new 
> {{/etc/<component</conf}} link points to 
> {{/usr/hdp/current/<component>/conf}} which is a link back to 
> {{/etc/<component>/conf}}. It should be linked to 
> {{/etc/<component>/conf.backup}} instead.*
> {code}
> Traceback (most recent call last):
>   File 
> "/var/lib/ambari-agent/cache/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py",
>  line 153, in <module>
>     Nodemanager().execute()
>   File 
> "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py",
>  line 219, in execute
>     method(env)
>   File 
> "/var/lib/ambari-agent/cache/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py",
>  line 45, in stop
>     service('nodemanager',action='stop')
>   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/YARN/2.1.0.2.0/package/scripts/service.py",
>  line 84, in service
>     Execute(daemon_cmd, user=usr)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", 
> line 154, 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 238, in action_run
>     tries=self.resource.tries, try_sleep=self.resource.try_sleep)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 70, in inner
>     result = function(command, **kwargs)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 92, in checked_call
>     tries=tries, try_sleep=try_sleep)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 140, in _call_wrapper
>     result = _call(command, **kwargs_copy)
>   File "/usr/lib/python2.6/site-packages/resource_management/core/shell.py", 
> line 291, in _call
>     raise Fail(err_msg)
> resource_management.core.exceptions.Fail: Execution of 'export 
> HADOOP_LIBEXEC_DIR=/usr/hdp/2.2.9.0-3393/hadoop/libexec && 
> /usr/hdp/current/hadoop-yarn-nodemanager/sbin/yarn-daemon.sh --config 
> /usr/hdp/2.2.9.0-3393/hadoop/conf stop nodemanager' returned 1. Error: Cannot 
> find configuration directory: /usr/hdp/2.2.9.0-3393/hadoop/conf
> {code}



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

Reply via email to