-
-
Notifications
You must be signed in to change notification settings - Fork 98
Closed
otto-de/synapse
#81Description
I randomly get below exceptions reported in my android app which uses nitrite 3.3.0.
Fatal Exception: java.lang.IllegalStateException: Chunk 55267 not found [1.4.200/9]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950)
at org.h2.mvstore.MVStore.getChunk(MVStore.java:1230)
at org.h2.mvstore.MVStore.readBufferForPage(MVStore.java:1214)
at org.h2.mvstore.MVStore.readPage(MVStore.java:2209)
at org.h2.mvstore.MVMap.readPage(MVMap.java:672)
at org.h2.mvstore.Page$NonLeaf.getChildPage(Page.java:1043)
at org.h2.mvstore.CursorPos.traverseDown(CursorPos.java:58)
at org.h2.mvstore.MVMap.operate(MVMap.java:1804)
at org.h2.mvstore.MVMap.putIfAbsent(MVMap.java:564)
at org.dizitart.no2.store.NitriteMVMap.putIfAbsent(NitriteMVMap.java:105)
at org.dizitart.no2.internals.DataService.insert(DataService.java:84)
at org.dizitart.no2.internals.DataService.update(DataService.java:135)
at org.dizitart.no2.internals.NitriteService.update(NitriteService.java:373)
at org.dizitart.no2.internals.DefaultNitriteCollection.update(DefaultNitriteCollection.java:322)
at org.dizitart.no2.objects.DefaultObjectRepository.update(DefaultObjectRepository.java:141)
at org.dizitart.no2.objects.DefaultObjectRepository.update(DefaultObjectRepository.java:126)
at com.my.app.DatabaseHelper.persistReceipt(DatabaseHelper.java:619)
...
...
Caused by java.lang.IllegalStateException: Chunk 55194 not found [1.4.200/9]
at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:950)
at org.h2.mvstore.MVStore.getChunk(MVStore.java:1230)
at org.h2.mvstore.MVStore.readBufferForPage(MVStore.java:1214)
at org.h2.mvstore.MVStore.readPage(MVStore.java:2209)
at org.h2.mvstore.MVMap.readPage(MVMap.java:672)
at org.h2.mvstore.Page$NonLeaf.getChildPage(Page.java:1043)
at org.h2.mvstore.Cursor.hasNext(Cursor.java:53)
at java.util.LinkedHashSet.<init>(LinkedHashSet.java:81)
at org.dizitart.no2.filters.NotFilter.matchedSet(NotFilter.java:41)
at org.dizitart.no2.filters.NotFilter.apply(NotFilter.java:52)
at org.dizitart.no2.objects.filters.NotObjectFilter.apply(NotObjectFilter.java:51)
at org.dizitart.no2.internals.SearchService.find(SearchService.java:67)
at org.dizitart.no2.internals.DataService.remove(DataService.java:211)
at org.dizitart.no2.internals.NitriteService.remove(NitriteService.java:384)
at org.dizitart.no2.internals.DefaultNitriteCollection.remove(DefaultNitriteCollection.java:360)
at org.dizitart.no2.objects.DefaultObjectRepository.remove(DefaultObjectRepository.java:176)
at org.dizitart.no2.objects.DefaultObjectRepository.remove(DefaultObjectRepository.java:170)
at com.my.app.DatabaseHelper.removeReceipts(DatabaseHelper.java:666)
...
...
I reported this issue in h2-database in following issue. The response from them was this could be due to not using registerVersionUsage() and deregisterVersionUsage(). I couldn't find these methods when I searched nitrite code, so this is a possibility.
h2database/h2database#2590 (comment)
If using registerVersionUsage() and deregisterVersionUsage() could affect performance, let the uses of nitrite configure whether it could be used or not.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Done