Author: heyongqiang
Date: Thu Nov 17 00:06:36 2011
New Revision: 1202942

URL: http://svn.apache.org/viewvc?rev=1202942&view=rev
Log:
HIVE-2578: Debug mode doesn't work properly with MapRedLocalTask (Robert 
Surówka via He Yongqiang)

Modified:
    hive/trunk/bin/ext/debug.sh
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java

Modified: hive/trunk/bin/ext/debug.sh
URL: 
http://svn.apache.org/viewvc/hive/trunk/bin/ext/debug.sh?rev=1202942&r1=1202941&r2=1202942&view=diff
==============================================================================
--- hive/trunk/bin/ext/debug.sh (original)
+++ hive/trunk/bin/ext/debug.sh Thu Nov 17 00:06:36 2011
@@ -39,6 +39,11 @@ set_debug_param(){
       childSuspend)
       child_suspend="suspend=${pair[1]}"
       ;;
+      swapSuspend)
+      tmp=$child_suspend
+      child_suspend=$main_suspend
+      main_suspend=$tmp
+      ;;
       *)
       ;;
   esac
@@ -89,5 +94,6 @@ debug_help(){
   echo "port=<port_number>          Port on which main JVM listens for debug 
connection. Default: 8000"
   echo "mainSuspend=<y|n>           Should main JVM wait with execution for 
the debugger to connect. Default: y"
   echo "childSuspend=<y|n>          Should child JVMs wait with execution for 
the debugger to connect. Default: n"
+  echo "swapSuspend                 Swaps suspend options between main and 
child JVMs"
   echo
 }

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java?rev=1202942&r1=1202941&r2=1202942&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java 
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapRedTask.java Thu 
Nov 17 00:06:36 2011
@@ -303,7 +303,7 @@ public class MapRedTask extends ExecDriv
     }
   }
 
-  private void configureDebugVariablesForChildJVM(Map<String, String> 
environmentVariables) {
+  static void configureDebugVariablesForChildJVM(Map<String, String> 
environmentVariables) {
     // this method contains various asserts to warn if environment variables 
are in a buggy state
     assert environmentVariables.containsKey(HADOOP_CLIENT_OPTS)
         && environmentVariables.get(HADOOP_CLIENT_OPTS) != null : 
HADOOP_CLIENT_OPTS
@@ -539,7 +539,7 @@ public class MapRedTask extends ExecDriv
 
     return null;
   }
-  
+
   @Override
   public Operator<? extends Serializable> getReducer() {
     return getWork().getReducer();

Modified: 
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java
URL: 
http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java?rev=1202942&r1=1202941&r2=1202942&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java 
(original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/MapredLocalTask.java 
Thu Nov 17 00:06:36 2011
@@ -200,6 +200,11 @@ public class MapredLocalTask extends Tas
       } else {
         variables.put(HADOOP_OPTS_KEY, hadoopOpts);
       }
+
+      if(variables.containsKey(MapRedTask.HIVE_DEBUG_RECURSIVE)) {
+        MapRedTask.configureDebugVariablesForChildJVM(variables);
+      }
+
       env = new String[variables.size()];
       int pos = 0;
       for (Map.Entry<String, String> entry : variables.entrySet()) {
@@ -458,7 +463,7 @@ public class MapredLocalTask extends Tas
   public Collection<Operator<? extends Serializable>> getTopOperators() {
     return getWork().getAliasToWork().values();
   }
-  
+
   @Override
   public String getName() {
     return "MAPREDLOCAL";


Reply via email to