-
Bug
-
Resolution: Done
-
Major
-
None
-
- Run LevelDB testsuite on Windows
-
- Use Linux.... sorry couldn't resist.
LevelDB JNI implementation has some problems with the way that Windows manages files.
Here are 2 major problems there:
- JDK doesn't always clean up files: http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4715154
- 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