JVM崩溃后来自Neo4J的InvalidRecordException

yby*_*yby 6 java crash neo4j

我在CentOS上运行Neo4J 1.8嵌入式Java 6.

在JVM崩溃后,我开始得到以下几个例外:

org.neo4j.graphdb.NotFoundException: Unable to load one or more relationships from Node[1169385]. This usually happens when relationships are deleted by someone else just as we are about to load them. Please try again.
        at org.neo4j.kernel.impl.core.NodeImpl.loadMoreRelationshipsFromNodeManager(NodeImpl.java:530)
        at org.neo4j.kernel.impl.core.NodeImpl.getMoreRelationships(NodeImpl.java:415)
        at org.neo4j.kernel.impl.core.NodeImpl.loadInitialRelationships(NodeImpl.java:368)
        at org.neo4j.kernel.impl.core.NodeImpl.ensureRelationshipMapNotNull(NodeImpl.java:345)
        at org.neo4j.kernel.impl.core.NodeImpl.getAllRelationshipsOfType(NodeImpl.java:195)
        at org.neo4j.kernel.impl.core.NodeImpl.getRelationships(NodeImpl.java:247)
        at org.neo4j.kernel.impl.core.NodeProxy.getRelationships(NodeProxy.java:92)
        at com.bizya.polosvc.neo4j.model.PersonImpl.getAllSelvesNoPropsLoad(PersonImpl.java:1303)
        at com.bizya.polosvc.neo4j.model.PathsFinderImpl.findPaths(PathsFinderImpl.java:189)
        at com.bizya.polosvc.neo4j.model.PathsFinderImpl.findPaths(PathsFinderImpl.java:49)
        at com.bizya.server.services.ReachabilityService.findReachabilities(ReachabilityService.java:82)
        at com.bizya.server.widget.BrowsingPageBuilder.buildAdditionalResultsModel(BrowsingPageBuilder.java:97)
        at com.bizya.server.widget.ContextBrowsingPageBuilder.buildAdditionalResultsModel(ContextBrowsingPageBuilder.java:81)
        at com.bizya.server.widget.ContextBrowsingPageBuilder.buildAdditionalResultsModel(ContextBrowsingPageBuilder.java:71)
        at com.bizya.server.widget.servlet.NetworkServlet.doGet(NetworkServlet.java:139)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
        at com.bizya.server.widget.servlet.MasterWidgetServlet.handleAuthorizedUser(MasterWidgetServlet.java:167)
        at com.bizya.server.widget.servlet.MasterWidgetServlet.service(MasterWidgetServlet.java:150)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
        at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
        at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
        at com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:168)
        at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:58)
        at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
        at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:429)
        at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:384)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
        at java.lang.Thread.run(Thread.java:662)
Caused by: org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Node[1169385] is neither firstNode[969258] nor secondNode[1170375] for Relationship[3477951]
        at org.neo4j.kernel.impl.nioneo.xa.ReadTransaction.getMoreRelationships(ReadTransaction.java:167)
        at org.neo4j.kernel.impl.nioneo.xa.ReadTransaction.getMoreRelationships(ReadTransaction.java:105)
        at org.neo4j.kernel.impl.persistence.PersistenceManager.getMoreRelationships(PersistenceManager.java:108)
        at org.neo4j.kernel.impl.core.NodeManager.getMoreRelationships(NodeManager.java:608)
        at org.neo4j.kernel.impl.core.NodeImpl.loadMoreRelationshipsFromNodeManager(NodeImpl.java:527)
        ... 38 more
Run Code Online (Sandbox Code Playgroud)

我得到了一些具有不同ID的人.

尝试加载特定节点时,这些异常是一致的,我确定我没有删除任何关系.在命令行shell中检查这些节点时,我得到相同的错误(org.neo4j.graphdb.NotFoundException:无法加载一个或多个关系...).

这似乎是某种腐败.有关如何修复它的任何建议?

Fro*_*ire 4

鉴于您已经尝试过的操作以及 JVM 崩溃后持续遇到的问题,您可能需要研究一下 Neo4J 1.8 中是否存在可能导致您出现问题的错误。这可能是由您的关系标识符引起的,就像例一样。不幸的是,1.8 版本有一个错误。您可能需要考虑升级到 1.9 或使用我发布的链接中接受的答案中建议的解决方法。

希望这能为您指明正确的方向!祝你编码好运!