Repository: ambari Updated Branches: refs/heads/trunk 63bf08e09 -> 99cc49b78
AMBARI-9913 Ambari Agent failed start blocks all future bootstrap attempts Saving the PID only on successful start, after ensuring that the current instance is the only one running locally. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/99cc49b7 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/99cc49b7 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/99cc49b7 Branch: refs/heads/trunk Commit: 99cc49b784e0abeb754b20e0ea6d24ed7c6d6f3b Parents: 63bf08e Author: Florian Barca <fba...@hortonworks.com> Authored: Tue Mar 3 17:54:11 2015 -0800 Committer: Florian Barca <fba...@hortonworks.com> Committed: Tue Mar 3 17:54:11 2015 -0800 ---------------------------------------------------------------------- ambari-agent/src/main/python/ambari_agent/main.py | 8 +++++--- .../ambari-metrics-host-monitoring/src/main/python/main.py | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/99cc49b7/ambari-agent/src/main/python/ambari_agent/main.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/main.py b/ambari-agent/src/main/python/ambari_agent/main.py index 33c1bc8..ebf0781 100644 --- a/ambari-agent/src/main/python/ambari_agent/main.py +++ b/ambari-agent/src/main/python/ambari_agent/main.py @@ -233,11 +233,10 @@ def main(heartbeat_stop_callback=None): perform_prestart_checks(expected_hostname) - if not OSCheck.get_os_family() == OSConst.WINSRV_FAMILY: - daemonize() - # Starting ping port listener try: + #This acts as a single process machine-wide lock (albeit incomplete, since + # we still need an extra file to track the Agent PID) ping_port_listener = PingPortListener(config) except Exception as ex: err_message = "Failed to start ping port listener of: " + str(ex) @@ -251,6 +250,9 @@ def main(heartbeat_stop_callback=None): server_hostname = config.get('server', 'hostname') server_url = config.get_api_url() + if not OSCheck.get_os_family() == OSConst.WINSRV_FAMILY: + daemonize() + try: server_ip = socket.gethostbyname(server_hostname) logger.info('Connecting to Ambari server at %s (%s)', server_url, server_ip) http://git-wip-us.apache.org/repos/asf/ambari/blob/99cc49b7/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/main.py ---------------------------------------------------------------------- diff --git a/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/main.py b/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/main.py index ce8ffc6..d218015 100644 --- a/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/main.py +++ b/ambari-metrics/ambari-metrics-host-monitoring/src/main/python/main.py @@ -58,8 +58,6 @@ def server_process_main(stop_handler, scmStatus=None): if scmStatus is not None: scmStatus.reportStartPending() - save_pid(os.getpid(), PID_OUT_FILE) - config = Configuration() _init_logging(config) controller = Controller(config, stop_handler) @@ -70,6 +68,8 @@ def server_process_main(stop_handler, scmStatus=None): print "Server out at: " + SERVER_OUT_FILE print "Server log at: " + SERVER_LOG_FILE + save_pid(os.getpid(), PID_OUT_FILE) + if scmStatus is not None: scmStatus.reportStarted()