Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-6593

LevelDB tests fail on Windows

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

      LevelDB JNI implementation has some problems with the way that Windows manages files.

      Here are 2 major problems there:

      1. JDK doesn't always clean up files: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4715154
      2. A cleared DB object has null references inside and this results in throwing {{DBException}}s

      Some stacktraces for investigation:

      org.iq80.leveldb.DBException: Closed
      	at org.fusesource.leveldbjni.internal.JniDB.iterator(JniDB.java:100)
      	at org.infinispan.persistence.leveldb.LevelDBStore.clear(LevelDBStore.java:227)
      	at org.infinispan.persistence.manager.PersistenceManagerImpl.clearAllStores(PersistenceManagerImpl.java:399)
      	at org.infinispan.test.TestingUtil.clearCacheLoader(TestingUtil.java:733)
      	at org.infinispan.test.TestingUtil.clearContent(TestingUtil.java:680)
      	at org.infinispan.persistence.BaseStoreFunctionalTest.teardown(BaseStoreFunctionalTest.java:55)
      	at org.infinispan.test.SingleCacheManagerTest.destroyAfterMethod(SingleCacheManagerTest.java:74)
      	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:497)
      	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
      	at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:564)
      	at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
      	at org.testng.internal.Invoker.invokeMethod(Invoker.java:786)
      	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
      	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
      	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
      	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
      	at org.testng.TestRunner.privateRun(TestRunner.java:767)
      	at org.testng.TestRunner.run(TestRunner.java:617)
      	at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
      	at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
      	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
      	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      
      org.infinispan.commons.CacheException: Unable to invoke method public void org.infinispan.persistence.manager.PersistenceManagerImpl.preload() on object of type PersistenceManagerImpl
      	at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:172)
      	at org.infinispan.factories.AbstractComponentRegistry$PrioritizedMethod.invoke(AbstractComponentRegistry.java:864)
      	at org.infinispan.factories.AbstractComponentRegistry.invokeStartMethods(AbstractComponentRegistry.java:633)
      	at org.infinispan.factories.AbstractComponentRegistry.internalStart(AbstractComponentRegistry.java:622)
      	at org.infinispan.factories.AbstractComponentRegistry.start(AbstractComponentRegistry.java:547)
      	at org.infinispan.factories.ComponentRegistry.start(ComponentRegistry.java:238)
      	at org.infinispan.cache.impl.CacheImpl.start(CacheImpl.java:890)
      	at org.infinispan.manager.DefaultCacheManager.wireAndStartCache(DefaultCacheManager.java:635)
      	at org.infinispan.manager.DefaultCacheManager.createCache(DefaultCacheManager.java:585)
      	at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:451)
      	at org.infinispan.manager.DefaultCacheManager.getCache(DefaultCacheManager.java:437)
      	at org.infinispan.persistence.leveldb.config.ConfigurationTest.testXmlConfig(ConfigurationTest.java:71)
      	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:497)
      	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:84)
      	at org.testng.internal.Invoker.invokeMethod(Invoker.java:714)
      	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)
      	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)
      	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
      	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
      	at org.testng.TestRunner.privateRun(TestRunner.java:767)
      	at org.testng.TestRunner.run(TestRunner.java:617)
      	at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
      	at org.testng.SuiteRunner.access$000(SuiteRunner.java:38)
      	at org.testng.SuiteRunner$SuiteWorker.run(SuiteRunner.java:382)
      	at org.testng.internal.thread.ThreadUtil$2.call(ThreadUtil.java:64)
      	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
      	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
      	at java.lang.Thread.run(Thread.java:745)
      Caused by: org.infinispan.persistence.spi.PersistenceException: java.lang.RuntimeException: org.fusesource.leveldbjni.internal.NativeDB$DBException: Invalid argument: not an sstable (bad magic number)
      	at org.infinispan.persistence.leveldb.LevelDBStore.process(LevelDBStore.java:315)
      	at org.infinispan.persistence.manager.PersistenceManagerImpl.preload(PersistenceManagerImpl.java:236)
      	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:497)
      	at org.infinispan.commons.util.ReflectionUtil.invokeAccessibly(ReflectionUtil.java:168)
      	... 31 more
      Caused by: java.lang.RuntimeException: org.fusesource.leveldbjni.internal.NativeDB$DBException: Invalid argument: not an sstable (bad magic number)
      	at org.fusesource.leveldbjni.internal.JniDBIterator.peekNext(JniDBIterator.java:89)
      	at org.fusesource.leveldbjni.internal.JniDBIterator.next(JniDBIterator.java:98)
      	at org.fusesource.leveldbjni.internal.JniDBIterator.next(JniDBIterator.java:45)
      	at org.infinispan.persistence.leveldb.LevelDBStore.process(LevelDBStore.java:298)
      	... 37 more
      Caused by: org.fusesource.leveldbjni.internal.NativeDB$DBException: Invalid argument: not an sstable (bad magic number)
      	at org.fusesource.leveldbjni.internal.NativeDB.checkStatus(NativeDB.java:200)
      	at org.fusesource.leveldbjni.internal.NativeIterator.checkStatus(NativeIterator.java:121)
      	at org.fusesource.leveldbjni.internal.NativeIterator.key(NativeIterator.java:169)
      	at org.fusesource.leveldbjni.internal.JniDBIterator.peekNext(JniDBIterator.java:87)
      	... 40 more
      

              slaskawi@redhat.com Sebastian Łaskawiec (Inactive)
              slaskawi@redhat.com Sebastian Łaskawiec (Inactive)
              Archiver:
              rhn-support-adongare Amol Dongare

                Created:
                Updated:
                Resolved:
                Archived: