-
Notifications
You must be signed in to change notification settings - Fork 8
Property existence constraint does not work #35
Copy link
Copy link
Open
Description
Hi,
I tried to run the following example query taken from the https://dozerdb.org/ website with dozerdb 5.26.3:
CREATE CONSTRAINT FOR (n:NodeX) REQUIRE n.email IS NOT NULL;
But I am getting the error message Property existence constraint requires Neo4j Enterprise Edition and the database seems to be corrupted (more detail belows).
I was under the assumption that DozerDB ships with its own implementation of the constraint logic and I do not need the enterprise version for this. Am I mistaken here?
Thanks and with kind regards
Andreas
Error message in the logs:
ERROR Client triggered an unexpected error [Neo.DatabaseError.Transaction.TransactionCommitFailed]: Could not apply the transaction: Transaction #7 {started 2025-03-17 10:56:18.898+0000, committed 2025-03-17 10:56:18.958+0000, with 5 commands in this transaction, lease -1, latest committed transaction id when started was 3, consensusIndex: -1} to the store after written to log., reference 0c5624a6-249c-4242-88e0-c12deb2afa6e.
ERROR Client triggered an unexpected error [Neo.DatabaseError.Transaction.TransactionStartFailed]: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details., reference 9bd2aae1-3e75-4610-a2e5-eeede0259ce4.
Stack trace from debug.log file, please note the last java.lang.IllegalStateException: Property existence constraint requires Neo4j Enterprise Edition
2025-03-17 11:00:19.553+0000 ERROR [o.n.b.f.StateMachineImpl] Client triggered an unexpected error [Neo.DatabaseError.Transaction.TransactionStartFailed]: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details., reference 503a543b-6aba-4c8f-8cac-dfe3a32deb0a.
org.neo4j.bolt.protocol.common.fsm.error.TransactionStateTransitionException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:56) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:32) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.TransactionalStateTransition.process(TransactionalStateTransition.java:42) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.fsm.state.MultiTransitionState.process(MultiTransitionState.java:53) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.fsm.StateMachineImpl.process(StateMachineImpl.java:157) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection$ProcessJob.perform(AtomicSchedulingConnection.java:631) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection.executeJob(AtomicSchedulingConnection.java:335) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection.doExecuteJobs(AtomicSchedulingConnection.java:314) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.connector.connection.AtomicSchedulingConnection.executeJobs(AtomicSchedulingConnection.java:209) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?]
at java.lang.Thread.run(Thread.java:840) [?:?]
Caused by: org.neo4j.bolt.tx.error.statement.StatementExecutionException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at org.neo4j.bolt.tx.TransactionImpl.run(TransactionImpl.java:143) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:48) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 13 more
Caused by: org.neo4j.graphdb.TransactionFailureException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginKernelTransaction(GraphDatabaseFacade.java:159) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransactionInternal(GraphDatabaseFacade.java:124) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransaction(GraphDatabaseFacade.java:106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginInternalTransaction(LocalDatabaseTransactionFactory.java:119) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:89) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:50) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.createTransactionFor(RouterTransactionImpl.java:148) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$0(RouterTransactionImpl.java:134) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.startReadingTransaction(RouterTransactionImpl.java:386) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.registerNewChildTransaction(RouterTransactionImpl.java:361) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$1(RouterTransactionImpl.java:133) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.transactionFor(RouterTransactionImpl.java:131) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionContextImpl.transactionFor(RouterTransactionContextImpl.java:64) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.QueryRouterImpl.executeQuery(QueryRouterImpl.java:276) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.executeQuery(QueryRouterBoltSpi.java:160) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.run(TransactionImpl.java:136) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:48) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 13 more
Caused by: org.neo4j.internal.kernel.api.exceptions.TransactionFailureException: The database has encountered a critical error, and needs to be restarted. Please see database logs for more details.
at jdk.internal.reflect.GeneratedConstructorAccessor54.newInstance(Unknown Source) ~[?:?]
at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:?]
at java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500) ~[?:?]
at java.lang.reflect.Constructor.newInstance(Constructor.java:481) ~[?:?]
at org.neo4j.internal.helpers.Exceptions.disguiseException(Exceptions.java:266) ~[neo4j-common-5.26.3.jar:5.26.3]
at org.neo4j.monitoring.DatabaseHealth.assertNoPanic(DatabaseHealth.java:52) ~[neo4j-monitoring-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelImpl.beginTransaction(KernelImpl.java:133) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelImpl.beginTransaction(KernelImpl.java:120) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginKernelTransaction(GraphDatabaseFacade.java:157) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransactionInternal(GraphDatabaseFacade.java:124) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransaction(GraphDatabaseFacade.java:106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginInternalTransaction(LocalDatabaseTransactionFactory.java:119) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:89) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransactionFactory.beginTransaction(LocalDatabaseTransactionFactory.java:50) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.createTransactionFor(RouterTransactionImpl.java:148) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$0(RouterTransactionImpl.java:134) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.startReadingTransaction(RouterTransactionImpl.java:386) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.registerNewChildTransaction(RouterTransactionImpl.java:361) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.lambda$transactionFor$1(RouterTransactionImpl.java:133) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at java.util.HashMap.computeIfAbsent(HashMap.java:1220) ~[?:?]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.transactionFor(RouterTransactionImpl.java:131) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionContextImpl.transactionFor(RouterTransactionContextImpl.java:64) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.QueryRouterImpl.executeQuery(QueryRouterImpl.java:276) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.executeQuery(QueryRouterBoltSpi.java:160) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.run(TransactionImpl.java:136) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CreateStatementStateTransition.process(CreateStatementStateTransition.java:48) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 13 more
Caused by: org.neo4j.internal.kernel.api.exceptions.TransactionApplyKernelException: Failed to apply transaction: Transaction #7 {started 2025-03-17 10:56:18.898+0000, committed 2025-03-17 10:56:18.958+0000, with 5 commands in this transaction, lease -1, latest committed transaction id when started was 3, consensusIndex: -1}
at org.neo4j.internal.recordstorage.RecordStorageEngine.apply(RecordStorageEngine.java:557) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.applyToStore(InternalTransactionCommitProcess.java:102) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.commit(InternalTransactionCommitProcess.java:73) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.DatabaseTransactionCommitProcess.commit(DatabaseTransactionCommitProcess.java:45) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.commit.DefaultCommitter.commit(DefaultCommitter.java:118) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commitTransaction(KernelTransactionImplementation.java:1106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction(KernelTransactionImplementation.java:992) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:965) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.lambda$commit$0(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.safeTerminalOperation(TransactionImpl.java:333) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:176) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.lambda$commit$0(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.translateLocalError(LocalDatabaseTransaction.java:162) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.commit(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.doOnChildren(RouterTransactionImpl.java:348) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.commit(RouterTransactionImpl.java:253) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.commit(QueryRouterBoltSpi.java:165) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.commit(TransactionImpl.java:180) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:49) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:32) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 12 more
Caused by: java.lang.IllegalStateException: Property existence constraint requires Neo4j Enterprise Edition
at org.neo4j.kernel.impl.constraints.StandardConstraintSemantics.readConstraint(StandardConstraintSemantics.java:143) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.internal.schema.SchemaCache$SchemaCacheState.addSchemaRule(SchemaCache.java:518) ~[neo4j-storage-engine-util-5.26.3.jar:5.26.3]
at org.neo4j.internal.schema.SchemaCache.addSchemaRule(SchemaCache.java:138) ~[neo4j-storage-engine-util-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.BridgingCacheAccess.addSchemaRule(BridgingCacheAccess.java:41) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.NeoStoreTransactionApplier.onSchemaRuleChange(NeoStoreTransactionApplier.java:155) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.NeoStoreTransactionApplier.visitSchemaRuleCommand(NeoStoreTransactionApplier.java:147) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.Command$SchemaRuleCommand.handle(Command.java:454) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.TransactionApplierFacade.visit(TransactionApplierFacade.java:49) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.TransactionApplierFacade.visit(TransactionApplierFacade.java:32) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.transaction.log.CompleteCommandBatch.accept(CompleteCommandBatch.java:77) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.internal.recordstorage.RecordStorageEngine.apply(RecordStorageEngine.java:551) ~[neo4j-record-storage-engine-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.applyToStore(InternalTransactionCommitProcess.java:102) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.commit(InternalTransactionCommitProcess.java:73) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.DatabaseTransactionCommitProcess.commit(DatabaseTransactionCommitProcess.java:45) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.commit.DefaultCommitter.commit(DefaultCommitter.java:118) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commitTransaction(KernelTransactionImplementation.java:1106) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction(KernelTransactionImplementation.java:992) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:965) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.lambda$commit$0(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.safeTerminalOperation(TransactionImpl.java:333) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:181) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:176) ~[neo4j-kernel-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.lambda$commit$0(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.translateLocalError(LocalDatabaseTransaction.java:162) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.database.LocalDatabaseTransaction.commit(LocalDatabaseTransaction.java:100) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.doOnChildren(RouterTransactionImpl.java:348) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.transaction.RouterTransactionImpl.commit(RouterTransactionImpl.java:253) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.router.impl.bolt.QueryRouterBoltSpi$Transaction.commit(QueryRouterBoltSpi.java:165) ~[neo4j-query-router-5.26.3.jar:5.26.3]
at org.neo4j.bolt.tx.TransactionImpl.commit(TransactionImpl.java:180) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:49) ~[neo4j-bolt-5.26.3.jar:5.26.3]
at org.neo4j.bolt.protocol.common.fsm.transition.transaction.CommitTransactionalStateTransition.process(CommitTransactionalStateTransition.java:32) ~[neo4j-bolt-5.26.3.jar:5.26.3]
... 12 more
Docker command used to run neo4j
docker run \
-p7474:7474 -p7687:7687 \
-v $HOME/neo4j/data:/data \
-v $HOME/neo4j/logs:/logs \
-v $HOME/neo4j/import:/var/lib/neo4j/import \
-v $HOME/neo4j/plugins:/plugins \
--env NEO4J_AUTH=neo4j/password \
--env NEO4J_PLUGINS='["apoc"]' \
--env NEO4J_apoc_export_file_enabled=true \
--env NEO4J_apoc_import_file_enabled=true \
--env NEO4J_dbms_security_procedures_unrestricted='*' \
graphstack/dozerdb:5.26.3.0
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels