【问题标题】:Neo4j 3.1.2 Database has encountered some p*oblem, please perform necessary action (tx recovery/restart)Neo4j 3.1.2 数据库遇到一些问题,请执行必要的操作(tx recovery/restart)
【发布时间】:2017-03-25 17:13:50
【问题描述】:

我已移至Neo4j 3.1.2,并且已经有几次遇到以下数据库问题,但我的应用程序没有任何更改:

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

这可能是什么原因?

更新

这是我的 Neo4j 数据库logs

【问题讨论】:

  • 该堆栈跟踪中必须有更多信息,提供的信息并不能说明失败。
  • 我已经更新了堆栈跟踪
  • 所以这来自一个螺栓请求,不是吗?堆栈跟踪只是说数据库需要恢复,而不是为什么。有趣的是可以访问数据库或至少访问其logs/debug.log 以了解该数据库之前真正出了什么问题。
  • 顺便说一句,您确定该堆栈跟踪没有更多原因吗?内核恐慌(看起来像这样)通常会将原始原因添加到引发的异常
  • 为了获取日志的最大问题是我们已经删除了这个数据库文件夹(当问题出现时)并从头开始重新创建它..这是一个测试数据..所以我不确定如果可以在数据库文件夹之外的其他地方获取日志..

标签: neo4j spring-data-neo4j-4 neo4j-ogm


【解决方案1】:

哦,这一次是由一个已知​​(尽管被认为非常罕见)问题引起的:

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

理想情况下它会很快得到修复。而且我不确定如何在不重启服务器的情况下摆脱它。

【讨论】:

  • 感谢您的回答。您能否在此通知何时解决或提供此问题的 GitHub 票证?不幸的是,我经常遇到这个问题..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-30
  • 1970-01-01
  • 1970-01-01
  • 2018-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多