dfdx/Spark.jl

StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"

Closed this issue · 0 comments

dfdx commented

TLDR: Use either Julia >= 1.7, or Java 8.


Recently I was testing Spark.jl on different Julia versions and encountered the following error while creating a new SparkSession:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/home/azbs/work/Spark/jvm/sparkjl/target/sparkjl-0.2-assembly.jar) to constructor java.nio.DirectByteBuffer(long,int)
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Exception in thread "process reaper" 
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
java.lang.StackOverflowErrorException in thread "process reaper" 
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
java.lang.StackOverflowErrorException in thread "process reaper" 
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
java.lang.StackOverflowErrorException in thread "process reaper" 
Exception: java.lang.StackOverflowError thrown from the UncaughtExceptionHandler in thread "process reaper"
java.lang.StackOverflowErrorException in thread "process reaper" 
...

Specifically, I can reproduce this error on Julia 1.6.6 and Java 11 (both - Oracle and OpenJDK), but other combinations may also be affected. I guess the warning at the beginning is the direct predecessor of the later error, and there are a few reports about this warning out there.

The resolution is to use either Julia 1.7 (latest available at the moment of writing), or Java 8. Github Actions seems to be happy with Java 8, so I will stick to it for a while.