Propagate Java stack traces from JVM upcalls into DataFusionError
还没有人认领这个 Issue。
评估
调研方向
首先从标量 UDF 和 DataFusionError::Execution 处理入手,跟踪通过 org.apache.datafusion.internal.JniBridge 的 Java 实现 upcall。识别每一条会捕获 Throwable 的 JVM-to-native 路径,以及 SessionContext 配置如何到达这些路径。完成的标准是,所有当前和未来的 upcall 都使用可配置的消息、完整 stack trace 或无 trace 表示,并以 full 为默认值。
由索引模型根据 Issue 内容生成。
描述
Follow-up from PR #46 review (thread).
Problem
When a Java-implemented upcall throws (currently: scalar UDFs via JniBridge, but the same will apply to any future upcall — table providers, aggregate UDFs, etc.), the native side surfaces only the exception class name and getMessage() via DataFusionError::Execution. The Java stack trace is discarded, which makes debugging much harder than necessary.
Proposal
Capture the throwable's stack trace on the JVM side and include it in the error string returned to native code. Make verbosity configurable per SessionContext so production callers can opt out — e.g. an enum like message | full | none, default full.
Scope
Should cover all JVM→native upcall paths, not just scalar UDFs. A shared helper in org.apache.datafusion.internal.JniBridge (or a new JniErrors utility) that converts a Throwable to the configured representation, used wherever upcalls catch exceptions.
References
- pgwhalen's session-configurable approach in his community binding: https://github.com/pgwhalen/datafusion-java/blob/1c20733aa8b008315af6092a912b58ef3df6a482/datafusion-ffi-java/src/main/java/org/apache/arrow/datafusion/config/ConfigOptions.java#L50-L54
- 主要语言
- Java
- 星标
- 32
- 派生
- 12
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
apache/datafusion-java 的其他 Issue
-
难度 5/5 一周以上 新手友好度 35/100
apache/datafusion-java#116 ·
-
难度 5/5 一周以上 新手友好度 25/100
apache/datafusion-java#112 ·
-
enhancement
难度 5/5 一周以上 新手友好度 42/100
apache/datafusion-java#96 ·
-
enhancement
难度 5/5 一周以上 新手友好度 38/100
apache/datafusion-java#95 ·
-
enhancement
难度 4/5 3-5 天 新手友好度 35/100
apache/datafusion-java#86 · 3 条评论 ·
查看 apache/datafusion-java 的全部 Issue
相似的 Issue
-
bug untriaged
难度 2/5 1-3 小时 新手友好度 84/100
opensearch-project/ml-commons#5094 ·
-
bug
难度 2/5 1-3 小时 新手友好度 85/100
-
emitter:client:csharp feature
难度 2/5 1-3 小时 新手友好度 72/100
-
affects/8.10 affects/8.9 component/clients kind/bug likelihood/mid severity/mid
难度 2/5 1-3 小时 新手友好度 78/100
-
bug frontend maui-pilot
难度 2/5 1-3 小时 新手友好度 72/100