Skip to content

[Bug] v25.0-rc2 Database migration failed to Duckdb / Unable to convert block metadata to the columnar format: cannot bind enum descriptor to a non-enum class #986

Description

@PatchedNotFixed

Error from log from using command co migrate-db duckdb

Data from row id 8422098 (Ref by error stack) for block table as seen by DBeaver, due to the size of it i have put it on paste bin.
As SQL https://pastebin.com/6YGuiZyj <--- deleted by pastebin
As CSV https://pastebin.com/ETHwz4By <--- deleted by pastebin

[10:54:56 INFO]: CoreProtect - Starting database migration from MySQL to DuckDB.
[10:54:56 INFO]: CoreProtect - Please do not restart your server until this process completes.
[10:54:56 INFO]: CoreProtect - Migrated art_map: 47 records.
[10:55:01 INFO]: CoreProtect - Copy progress [--------------------] 0.0% (1,610,047/6,632,217,463) | block 1,610,000/5,164,941,032 | 321,274 records/s | ETA 343m 58s.
[10:55:06 INFO]: CoreProtect - Copy progress [--------------------] 0.1% (3,460,047/6,632,217,463) | block 3,460,000/5,164,941,032 | 345,188 records/s | ETA 320m 3s.
[10:55:06 INFO]: CoreProtect - Database migration failed: Unable to read MySQL migration cursor for block: Unable to read MySQL block.meta at row ID 8422098: Unable to convert block metadata to the columnar format: cannot bind enum descriptor to a non-enum class
[10:55:06 WARN]: java.sql.SQLException: Unable to read MySQL migration cursor for block: Unable to read MySQL block.meta at row ID 8422098: Unable to convert block metadata to the columnar format: cannot bind enum descriptor to a non-enum class
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration$CanonicalReader.cursorException(DatabaseMigration.java:1219)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration$RowCursor.nextBatch(DatabaseMigration.java:1302)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration.copyTables(DatabaseMigration.java:226)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration.performMigration(DatabaseMigration.java:161)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration.lambda$runCommand$0(DatabaseMigration.java:112)
[10:55:06 WARN]:        at java.base/java.lang.Thread.run(Thread.java:1474)
[10:55:06 WARN]: Caused by: java.sql.SQLException: Unable to read MySQL block.meta at row ID 8422098: Unable to convert block metadata to the columnar format: cannot bind enum descriptor to a non-enum class
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration$CanonicalReader.readRows(DatabaseMigration.java:1197)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration$CanonicalReader.readRelationalPage(DatabaseMigration.java:1102)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration$RowCursor.nextBatch(DatabaseMigration.java:1289)
[10:55:06 WARN]:        ... 4 more
[10:55:06 WARN]: Caused by: java.sql.SQLException: Unable to convert block metadata to the columnar format: cannot bind enum descriptor to a non-enum class
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration.canonicalBlockMetadata(DatabaseMigration.java:741)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration$CanonicalReader.readRows(DatabaseMigration.java:1186)
[10:55:06 WARN]:        ... 6 more
[10:55:06 WARN]: Caused by: java.io.InvalidClassException: cannot bind enum descriptor to a non-enum class
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:486)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1927)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1785)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readEnum(ObjectInputStream.java:2054)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1614)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at java.base/java.util.HashMap.readObject(HashMap.java:1559)
[10:55:06 WARN]:        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[10:55:06 WARN]:        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:976)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2302)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at java.base/java.util.ArrayList.readObject(ArrayList.java:982)
[10:55:06 WARN]:        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[10:55:06 WARN]:        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:976)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2302)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at java.base/java.util.HashMap.readObject(HashMap.java:1561)
[10:55:06 WARN]:        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[10:55:06 WARN]:        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:976)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2302)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at java.base/java.util.ArrayList.readObject(ArrayList.java:982)
[10:55:06 WARN]:        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[10:55:06 WARN]:        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:976)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2302)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at java.base/java.util.ArrayList.readObject(ArrayList.java:982)
[10:55:06 WARN]:        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[10:55:06 WARN]:        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:976)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2302)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at java.base/java.util.HashMap.readObject(HashMap.java:1561)
[10:55:06 WARN]:        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[10:55:06 WARN]:        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:976)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2302)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at java.base/java.util.ArrayList.readObject(ArrayList.java:982)
[10:55:06 WARN]:        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
[10:55:06 WARN]:        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
[10:55:06 WARN]:        at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:976)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2302)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2133)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1620)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:487)
[10:55:06 WARN]:        at java.base/java.io.ObjectInputStream.readObject(ObjectInputStream.java:445)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.serialize.LegacyBlockMetaCodec.decode(LegacyBlockMetaCodec.java:35)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.serialize.BlockMetaCodec.fromLegacy(BlockMetaCodec.java:259)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.database.statement.BlockStatement.transcodeMetadata(BlockStatement.java:70)
[10:55:06 WARN]:        at CoreProtect-25.0-rc2.jar//net.coreprotect.utility.extensions.DatabaseMigration.canonicalBlockMetadata(DatabaseMigration.java:738)
[10:55:06 WARN]:        ... 7 more
[11:09:49 INFO]: ----- CoreProtect -----
[11:09:49 INFO]: Version: CoreProtect v25.0-rc2.
[11:09:49 INFO]: License: Valid donation key. (D7626C91)
[11:09:49 INFO]: Database: Using MySQL. (Initial DB: 18.2)
[11:09:49 INFO]: WorldEdit: Integration enabled.
[11:09:49 INFO]: Consumer: 0 items in queue.
[11:09:49 INFO]: Cleanup: 0 rows auto purged since restart.
[11:09:49 INFO]: System: x32 5.76GHz 16-Core. (14.79GB / 131.07GB RAM)
[11:09:49 INFO]: Discord: www.coreprotect.net/discord/
[11:09:49 INFO]: Patreon: www.patreon.com/coreprotect/

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions