Search code examples
neo4jspring-data-neo4j-4neo4j-ogm

Neo4j 3.1.2 Database has encountered some p*oblem, please perform necessary action (tx recovery/restart)


I have moved to Neo4j 3.1.2 and already a few times I have encountered the following database issue with no any changes in my application:

Caused by: java.lang.RuntimeException: org.neo4j.ogm.exception.TransactionException: Database has encountered some problem, please perform necessary action (tx recovery/restart)
        at org.neo4j.ogm.drivers.bolt.request.BoltRequest.executeRequest(BoltRequest.java:175)
        at org.neo4j.ogm.drivers.bolt.request.BoltRequest.execute(BoltRequest.java:89)
        at org.neo4j.ogm.autoindex.AutoIndexManager.assertIndexes(AutoIndexManager.java:170)
        at org.neo4j.ogm.autoindex.AutoIndexManager.build(AutoIndexManager.java:92)
        at org.neo4j.ogm.session.SessionFactory.<init>(SessionFactory.java:45)
        at org.neo4j.ogm.session.SessionFactory.<init>(SessionFactory.java:62)
        at com.example.domain.api.configuration.Neo4jConfig.sessionFactory(Neo4jConfig.java:26)
        at com.example.domain.api.configuration.Neo4jConfig$$EnhancerBySpringCGLIB$$93871c91.CGLIB$sessionFactory$0(<generated>)
        at com.example.domain.api.configuration.Neo4jConfig$$EnhancerBySpringCGLIB$$93871c91$$FastClassBySpringCGLIB$$8bc180c.invoke(<generated>)
        at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
        at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:358)
        at com.example.domain.api.configuration.Neo4jConfig$$EnhancerBySpringCGLIB$$93871c91.sessionFactory(<generated>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
        ... 131 common frames omitted

What can be a reason of this ?

UPDATED

This is my Neo4j database logs


Solution

  • Oh, this time this was caused by a known (although considered very rare) issue:

    org.neo4j.graphdb.TransactionFailureException: Database has encountered some problem, please perform necessary action (tx recovery/restart)
        at org.neo4j.kernel.impl.factory.ClassicCoreSPI.beginTransaction(ClassicCoreSPI.java:181)
        at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransactionInternal(GraphDatabaseFacade.java:578)
        at org.neo4j.kernel.impl.factory.GraphDatabaseFacade.beginTransaction(GraphDatabaseFacade.java:383)
        at org.neo4j.bolt.v1.runtime.TransactionStateMachineSPI.beginTransaction(TransactionStateMachineSPI.java:95)
        at org.neo4j.bolt.v1.runtime.TransactionStateMachine$State$1.run(TransactionStateMachine.java:184)
        at org.neo4j.bolt.v1.runtime.TransactionStateMachine.run(TransactionStateMachine.java:77)
        at org.neo4j.bolt.v1.runtime.BoltStateMachine$State$2.run(BoltStateMachine.java:396)
        at org.neo4j.bolt.v1.runtime.BoltStateMachine.run(BoltStateMachine.java:196)
        at org.neo4j.bolt.v1.messaging.BoltMessageRouter.lambda$onRun$3(BoltMessageRouter.java:80)
        at org.neo4j.bolt.v1.runtime.concurrent.RunnableBoltWorker.execute(RunnableBoltWorker.java:135)
        at org.neo4j.bolt.v1.runtime.concurrent.RunnableBoltWorker.run(RunnableBoltWorker.java:89)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: org.neo4j.kernel.api.exceptions.TransactionFailureException: Database has encountered some problem, please perform necessary action (tx recovery/restart)
        at sun.reflect.GeneratedConstructorAccessor46.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
        at org.neo4j.kernel.internal.DatabaseHealth.assertHealthy(DatabaseHealth.java:62)
        at org.neo4j.kernel.impl.api.Kernel.newTransaction(Kernel.java:99)
        at org.neo4j.kernel.impl.factory.ClassicCoreSPI.beginTransaction(ClassicCoreSPI.java:173)
        ... 11 more
    Caused by: java.lang.IllegalStateException: Concurrent drop() while updates have not completed
        at org.neo4j.kernel.impl.api.index.ContractCheckingIndexProxy.ensureNoOpenCalls(ContractCheckingIndexProxy.java:187)
        at org.neo4j.kernel.impl.api.index.ContractCheckingIndexProxy.drop(ContractCheckingIndexProxy.java:144)
        at org.neo4j.kernel.impl.api.index.IndexingService.dropIndex(IndexingService.java:611)
        at org.neo4j.kernel.impl.transaction.command.IndexBatchTransactionApplier$SingleTransactionApplier.visitSchemaRuleCommand(IndexBatchTransactionApplier.java:248)
        at org.neo4j.kernel.impl.transaction.command.Command$SchemaRuleCommand.handle(Command.java:645)
        at org.neo4j.kernel.impl.api.TransactionApplierFacade.visit(TransactionApplierFacade.java:61)
        at org.neo4j.kernel.impl.api.TransactionApplierFacade.visit(TransactionApplierFacade.java:35)
        at org.neo4j.kernel.impl.transaction.log.PhysicalTransactionRepresentation.accept(PhysicalTransactionRepresentation.java:69)
        at org.neo4j.kernel.impl.api.TransactionToApply.accept(TransactionToApply.java:111)
        at org.neo4j.kernel.impl.storageengine.impl.recordstorage.RecordStorageEngine.apply(RecordStorageEngine.java:349)
        at org.neo4j.kernel.impl.api.TransactionRepresentationCommitProcess.applyToStore(TransactionRepresentationCommitProcess.java:78)
        at org.neo4j.kernel.impl.api.TransactionRepresentationCommitProcess.commit(TransactionRepresentationCommitProcess.java:51)
        at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:608)
        at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction(KernelTransactionImplementation.java:484)
        at org.neo4j.kernel.api.KernelTransaction.close(KernelTransaction.java:135)
        at org.neo4j.bolt.v1.runtime.TransactionStateMachine$State.closeTransaction(TransactionStateMachine.java:325)
        at org.neo4j.bolt.v1.runtime.TransactionStateMachine$State$2.run(TransactionStateMachine.java:229)
        ... 7 more
    

    Ideally it will be fixed soon. And I'm not sure how to get out of it w/o restarting server.