orientdb: Id of WAL operation can not be duplicated

OrientDB Version: 3.1.9

Java Version: 8

OS: win

Expected behavior

After successful shutdown, startup should be also successful. Actually it should be successful in any case.

Actual behavior

Startup is started to fail with the following exception:

2021-03-20 20:11:18:631 INFO  Storage OSystem , scan all pages to find the latest operation stored into the files, if you wish to skip this step to speed up data restore but decrease durability guarantees please set flag storage.checkLatestOperationId to the false [OLocalPaginatedStorage]
2021-03-20 20:11:18:637 INFO  Scanning of file ouser.pcl in storage OSystem (0 out of 67 files are scanned) [OLocalPaginatedStorage]Exception during storage data restore
java.lang.IllegalStateException: Id of WAL operation can not be duplicated
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.fetchNextOperationId(OAbstractPaginatedStorage.java:6502)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.restoreFromBeginning(OAbstractPaginatedStorage.java:6221)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.restoreFromWAL(OAbstractPaginatedStorage.java:6161)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.recoverIfNeeded(OAbstractPaginatedStorage.java:5320)
        at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.open(OAbstractPaginatedStorage.java:401)
        at com.orientechnologies.orient.core.db.OrientDBEmbedded.getAndOpenStorage(OrientDBEmbedded.java:500)
        at com.orientechnologies.orient.core.db.OrientDBEmbedded.openNoAuthorization(OrientDBEmbedded.java:455)
        at com.orientechnologies.orient.core.db.OrientDBEmbedded.openNoAuthorization(OrientDBEmbedded.java:79)
        at com.orientechnologies.orient.server.OSystemDatabase.openSystemDatabase(OSystemDatabase.java:93)
        at com.orientechnologies.orient.server.OSystemDatabase.checkServerId(OSystemDatabase.java:169)
        at com.orientechnologies.orient.server.OSystemDatabase.init(OSystemDatabase.java:157)
        at com.orientechnologies.orient.server.OSystemDatabase.<init>(OSystemDatabase.java:50)
        at com.orientechnologies.orient.server.OServer.initSystemDatabase(OServer.java:1275)
        at com.orientechnologies.orient.server.OServer.activate(OServer.java:445)

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 19 (7 by maintainers)

Most upvoted comments

Hi, @jamieb22 that is because the fix was reverted. I am working on the final touches and will send you an update once it is done.