BlockNotFoundException: Address is out of log space

这一生的挚爱 提交于 2020-01-25 10:17:07

问题


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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!