Repository: incubator-hawq
Updated Branches:
  refs/heads/master 64bd28213 -> 80e8322c2


HAWQ-1448. Fixed postmaster process hung at recv () on segment


Project: http://git-wip-us.apache.org/repos/asf/incubator-hawq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-hawq/commit/80e8322c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-hawq/tree/80e8322c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-hawq/diff/80e8322c

Branch: refs/heads/master
Commit: 80e8322c29afd7594d0ffd1c55c8edb9063f279b
Parents: 64bd282
Author: Ming LI <[email protected]>
Authored: Tue May 2 12:23:10 2017 +0800
Committer: Ming LI <[email protected]>
Committed: Wed Jul 12 18:37:29 2017 +0800

----------------------------------------------------------------------
 tools/bin/hawq_ctl | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/80e8322c/tools/bin/hawq_ctl
----------------------------------------------------------------------
diff --git a/tools/bin/hawq_ctl b/tools/bin/hawq_ctl
index 5fa40af..f47b6fe 100755
--- a/tools/bin/hawq_ctl
+++ b/tools/bin/hawq_ctl
@@ -920,9 +920,16 @@ class HawqStop:
                       (source_hawq_env, self.GPHOME, 
self.segment_data_directory, log_filename)
             return cmd_str
         else:
+            # If stop cluster, firstly master stopped, then segment maybe hung 
at recv() from master.
+            # So here change segment stop mode from smart to fast, so that 
segment don't wait
+            # connection from master to be closed.
+            seg_stop_mod = self.stop_mode
+            if(self.node_type == 'cluster' and seg_stop_mod =='smart'):
+                seg_stop_mod = 'fast'
+
             cmd_str = "%s; %s/bin/pg_ctl stop -w -t %s -D %s -l 
%s/pg_log/startup.log -m %s >> %s" % \
                       (source_hawq_env, self.GPHOME, self.timeout, 
self.segment_data_directory,
-                       self.segment_data_directory, self.stop_mode, 
log_filename)
+                       self.segment_data_directory, seg_stop_mod, log_filename)
             return cmd_str
 
     def _stop_segment(self):

Reply via email to