[ https://issues.apache.org/jira/browse/AMBARI-15762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15231240#comment-15231240 ]
Hudson commented on AMBARI-15762: --------------------------------- SUCCESS: Integrated in Ambari-branch-2.2 #609 (See [https://builds.apache.org/job/Ambari-branch-2.2/609/]) AMBARI-15762. Component install post processing can not be run in (aonishuk: [http://git-wip-us.apache.org/repos/asf?p=ambari.git&a=commit&h=9b86d41e197adc31ab29c1bc71a578a7d4b5da81]) * ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/after-INSTALL/scripts/shared_initialization.py * ambari-common/src/main/python/resource_management/libraries/functions/file_based_process_lock.py * ambari-agent/src/test/python/resource_management/TestFileBasedProcessLock.py * ambari-server/src/main/resources/stacks/HDP/2.0.6/hooks/after-INSTALL/scripts/params.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)