Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-3495

RocksDB Tests can't run on Windows

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.0.0
    • 1.0.1, 1.1.0
    • Tests
    • None

    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.

      Attachments

        Activity

          People

            chesnay Chesnay Schepler
            chesnay Chesnay Schepler
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: