You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2014/01/27 12:36:51 UTC

git commit: TAJO-372: When an exception except for network issues occurs, the operation should not be repeated.

Updated Branches:
  refs/heads/master 5ac8c77cd -> 106d29c2d


TAJO-372: When an exception except for network issues occurs, the operation should not be repeated.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tajo/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tajo/commit/106d29c2
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tajo/tree/106d29c2
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tajo/diff/106d29c2

Branch: refs/heads/master
Commit: 106d29c2d9c0cb89bac3ab4efcdce1a0f2abb2fe
Parents: 5ac8c77
Author: Hyunsik Choi <hy...@apache.org>
Authored: Mon Jan 27 20:36:29 2014 +0900
Committer: Hyunsik Choi <hy...@apache.org>
Committed: Mon Jan 27 20:36:29 2014 +0900

----------------------------------------------------------------------
 CHANGES.txt                                            |  5 ++++-
 .../org/apache/tajo/catalog/AbstractCatalogClient.java |  4 ++--
 .../main/java/org/apache/tajo/catalog/CatalogUtil.java |  2 +-
 .../catalog/exception/NoSuchFunctionException.java     | 13 ++++++++++---
 .../java/org/apache/tajo/catalog/TestCatalogUtil.java  |  5 ++---
 .../java/org/apache/tajo/catalog/CatalogServer.java    |  8 ++++----
 .../org/apache/tajo/engine/planner/ExprAnnotator.java  | 12 +++++-------
 .../queries/TestJoinQuery/testWhereClauseJoin6.sql     |  2 +-
 .../main/java/org/apache/tajo/rpc/AsyncRpcServer.java  |  2 +-
 .../main/java/org/apache/tajo/rpc/ServerCallable.java  | 10 ++++++----
 10 files changed, 36 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 0f82e9b..1ea0718 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -231,7 +231,10 @@ Release 0.8.0 - unreleased
 
   BUG FIXES
 
-    TAJO-552: Fix Bug verify-protocbuf.sh runs with bash. 
+    TAJO-372: When an exception except for network issues occurs, the
+    operation should not be repeated. (hyunsik)
+
+    TAJO-552: Fix Bug verify-protocbuf.sh runs with bash.
     (DaeMyung Kang via jihoon)
 
     TAJO-551: Fix bug getFunction can get wrong function that have invalid 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java b/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
