Skip to content

When restarting ArcadeDB embedded server: Error on loading schema. The schema will be reset #1412

Description

@glennirwin

ArcadeDB Version:

ArcadeDB Server v23.11.1

OS and JDK Version:

Running on Linux 6.5.6-76060506-generic - OpenJDK 64-Bit Server VM 21.0.1

Expected behavior

All Schema changes should persist if server is restarted

Actual behavior

When restarting server: Error on loading schema. The schema will be reset

Steps to reproduce

I am starting an embedded server and then running a script to create tables (all with IF NOT EXISTS) and then loading data into the tables. All is well until I stop the server and start up again because I get this message:
2024-01-06 01:15:12.452 INFO [ArcadeDBServer] <ArcadeDB_0> Starting ArcadeDB Server in development mode with plugins [] ...
2024-01-06 01:15:12.453 INFO [ArcadeDBServer] <ArcadeDB_0> - Metrics Collection Started...<ArcadeDB_0> Error on loading schema. The schema will be reset
com.arcadedb.exception.SchemaException: Type 'menuItem' not defined
at com.arcadedb.schema.LocalProperty.setOfType(LocalProperty.java:67)
at com.arcadedb.schema.LocalDocumentType.createProperty(LocalDocumentType.java:279)
at com.arcadedb.schema.LocalSchema.readConfiguration(LocalSchema.java:999)
at com.arcadedb.schema.LocalSchema.load(LocalSchema.java:193)
at com.arcadedb.database.LocalDatabase.openInternal(LocalDatabase.java:1771)
at com.arcadedb.database.LocalDatabase.open(LocalDatabase.java:195)
at com.arcadedb.database.DatabaseFactory.open(DatabaseFactory.java:78)
at com.arcadedb.server.ArcadeDBServer.getDatabase(ArcadeDBServer.java:464)
at com.arcadedb.server.ArcadeDBServer.getDatabase(ArcadeDBServer.java:318)
at com.arcadedb.server.ArcadeDBServer.loadDatabases(ArcadeDBServer.java:489)
at com.arcadedb.server.ArcadeDBServer.start(ArcadeDBServer.java:145)
at permeagility.util.Database.startMeUp(Database.java:97)
at permeagility.util.Database.(Database.java:60)
at permeagility.web.Server.initializeServer(Server.java:1270)
at permeagility.web.Server.main(Server.java:227)

Luckily, my table structure is re-initialized at startup but if I create other tables, during a session of the web server and load data into them, I can stop and restart the server and sometimes the table is just missing in the schema, if I recreate the table with the same name, the data appears in it so it appears that the data is solid but somehow the schema is not persisting all the changes. I tried setting autoTransaction(true) but I get the same result.

Is there something I should be doing to validate or flush schema changes to ensure they are durable? I tried CHECK DATABASE FIX but I could not see any difference.

Thanks.

Activity

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions