Repository: ambari Updated Branches: refs/heads/trunk bf9a825fe -> e8d6672ce
AMBARI-8890. Ambari detects hive processes by pid, not reliable method (aonishuk) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/e8d6672c Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/e8d6672c Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/e8d6672c Branch: refs/heads/trunk Commit: e8d6672ce24177554754f8f7a520e1918cef8dc6 Parents: bf9a825 Author: Andrew Onishuk <[email protected]> Authored: Thu Dec 25 17:52:56 2014 +0200 Committer: Andrew Onishuk <[email protected]> Committed: Thu Dec 25 17:52:56 2014 +0200 ---------------------------------------------------------------------- .../0.12.0.2.0/package/scripts/hive_service.py | 22 +++++++++++++++++--- .../stacks/2.0.6/HIVE/test_hive_metastore.py | 17 +++++++++++---- .../stacks/2.0.6/HIVE/test_hive_server.py | 16 ++++++++++---- .../stacks/2.1/HIVE/test_hive_metastore.py | 20 ++++++++++++------ 4 files changed, 58 insertions(+), 17 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/e8d6672c/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py index 3918a74..1120b5d 100644 --- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py +++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py @@ -96,10 +96,26 @@ def hive_service(name, action='start', rolling_restart=False): print "Successfully connected to Hive at %s on port %s after %d seconds" % (address, port, elapsed_time) elif action == 'stop': - demon_cmd = format("sudo kill `cat {pid_file}`") - Execute(demon_cmd, not_if = format("! ({process_id_exists_command})")) - File(pid_file, action = "delete",) + daemon_kill_cmd = format("sudo kill `cat {pid_file}`") + daemon_hard_kill_cmd = format("sudo kill -9 `cat {pid_file}`") + + Execute(daemon_kill_cmd, + not_if = format("! ({process_id_exists_command})") + ) + + wait_time = 5 + Execute(daemon_hard_kill_cmd, + not_if = format("! ({process_id_exists_command}) || ( sleep {wait_time} && ! ({process_id_exists_command}) )") + ) + + # check if stopped the process, else fail the task + Execute(format("! ({process_id_exists_command})") + ) + + File(pid_file, + action = "delete" + ) def check_fs_root(): import params http://git-wip-us.apache.org/repos/asf/ambari/blob/e8d6672c/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py index 40a14c8..8888378 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py +++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_metastore.py @@ -68,10 +68,14 @@ class TestHiveMetastore(RMFTestCase): ) self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/hive/hive.pid`', - not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', ) + self.assertResourceCalled('Execute', 'sudo kill -9 `cat /var/run/hive/hive.pid`', + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) || ( sleep 5 && ! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) )', + ) + self.assertResourceCalled('Execute', '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)',) self.assertResourceCalled('File', '/var/run/hive/hive.pid', - action = ['delete'], + action = ['delete'], ) self.assertNoMoreResources() @@ -119,11 +123,16 @@ class TestHiveMetastore(RMFTestCase): ) self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/hive/hive.pid`', - not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', + ) + self.assertResourceCalled('Execute', 'sudo kill -9 `cat /var/run/hive/hive.pid`', + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) || ( sleep 5 && ! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) )', ) + self.assertResourceCalled('Execute', '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)',) self.assertResourceCalled('File', '/var/run/hive/hive.pid', - action = ['delete'], + action = ['delete'], ) + self.assertNoMoreResources() def assert_configure_default(self): http://git-wip-us.apache.org/repos/asf/ambari/blob/e8d6672c/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py index 0adb266..68d650c 100644 --- a/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py +++ b/ambari-server/src/test/python/stacks/2.0.6/HIVE/test_hive_server.py @@ -85,10 +85,14 @@ class TestHiveServer(RMFTestCase): ) self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/hive/hive-server.pid`', - not_if = '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1)', + not_if = '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1)', ) + self.assertResourceCalled('Execute', 'sudo kill -9 `cat /var/run/hive/hive-server.pid`', + not_if = '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1) || ( sleep 5 && ! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1) )', + ) + self.assertResourceCalled('Execute', '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1)',) self.assertResourceCalled('File', '/var/run/hive/hive-server.pid', - action = ['delete'], + action = ['delete'], ) self.assertNoMoreResources() @@ -152,10 +156,14 @@ class TestHiveServer(RMFTestCase): ) self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/hive/hive-server.pid`', - not_if = '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1)', + not_if = '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1)', + ) + self.assertResourceCalled('Execute', 'sudo kill -9 `cat /var/run/hive/hive-server.pid`', + not_if = '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1) || ( sleep 5 && ! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1) )', ) + self.assertResourceCalled('Execute', '! (ls /var/run/hive/hive-server.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive-server.pid` >/dev/null 2>&1)',) self.assertResourceCalled('File', '/var/run/hive/hive-server.pid', - action = ['delete'], + action = ['delete'], ) self.assertNoMoreResources() http://git-wip-us.apache.org/repos/asf/ambari/blob/e8d6672c/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py b/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py index 1d32b56..5899f07 100644 --- a/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py +++ b/ambari-server/src/test/python/stacks/2.1/HIVE/test_hive_metastore.py @@ -70,11 +70,15 @@ class TestHiveMetastore(RMFTestCase): ) self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/hive/hive.pid`', - not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', - ) + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', + ) + self.assertResourceCalled('Execute', 'sudo kill -9 `cat /var/run/hive/hive.pid`', + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) || ( sleep 5 && ! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) )', + ) + self.assertResourceCalled('Execute', '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)',) self.assertResourceCalled('File', '/var/run/hive/hive.pid', - action = ['delete'], - ) + action = ['delete'], + ) self.assertNoMoreResources() def test_configure_secured(self): @@ -121,10 +125,14 @@ class TestHiveMetastore(RMFTestCase): ) self.assertResourceCalled('Execute', 'sudo kill `cat /var/run/hive/hive.pid`', - not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)', + ) + self.assertResourceCalled('Execute', 'sudo kill -9 `cat /var/run/hive/hive.pid`', + not_if = '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) || ( sleep 5 && ! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1) )', ) + self.assertResourceCalled('Execute', '! (ls /var/run/hive/hive.pid >/dev/null 2>&1 && ps -p `cat /var/run/hive/hive.pid` >/dev/null 2>&1)',) self.assertResourceCalled('File', '/var/run/hive/hive.pid', - action = ['delete'], + action = ['delete'], ) self.assertNoMoreResources()
