[Resolved]Tvm4j unittest failure in docker image

We have a Jenkins setup that runs the exact same CI as dmlc/tvm, recently we observed the following tvm4j errors:

[INFO] TVM4J Package - Parent ............................. SUCCESS [  0.870 s]
[INFO] TVM4J Package - Core ............................... FAILURE [  0.501 s]
[INFO] TVM4J Package - Native Parent ...................... SKIPPED
[INFO] TVM4J Package - Native Linux-x86_64 ................ SKIPPED
[INFO] TVM4J Package - Full Parent ........................ SKIPPED
[INFO] TVM4J Package - Full Linux-x86_64 .................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.744 s
[INFO] Finished at: 2019-04-09T02:19:56+00:00
[INFO] Final Memory: 33M/1572M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (default) on project tvm4j-core: Failed during checkstyle configuration: cannot initialize module TreeWalker - Property 'cacheFile' does not exist, please check the documentation -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :tvm4j-core
Makefile:108: recipe for target 'jvmpkg' failed
make: *** [jvmpkg] Error 1

And I’m able to reproduce the error using dmlc/tvm master branch from a fresh Ubuntu P2 instance:

mkdir -p build
cd build
cp ../cmake/config.cmake .
echo "set(USE_CUBLAS ON)" >> config.cmake
echo "set(USE_CUDNN ON)" >> config.cmake
echo "set(USE_CUDA ON)" >> config.cmake
echo "set(USE_OPENGL ON)" >> config.cmake
echo "set(USE_LLVM llvm-config-6.0)" >> config.cmake
echo "set(USE_NNPACK ON)" >> config.cmake
echo "set(NNPACK_PATH /NNPACK/build/)" >> config.cmake
echo "set(USE_RPC ON)" >> config.cmake
echo "set(USE_SORT ON)" >> config.cmake
echo "set(USE_GRAPH_RUNTIME ON)" >> config.cmake
echo "set(USE_STACKVM_RUNTIME ON)" >> config.cmake
echo "set(USE_GRAPH_RUNTIME_DEBUG ON)" >> config.cmake
echo "set(USE_BLAS openblas)" >> config.cmake
echo "set(CMAKE_CXX_COMPILER g++)" >> config.cmake
echo "set(CMAKE_CXX_FLAGS -Werror)" >> config.cmake
docker/bash.sh tvmai/ci-gpu:v0.51 ./tests/scripts/task_build.sh build -j

mkdir -p build2
cd build2
cp ../cmake/config.cmake .
echo "set(USE_OPENCL ON)" >> config.cmake
echo "set(USE_ROCM ON)" >> config.cmake
echo "set(USE_VULKAN ON)" >> config.cmake
echo "set(USE_GRAPH_RUNTIME_DEBUG ON)" >> config.cmake
echo "set(CMAKE_CXX_COMPILER clang-6.0)" >> config.cmake
echo "set(CMAKE_CXX_FLAGS -Werror)" >> config.cmake           
docker/bash.sh tvmai/ci-gpu:v0.51 ./tests/scripts/task_build.sh build2 -j

docker/bash.sh tvmai/ci-gpu:v0.51 ./tests/scripts/task_java_unittest.sh

Any idea about the failure?
@tqchen @yzhliu

I can confirm this problem, seems was due to update of the dependent module. @yzhliu perhaps is the best person who can look into this

I’ll take a look tomorrow. btw does it fail only with docker?

I only tried docker since it’s the only reliable way to have the same environment as Jenkins.