Hello,
TLDR : To be able to build and run Zeppelin on my Debian 12 computer, I
need to upgrade it to Java 17.
Some tests aren't running after doing that.
But I don't know what tests weren't working under Java 11 yet,
to compare that list with the one I have that aren't working on my computer.
May someone run something like a
mvn clean install -fn
and list me the failling tests ?
Thanks!
Marc Le Bihan
---
Long version:
Allow Apache Zeppelin to run with Java 17
on an experimental fork from a recent master
:https://github.com/apache/zeppelin/compare/master...mlebihan:zeppelin:jdk_17
I faced few problem due to unexperience, here what I've currently done to
advance:
1. Problem with a downloading attempt from a SNAPSHOT repository that doesn't
exist anymore
- temporary removed flink
2. Cassandra test content is hanging
- temporary removed Cassandra test content that was hanging (in setup, I
guess)
3. Completed default`conda` Python environment (currently installing itself
with a Python`3.12.9` version) with:
```bash pip install grpcio
pip install ir
pip install pandas
pip install pandasql
pip install protobuf
``` 4. add-exports, add-opens added to`pom.xml` to allow running on Java 17
- using`module-info.java` would be better (but longer to settle)
but some code is attempting to import internal packages from GSon,
preventing their use yet.
5. Two tests of`RemoteInterpreterTest` cannot run if your computer isn't a
localized`en` one
test will search for messages like`command not found` when my french OS will
deliver:`commande introuvable`.
- I've added a package named`org.apache.zeppelin.util.debug` that contains a
class to help in debugging.
Its goal is to gather error information whatever it occurred in a
synchronous or asynchronous task, within an exception or not.
- Replaced assertions
in`zeppelin-zengine/src/test/java/org/apache/zeppelin/interpreter/remote/RemoteInterpreterTest.java`
- in`testFailToLaunchInterpreterProcess_ErrorInRunner`
:`assertEquals(ProcessLauncher.ERROR_STATUS_COMMAND_NOT_FOUND,
PostMortem.currentError().interpretedExitCode(), "Command should not be found")` -
in`testFailToLaunchInterpreterProcess_Timeout` :`assertEquals(ProcessLauncher.ERROR_STATUS_TIMEOUT,
PostMortem.currentError().interpretedExitCode(), "Command should had timed out");` 6. Run
a`mvn clean install -Dzeppelin.interpreter.conda.env.name=base -fn` Failed projects are these:
- Zeppelin: Interpreter
(`zeppelin/zeppelin-interpreter/target/surefire-reports`)
```log Tests run: 6, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.021 s <<< FAILURE! -- in org.apache.zeppelin.resource.ResourceTest
org.apache.zeppelin.resource.ResourceTest.testInvokeMethod_shouldNotAbleToInvokeMethodWithTypeInference
-- Time elapsed: 0.002 s <<< FAILURE!
org.opentest4j.AssertionFailedError: Expected
java.lang.ClassNotFoundException to be thrown, but nothing was thrown.
at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:71)
at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:37)
at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3007)
at
org.apache.zeppelin.resource.ResourceTest.testInvokeMethod_shouldNotAbleToInvokeMethodWithTypeInference(ResourceTest.java:68)
``` - Zeppelin: Jupyter Interpreter
(`zeppelin/zeppelin-jupyter-interpreter/target/surefire-reports`)
```log
-------------------------------------------------------------------------------
Test set: org.apache.zeppelin.jupyter.IRKernelTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.650 s <<<
FAILURE! -- in org.apache.zeppelin.jupyter.IRKernelTest
org.apache.zeppelin.jupyter.IRKernelTest.testIRInterpreter -- Time elapsed: 0.645 s
<<< ERROR!
org.apache.zeppelin.interpreter.InterpreterException:
Fail to open JupyterKernelInterpreter:
java.io.IOException: Fail to launch Jupyter Kernel as the python process is
failed.
starting...
Traceback (most recent call last):
File "/tmp/zeppelin_jupyter_kernel_ir8216581272354189736/kernel_server.py", line
187, in <module>
[...]
jupyter_client.kernelspec.NoSuchKernel: No such kernel named ir
``` - Zeppelin: R (`zeppelin/rlang/target/surefire-reports`)
```log jupyter_client.kernelspec.NoSuchKernel: No such kernel named ir
Error in library("knitr"): aucun package nommé ‘knitr’ n'est trouvé
``` - Zeppelin: Python interpreter (`zeppelin/python/target/surefire-reports`)
I was able to run that test by
adding`properties.setProperty("zeppelin.interpreter.conda.env.name",
"/home/lebihan/miniforge3");` in its setUp
`en` test vs`fr` language OS (same problem as point 5, but I haven't
corrected it, yet)
```java assertTrue(stacktrace.contains("No such file or directory"),
stacktrace);
``` vs:
```log error=2, Aucun fichier ou dossier de ce type
``` - Zeppelin: Spark Interpreter
(`zeppelin/spark/interpreter/target/surefire-reports`)
```log Plenty of :
java.lang.NullPointerException: Cannot read the array length because
"<local7>" is null
``` and few other tests problems.