You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@phoenix.apache.org by nd...@apache.org on 2015/04/21 02:38:30 UTC

phoenix git commit: PHOENIX-1896 Make queryserver.py more robust

Repository: phoenix
Updated Branches:
  refs/heads/master e3a1c24d2 -> 5a63c6360


PHOENIX-1896 Make queryserver.py more robust


Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo
Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/5a63c636
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/5a63c636
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/5a63c636

Branch: refs/heads/master
Commit: 5a63c6360e53ec0bb52fc41b4f1856f1cc757257
Parents: e3a1c24
Author: Nick Dimiduk <nd...@apache.org>
Authored: Mon Apr 20 15:49:11 2015 -0700
Committer: Nick Dimiduk <nd...@apache.org>
Committed: Mon Apr 20 16:54:42 2015 -0700

----------------------------------------------------------------------
 bin/queryserver.py | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/phoenix/blob/5a63c636/bin/queryserver.py
----------------------------------------------------------------------
diff --git a/bin/queryserver.py b/bin/queryserver.py
index 436428b..0bd4e08 100755
--- a/bin/queryserver.py
+++ b/bin/queryserver.py
@@ -61,6 +61,7 @@ else:
 hbase_config_path = os.getenv('HBASE_CONF_DIR', phoenix_utils.hbase_conf_path)
 
 # default paths ## TODO: add windows support
+java_home = os.getenv('JAVA_HOME')
 hbase_pid_dir = os.path.join(tempfile.gettempdir(), 'phoenix')
 phoenix_log_dir = os.path.join(tempfile.gettempdir(), 'phoenix')
 phoenix_file_basename = 'phoenix-%s-server' % getpass.getuser()
@@ -68,15 +69,17 @@ phoenix_log_file = '%s.log' % phoenix_file_basename
 phoenix_out_file = '%s.out' % phoenix_file_basename
 phoenix_pid_file = '%s.pid' % phoenix_file_basename
 
-# load hbase-env.sh to extract HBASE_PID_DIR
+# load hbase-env.sh to extract JAVA_HOME, HBASE_PID_DIR, HBASE_LOG_DIR
 hbase_env_path = os.path.join(hbase_config_path, 'hbase-env.sh')
 hbase_env = {}
 if os.path.isfile(hbase_env_path):
     p = subprocess.Popen(['bash', '-c', 'source %s && env' % hbase_env_path], stdout = subprocess.PIPE)
     for x in p.stdout:
-        (k, v) = x.split('=')
-        hbase_env[k] = v
+        (k, _, v) = x.partition('=')
+        hbase_env[k.strip()] = v.strip()
 
+if hbase_env.has_key('JAVA_HOME'):
+    java_home = hbase_env['JAVA_HOME']
 if hbase_env.has_key('HBASE_PID_DIR'):
     hbase_pid_dir = hbase_env['HBASE_PID_DIR']
 if hbase_env.has_key('HBASE_LOG_DIR'):
@@ -86,9 +89,14 @@ log_file_path = os.path.join(phoenix_log_dir, phoenix_log_file)
 out_file_path = os.path.join(phoenix_log_dir, phoenix_out_file)
 pid_file_path = os.path.join(hbase_pid_dir, phoenix_pid_file)
 
+if java_home:
+    java = os.path.join(java_home, 'bin', 'java')
+else:
+    java = 'java'
+
 #    " -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n " + \
 #    " -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:FlightRecorderOptions=defaultrecording=true,dumponexit=true" + \
-java_cmd = 'java -cp ' + hbase_config_path + os.pathsep + phoenix_utils.phoenix_queryserver_jar + \
+java_cmd = '%(java)s -cp ' + hbase_config_path + os.pathsep + phoenix_utils.phoenix_queryserver_jar + \
     " -Dproc_phoenixserver" + \
     " -Dlog4j.configuration=file:" + os.path.join(phoenix_utils.current_dir, "log4j.properties") + \
     " -Dpsql.root.logger=%(root_logger)s" + \
@@ -111,7 +119,7 @@ if command == 'start':
         with context:
             # this block is the main() for the forked daemon process
             child = None
-            cmd = java_cmd % {'root_logger': 'INFO,DRFA', 'log_dir': phoenix_log_dir, 'log_file': phoenix_log_file}
+            cmd = java_cmd % {'java': java, 'root_logger': 'INFO,DRFA', 'log_dir': phoenix_log_dir, 'log_file': phoenix_log_file}
 
             # notify the child when we're killed
             def handler(signum, frame):
@@ -142,6 +150,6 @@ elif command == 'stop':
 
 else:
     # run in the foreground using defaults from log4j.properties
-    cmd = java_cmd % {'root_logger': 'INFO,console', 'log_dir': '.', 'log_file': 'psql.log'}
+    cmd = java_cmd % {'java': java, 'root_logger': 'INFO,console', 'log_dir': '.', 'log_file': 'psql.log'}
     child = subprocess.Popen(cmd.split())
     sys.exit(child.wait())