You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Dmytro Grinenko (JIRA)" <ji...@apache.org> on 2017/11/28 10:16:00 UTC

[jira] [Updated] (AMBARI-22465) Post-Upgrade Tasks Use the Wrong Repository and Hooks Folders

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

Dmytro Grinenko updated AMBARI-22465:
-------------------------------------
    Attachment: AMBARI-22465.patch

> Post-Upgrade Tasks Use the Wrong Repository and Hooks Folders
> -------------------------------------------------------------
>
>                 Key: AMBARI-22465
>                 URL: https://issues.apache.org/jira/browse/AMBARI-22465
>             Project: Ambari
>          Issue Type: Bug
>    Affects Versions: 2.6.0
>            Reporter: Jonathan Hurley
>            Assignee: Dmytro Grinenko
>            Priority: Critical
>             Fix For: 2.6.1
>
>         Attachments: AMBARI-22465.patch
>
>
> During an express upgrade, when performing an upgrade between stack versions, the wrong repository/stacks/hooks are sent down during the {{post-upgrade}} step:
> {code}
>       <component name="FOO">
>         <pre-upgrade>
>           <task xsi:type="execute" hosts="all">
>             <script>scripts/upgrade.py</script>
>             <function>bar</function>
>           </task>
>         </pre-upgrade>
>         <upgrade>
>           <task xsi:type="restart-task"/>
>         </upgrade>
>         <post-upgrade>
>           <task xsi:type="execute" hosts="any">
>             <script>scripts/upgrade.py</script>
>             <function>baz</function>
>           </task>
>         </post-upgrade>
> {code}
> In both the {{pre-upgrade}} and {{post-upgrade}} commands, the scripts folder location refers to the old stack. The restart/start command, however, is correct.
> It appears as though the problem is found here:
> https://github.com/apache/ambari/blob/branch-2.6/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java#L1052-L1055
> {code:title=makeActionStage()}
>     // the ru_execute_tasks invokes scripts - it needs information about where
>     // the scripts live and for that it should always use the target repository
>     // stack
>     applyRepositoryAssociatedParameters(wrapper, effectiveRepositoryVersion.getStackId(), params);
> {code}
> It uses the effective stack ID which during an express upgrade is the source stack of the upgrade.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)