This is an automated email from the ASF dual-hosted git repository.

zhangstar333 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new aef162ad4c [test](log) add some log in udf function when thrown 
exception (#23651)
aef162ad4c is described below

commit aef162ad4cc89c8db9d1815972f6935f219fde6d
Author: zhangstar333 <87313068+zhangstar...@users.noreply.github.com>
AuthorDate: Wed Aug 30 14:16:05 2023 +0800

    [test](log) add some log in udf function when thrown exception (#23651)
    
    [test](log) add some log in udf function when thrown exception (#23651)
---
 .../java/org/apache/doris/udf/BaseExecutor.java    | 28 ++++++++++++++++++++++
 .../java/org/apache/doris/udf/UdafExecutor.java    |  6 +++++
 .../java/org/apache/doris/udf/UdfExecutor.java     |  1 +
 3 files changed, 35 insertions(+)

diff --git 
a/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/BaseExecutor.java
 
b/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/BaseExecutor.java
index 20f36866c8..41dfe04c2a 100644
--- 
a/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/BaseExecutor.java
+++ 
b/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/BaseExecutor.java
@@ -100,6 +100,34 @@ public abstract class BaseExecutor {
         init(request, jarFile, funcRetType, parameterTypes);
     }
 
+    public String debugString() {
+        String res = "";
+        for (JavaUdfDataType type : argTypes) {
+            res = res + type.toString();
+            if (type.getItemType() != null) {
+                res = res + " item: " + type.getItemType().toString() + " sql: 
" + type.getItemType().toSql();
+            }
+            if (type.getKeyType() != null) {
+                res = res + " key: " + type.getKeyType().toString() + " sql: " 
+ type.getKeyType().toSql();
+            }
+            if (type.getValueType() != null) {
+                res = res + " key: " + type.getValueType().toString() + " sql: 
" + type.getValueType().toSql();
+            }
+        }
+        res = res + " return type: " + retType.toString();
+        if (retType.getItemType() != null) {
+            res = res + " item: " + retType.getItemType().toString() + " sql: 
" + retType.getItemType().toSql();
+        }
+        if (retType.getKeyType() != null) {
+            res = res + " key: " + retType.getKeyType().toString() + " sql: " 
+ retType.getKeyType().toSql();
+        }
+        if (retType.getValueType() != null) {
+            res = res + " key: " + retType.getValueType().toString() + " sql: 
" + retType.getValueType().toSql();
+        }
+        res = res + " methodAccess: " + methodAccess.toString();
+        return res;
+    }
+
     protected abstract void init(TJavaUdfExecutorCtorParams request, String 
jarPath,
             Type funcRetType, Type... parameterTypes) throws 
UdfRuntimeException;
 
diff --git 
a/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdafExecutor.java
 
b/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdafExecutor.java
index fa19ad3288..bb397f689a 100644
--- 
a/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdafExecutor.java
+++ 
b/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdafExecutor.java
@@ -126,6 +126,7 @@ public class UdafExecutor extends BaseExecutor {
                 methodAccess.invoke(udf, addIndex, inputArgs);
             }
         } catch (Exception e) {
+            LOG.info("evaluate exception debug: " + debugString());
             LOG.info("invoke add function meet some error: " + 
e.getCause().toString());
             throw new UdfRuntimeException("UDAF failed to addBatchSingle: ", 
e);
         }
@@ -158,6 +159,7 @@ public class UdafExecutor extends BaseExecutor {
                 methodAccess.invoke(udf, addIndex, inputArgs);
             }
         } catch (Exception e) {
+            LOG.info("evaluate exception debug: " + debugString());
             LOG.info("invoke add function meet some error: " + 
Arrays.toString(e.getStackTrace()));
             throw new UdfRuntimeException("UDAF failed to addBatchPlaces: ", 
e);
         }
@@ -202,6 +204,7 @@ public class UdafExecutor extends BaseExecutor {
             allMethods.get(UDAF_SERIALIZE_FUNCTION).invoke(udf, args);
             return baos.toByteArray();
         } catch (Exception e) {
+            LOG.info("evaluate exception debug: " + debugString());
             LOG.warn("invoke serialize function meet some error: " + 
e.getCause().toString());
             throw new UdfRuntimeException("UDAF failed to serialize: ", e);
         }
@@ -219,6 +222,7 @@ public class UdafExecutor extends BaseExecutor {
             }
             allMethods.get(UDAF_RESET_FUNCTION).invoke(udf, args);
         } catch (Exception e) {
+            LOG.info("evaluate exception debug: " + debugString());
             LOG.warn("invoke reset function meet some error: " + 
e.getCause().toString());
             throw new UdfRuntimeException("UDAF failed to reset: ", e);
         }
@@ -247,6 +251,7 @@ public class UdafExecutor extends BaseExecutor {
             }
             allMethods.get(UDAF_MERGE_FUNCTION).invoke(udf, args);
         } catch (Exception e) {
+            LOG.info("evaluate exception debug: " + debugString());
             LOG.warn("invoke merge function meet some error: " + 
e.getCause().toString());
             throw new UdfRuntimeException("UDAF failed to merge: ", e);
         }
@@ -263,6 +268,7 @@ public class UdafExecutor extends BaseExecutor {
             }
             return allMethods.get(UDAF_RESULT_FUNCTION).invoke(udf, 
stateObjMap.get((Long) place));
         } catch (Exception e) {
+            LOG.info("evaluate exception debug: " + debugString());
             LOG.warn("invoke getValue function meet some error: " + 
e.getCause().toString());
             throw new UdfRuntimeException("UDAF failed to result", e);
         }
diff --git 
a/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdfExecutor.java
 
b/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdfExecutor.java
index a77b441b67..55a7ef89ea 100644
--- 
a/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdfExecutor.java
+++ 
b/fe/be-java-extensions/java-udf/src/main/java/org/apache/doris/udf/UdfExecutor.java
@@ -115,6 +115,7 @@ public class UdfExecutor extends BaseExecutor {
             }
             return result;
         } catch (Exception e) {
+            LOG.info("evaluate exception: " + debugString());
             LOG.info("evaluate(int numRows, Object[] column) Exception: " + 
e.toString());
             throw new UdfRuntimeException("UDF failed to evaluate", e);
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org
For additional commands, e-mail: commits-h...@doris.apache.org

Reply via email to