Propagate Java stack traces from JVM upcalls into DataFusionError
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 45/100
Direção de pesquisa
Comece rastreando os upcalls implementados em Java por meio de org.apache.datafusion.internal.JniBridge, começando pelas UDFs escalares e pelo tratamento de DataFusionError::Execution. Identifique cada caminho de JVM para nativo que captura um Throwable e como a configuração de SessionContext pode alcançá-los. A tarefa estará concluída quando todos os upcalls atuais e futuros usarem uma mensagem configurável, o stack trace completo ou uma representação sem trace, com full como padrão.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Java
- Estrelas
- 32
- Forks
- 12
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de apache/datafusion-java
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
apache/datafusion-java#116 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
apache/datafusion-java#112 ·
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 42/100
apache/datafusion-java#96 ·
-
enhancement
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 38/100
apache/datafusion-java#95 ·
-
Create first release Abertaenhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
apache/datafusion-java#86 · 3 comentários ·
Todas as issues de apache/datafusion-java
Issues semelhantes
-
awaiting triage bug Causes friction Hop Gui P1 P2 Transforms
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
apache/flink-agents#1152 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
jenkinsci/blueocean-plugin#5417 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
objectionary/eo-graphs#75 ·