Description
When running RocksDBStatebackendConfigTest#testPredefinedOptions test one encounters this exception:
java.lang.ExceptionInInitializerError at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:47) at org.rocksdb.RocksDB.<clinit>(RocksDB.java:23) at org.rocksdb.Options.<clinit>(Options.java:21) at org.apache.flink.contrib.streaming.state.PredefinedOptions$2.createOptions(PredefinedOptions.java:77) at org.apache.flink.contrib.streaming.state.RocksDBStateBackend.getRocksDBOptions(RocksDBStateBackend.java:436) at org.apache.flink.contrib.streaming.state.RocksDBStateBackendConfigTest.testPredefinedOptions(RocksDBStateBackendConfigTest.java:193) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229) at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.junit.runner.JUnitCore.run(JUnitCore.java:160) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74) Caused by: java.lang.UnsupportedOperationException at org.rocksdb.util.Environment.getJniLibraryName(Environment.java:40) at org.rocksdb.NativeLibraryLoader.<clinit>(NativeLibraryLoader.java:19) ... 27 more
The Environment.getJniLibraryName method has branches for different operating systems, and is missing a separate branch for windows. While this is resolved in the RocksDB Github repository, it is not in the latest release (4.2).
This problem causes several test in RocksDBStatebackendConfigTest and all tests in RocksDbStatebackendTest to fail. RocksDBAsyncKVSnapshotTests simply deadlock aswell.
I propose disabling all tests when run on Windows.