Sebastian Łaskawiec created ISPN-6593:
-----------------------------------------
Summary: LevelDB tests fail on Windows
Key: ISPN-6593
URL:
https://issues.jboss.org/browse/ISPN-6593
Project: Infinispan
Issue Type: Bug
Components: Loaders and Stores
Environment: Apache Maven 3.3.9
Java version: 1.8.0_91, vendor: Oracle Corporation
Default locale: pl_PL, platform encoding: Cp1250
OS name: "windows 8.1", version: "6.3", arch: "amd64",
family: "dos"
Reporter: Sebastian Łaskawiec
Assignee: Sebastian Łaskawiec
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:
{noformat}
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)
{noformat}
{noformat}
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
{noformat}
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)