[
https://issues.apache.org/jira/browse/AMBARI-15762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15232458#comment-15232458
]
Hudson commented on AMBARI-15762:
---------------------------------
SUCCESS: Integrated in Ambari-trunk-Commit #4621 (See
[https://builds.apache.org/job/Ambari-trunk-Commit/4621/])
Revert "AMBARI-15762. Component install post processing can not be run
(smohanty:
[http://git-wip-us.apache.org/repos/asf?p=ambari.git&a=commit&h=49c7dcd1557b294af78ec90030ff6df7bd0284ed])
*
ambari-common/src/main/python/resource_management/libraries/functions/file_based_process_lock.py
*
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/after-INSTALL/scripts/params.py
*
ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/after-INSTALL/scripts/shared_initialization.py
* ambari-agent/src/test/python/resource_management/TestFileBasedProcessLock.py
> Component install post processing can not be run in parallel
> ------------------------------------------------------------
>
> Key: AMBARI-15762
> URL: https://issues.apache.org/jira/browse/AMBARI-15762
> Project: Ambari
> Issue Type: Bug
> Reporter: Andrew Onischuk
> Assignee: Andrew Onischuk
> Fix For: 2.2.2
>
> Attachments: AMBARI-15762.patch
>
>
> **Problem**
> Ambari executes component installs in parallel on a host. Each install process
> in the post-install phase executes certain shared/common configuration
> directory related steps (stacks/HDP/2.0.6/hooks/after-
> INSTALL/scripts/shared_initialization.py:link_configs() -> ... -> /resource_ma
> nagement/libraries/functions/conf_select.py:convert_conf_directories_to_symlin
> ks() ) on the directories listed in conf_select.py:PACKAGE_DIRS
> The common configuration directory related processing fail in they are kicked
> of in the same time for the same directory.
> In the case the following code snippet is executed in the same time by
> multiple component installs
> each will see the `backup_dir` as non existent and will try to execute the
> "cp" command. One will succeed while the others fail.
>
>
>
> Execute(("cp", "-R", "-p", old_conf, backup_dir), not_if = format("test
> -e {backup_dir}"), sudo = True)
>
> Similar behaviour is seen for the following code snippet:
>
>
>
> Execute(as_sudo(["cp", "-R", "-p", os.path.join(old_conf, "*"),
> versioned_conf], auto_escape=False), only_if = format("ls -d {old_conf}/*"))
>
> **Possible solution**
> Use the linux "lockfile" command or "mkdir /var/lock/mylock" (see example of
> the mkdir solution here: <http://wiki.bash-hackers.org/howto/mutex>)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)