index 9176a88..c711deb 100644
--- a/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
+++ b/tajo-catalog/tajo-catalog-client/src/main/java/org/apache/tajo/catalog/AbstractCatalogClient.java
@@ -368,14 +368,14 @@ public abstract class AbstractCatalogClient implements CatalogService {
     }
 
     if (descProto == null) {
-      throw new NoSuchFunctionException(signature);
+      throw new NoSuchFunctionException(signature, paramTypes);
     }
 
     try {
       return new FunctionDesc(descProto);
     } catch (ClassNotFoundException e) {
       LOG.error(e);
-      throw new NoSuchFunctionException(signature);
+      throw new NoSuchFunctionException(signature, paramTypes);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
index 4a3fc27..95bd83d 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
@@ -46,7 +46,7 @@ public class CatalogUtil {
     sb.append("(");
     int i = 0;
     for (DataType type : paramTypes) {
-      sb.append(type.getType());
+      sb.append(type.getType().name().toLowerCase());
       if(i < paramTypes.length - 1) {
         sb.append(",");
       }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java
index fba8d09..7765c31 100644
--- a/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java
+++ b/tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/exception/NoSuchFunctionException.java
@@ -18,12 +18,19 @@
 
 package org.apache.tajo.catalog.exception;
 
+import org.apache.tajo.catalog.CatalogUtil;
+import org.apache.tajo.common.TajoDataTypes;
+
+import java.util.Collection;
+
 public class NoSuchFunctionException extends RuntimeException {
 	private static final long serialVersionUID = 5062193018697228028L;
 
-	public NoSuchFunctionException() {}
+  public NoSuchFunctionException(String funcName, TajoDataTypes.DataType [] parameters) {
+    super("function " + CatalogUtil.getCanonicalName(funcName, parameters) + " does not exist");
+  }
 
-	public NoSuchFunctionException(String funcName) {
-		super("No Such GeneralFunction in Catalog: "+funcName);
+	public NoSuchFunctionException(String funcName, Collection<TajoDataTypes.DataType> parameters) {
+		super("function " + CatalogUtil.getCanonicalName(funcName, parameters) + " does not exist");
 	}
 }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java
index bda98db..065ec9d 100644
--- a/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java
+++ b/tajo-catalog/tajo-catalog-common/src/test/java/org/apache/tajo/catalog/TestCatalogUtil.java
@@ -26,8 +26,7 @@ import static org.junit.Assert.assertEquals;
 public class TestCatalogUtil {
   @Test
   public final void testGetCanonicalName() {
-    String canonical = CatalogUtil.getCanonicalName("sum",
-        CatalogUtil.newSimpleDataTypeArray(Type.INT4, Type.INT8));
-    assertEquals("sum(INT4,INT8)", canonical);
+    String canonical = CatalogUtil.getCanonicalName("sum", CatalogUtil.newSimpleDataTypeArray(Type.INT4, Type.INT8));
+    assertEquals("sum(int4,int8)", canonical);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
----------------------------------------------------------------------
diff --git a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
index 5d01a16..abc3832 100644
--- a/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
+++ b/tajo-catalog/tajo-catalog-server/src/main/java/org/apache/tajo/catalog/CatalogServer.java
@@ -508,7 +508,7 @@ public class CatalogServer extends AbstractService {
           }
         }
       }
-      throw new NoSuchFunctionException(signature);
+      throw new NoSuchFunctionException(signature, params);
     }
 
     private FunctionDescProto findFunction(String signature, FunctionType type, List<DataType> params) {
@@ -519,7 +519,7 @@ public class CatalogServer extends AbstractService {
           }
         }
       }
-      throw new NoSuchFunctionException(signature);
+      throw new NoSuchFunctionException(signature, params);
     }
 
     private FunctionDescProto findFunction(FunctionDescProto target) {
@@ -555,7 +555,7 @@ public class CatalogServer extends AbstractService {
         throws ServiceException {
 
       if (!containFunction(request.getSignature())) {
-        throw new NoSuchFunctionException(request.getSignature());
+        throw new NoSuchFunctionException(request.getSignature(), new DataType[] {});
       }
 
       functions.remove(request.getSignature());
@@ -573,7 +573,7 @@ public class CatalogServer extends AbstractService {
               request.getParameterTypesList());
           return desc;
         }
-        throw new NoSuchFunctionException(request.getSignature());
+        throw new NoSuchFunctionException(request.getSignature(), request.getParameterTypesList());
       } else {
         FunctionDescProto function = findFunction(request.getSignature(), request.getParameterTypesList());
         return function;

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java
index ffa8f7a..c90325a 100644
--- a/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java
+++ b/tajo-core/tajo-core-backend/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java
@@ -390,12 +390,12 @@ public class ExprAnnotator extends BaseAlgebraVisitor<ExprAnnotator.Context, Eva
     stack.pop(); // <--- Pop
 
     if (!catalog.containFunction(expr.getSignature(), paramTypes)) {
-      throw new NoSuchFunctionException(CatalogUtil.getCanonicalName(expr.getSignature(), paramTypes));
+      throw new NoSuchFunctionException(expr.getSignature(), paramTypes);
     }
 
     FunctionDesc funcDesc = catalog.getFunction(expr.getSignature(), paramTypes);
     if (funcDesc == null) {
-      throw new NoSuchFunctionException(CatalogUtil.getCanonicalName(expr.getSignature(), paramTypes));
+      throw new NoSuchFunctionException(expr.getSignature(), paramTypes);
     }
     try {
     CatalogProtos.FunctionType functionType = funcDesc.getFuncType();
@@ -429,8 +429,7 @@ public class ExprAnnotator extends BaseAlgebraVisitor<ExprAnnotator.Context, Eva
     FunctionDesc countRows = catalog.getFunction("count", CatalogProtos.FunctionType.AGGREGATION,
         new TajoDataTypes.DataType[] {});
     if (countRows == null) {
-      throw new NoSuchFunctionException(CatalogUtil.
-          getCanonicalName(countRows.getSignature(), new TajoDataTypes.DataType[]{}));
+      throw new NoSuchFunctionException(countRows.getSignature(), new TajoDataTypes.DataType[]{});
     }
 
     try {
@@ -439,8 +438,7 @@ public class ExprAnnotator extends BaseAlgebraVisitor<ExprAnnotator.Context, Eva
       return new AggregationFunctionCallEval(countRows, (AggFunction) countRows.newInstance(),
           new EvalNode[] {});
     } catch (InternalException e) {
-      throw new NoSuchFunctionException(CatalogUtil.
-          getCanonicalName(countRows.getSignature(), new TajoDataTypes.DataType[]{}));
+      throw new NoSuchFunctionException(countRows.getSignature(), new TajoDataTypes.DataType[]{});
     }
   }
 
@@ -462,7 +460,7 @@ public class ExprAnnotator extends BaseAlgebraVisitor<ExprAnnotator.Context, Eva
     }
 
     if (!catalog.containFunction(setFunction.getSignature(), functionType, paramTypes)) {
-      throw new NoSuchFunctionException(CatalogUtil. getCanonicalName(setFunction.getSignature(), paramTypes));
+      throw new NoSuchFunctionException(setFunction.getSignature(), paramTypes);
     }
 
     FunctionDesc funcDesc = catalog.getFunction(setFunction.getSignature(), functionType, paramTypes);

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin6.sql
----------------------------------------------------------------------
diff --git a/tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin6.sql b/tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin6.sql
index 3993462..62d3b79 100644
--- a/tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin6.sql
+++ b/tajo-core/tajo-core-backend/src/test/resources/queries/TestJoinQuery/testWhereClauseJoin6.sql
@@ -2,7 +2,7 @@ select
 	s_acctbal,
 	s_name,
 	p_partkey,
-	n_name,
+	n_name
 from
 	part,
 	supplier,

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-rpc/src/main/java/org/apache/tajo/rpc/AsyncRpcServer.java
----------------------------------------------------------------------
diff --git a/tajo-rpc/src/main/java/org/apache/tajo/rpc/AsyncRpcServer.java b/tajo-rpc/src/main/java/org/apache/tajo/rpc/AsyncRpcServer.java
index 5cf830e..4dc1d05 100644
--- a/tajo-rpc/src/main/java/org/apache/tajo/rpc/AsyncRpcServer.java
+++ b/tajo-rpc/src/main/java/org/apache/tajo/rpc/AsyncRpcServer.java
@@ -118,7 +118,7 @@ public class AsyncRpcServer extends NettyServerBase {
         RemoteCallException callException = (RemoteCallException) e.getCause();
         e.getChannel().write(callException.getResponse());
       }
-      throw new RemoteException(e.getCause());
+      throw new RemoteException(serviceName, e.getCause());
     }
   }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-tajo/blob/106d29c2/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
----------------------------------------------------------------------
diff --git a/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java b/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
index 143c9f7..3f724e8 100644
--- a/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
+++ b/tajo-rpc/src/main/java/org/apache/tajo/rpc/ServerCallable.java
@@ -94,18 +94,20 @@ public abstract class ServerCallable<T> {
           client = RpcConnectionPool.getPool(tajoConf).getConnection(addr, protocol, asyncMode);
         }
         return call(client);
-      } catch (Throwable t) {
+      } catch (IOException ioe) {
         if(!closeConn) {
           RpcConnectionPool.getPool(tajoConf).closeConnection(client);
           client = null;
         }
-        exceptions.add(t);
+        exceptions.add(ioe);
         if(abort) {
-          throw new ServiceException(t.getMessage(), t);
+          throw new ServiceException(ioe.getMessage(), ioe);
         }
         if (tries == numRetries - 1) {
-          throw new ServiceException("Giving up after tries=" + tries, t);
+          throw new ServiceException("Giving up after tries=" + tries, ioe);
         }
+      } catch (Throwable t) {
+        throw new ServiceException(t);
       } finally {
         afterCall();
         if(closeConn) {