Chesnay Schepler created FLINK-3495:
---------------------------------------

             Summary: RocksDB Tests can't run on Windows
                 Key: FLINK-3495
                 URL: https://issues.apache.org/jira/browse/FLINK-3495
             Project: Flink
          Issue Type: Bug
          Components: Tests
    Affects Versions: 1.0.0
            Reporter: Chesnay Schepler


When running RocksDBStatebackendConfigTest#testPredefinedOptions test one 
encounters this exception:
{code}
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
{code}

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.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to