问题
My app is throwing this error, what could be the main problem?:
jetbrains.exodus.log.BlockNotFoundException: Address is out of log space, overflow, address = 6225920, file = 00000000000.xd
at jetbrains.exodus.log.BlockNotFoundException.raise(BlockNotFoundException.java:28)
at jetbrains.exodus.log.Log.readBytes(Log.kt:776)
at jetbrains.exodus.log.LogCache.readBytes(LogCache.java:134)
at jetbrains.exodus.log.LogCache.readFullPage(LogCache.java:111)
at jetbrains.exodus.log.SharedLogCache.getPage(SharedLogCache.java:92)
at jetbrains.exodus.log.DataIterator.checkPage(DataIterator.java:95)
at jetbrains.exodus.tree.patricia.PatriciaTreeBase.getDataIterator(PatriciaTreeBase.java:69)
at jetbrains.exodus.tree.patricia.PatriciaTreeBase.getLoggable(PatriciaTreeBase.java:126)
at jetbrains.exodus.tree.patricia.PatriciaTree.<init>(PatriciaTree.java:34)
at jetbrains.exodus.env.StoreImpl.openImmutableTree(StoreImpl.java:220)
at jetbrains.exodus.env.TransactionBase.getTree(TransactionBase.java:125)
at jetbrains.exodus.env.ReadWriteTransaction.getTree(ReadWriteTransaction.java:186)
at jetbrains.exodus.env.CursorImpl.checkTreeCursor(CursorImpl.java:170)
at jetbrains.exodus.env.CursorImpl.getNext(CursorImpl.java:47)
at jetbrains.exodus.vfs.VirtualFileSystem$4$1.hasNext(VirtualFileSystem.java:356)
at java.lang.Iterable.forEach(Iterable.java:74)
at com.backend.repository.jee.JeeXodusVFSRepository$9.execute(JeeXodusVFSRepository.java:288)
When trying to access VFS files:
public List<File> list(String appId) {
List<File> files = new LinkedList<>();
final Environment env = manager.getEnvironment(xodusRoot, appId);
final VirtualFileSystem vfs = manager.getVirtualFileSystem(env);
env.executeInTransaction(
new TransactionalExecutable() {
@Override
public void execute(@NotNull final Transaction txn) {
vfs.getFiles(txn).forEach(file -> {
String path = file.getPath();
long created = file.getCreated();
long lastModified = file.getLastModified();
long descriptor = file.getDescriptor();
File newFile = new File();
newFile.setName(path);
newFile.setDescriptor(descriptor);
newFile.setCreated(created);
newFile.setModified(lastModified);
files.add(newFile);
});
}
});
// vfs.shutdown();
// env.close();
return files;
}
来源:https://stackoverflow.com/questions/59096693/blocknotfoundexception-address-is-out-of-log-space