【发布时间】:2016-06-20 14:12:45
【问题描述】:
我正在使用 2G RAM 的 Linux VM 中使用 Structr。我执行了一个查询并使系统崩溃。重新启动平台的尝试失败了,嵌入式数据库出现以下错误,所以我正在寻找可能发生的事情的提示。
2016-03-07 05:19:19.235+0000 INFO [org.neo4j]:版本 0 的日志需要恢复 2016-03-07 05:19:36.119+0000 错误 [org.neo4j]:设置 TM 不正确。内核遇到问题,请执行必要的操作(tx recovery/restart) null java.lang.NullPointerException 在 org.neo4j.index.impl.lucene.IndexType.instantiateField(IndexType.java:318) 在 org.neo4j.index.impl.lucene.IndexType$1.addToDocument(IndexType.java:63) 在 org.neo4j.index.impl.lucene.LuceneCommandApplier.visitIndexAddRelationshipCommand(LuceneCommandApplier.java:79) 在 org.neo4j.kernel.impl.api.LegacyIndexApplier.visitIndexAddRelationshipCommand(LegacyIndexApplier.java:143) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visitIndexAddRelationshipCommand(CommandApplierFacade.java:246) 在 org.neo4j.kernel.impl.index.IndexCommand$AddRelationshipCommand.handle(IndexCommand.java:236) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:82) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:45) 在 org.neo4j.kernel.impl.transaction.log.PhysicalTransactionRepresentation.accept(PhysicalTransactionRepresentation.java:69) 在 org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier.apply(TransactionRepresentationStoreApplier.java:111) 在 org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:70) 在 org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:36) 在 org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:54) 在 org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:32) 在 org.neo4j.kernel.Recovery.init(Recovery.java:78) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:502) 在 org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:72) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:106) 在 org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:579) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:117) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:330) 在 org.neo4j.kernel.EmbeddedGraphDatabase.(EmbeddedGraphDatabase.java:59) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory.newDatabase(GraphDatabaseFactory.java:108) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:95) 在 org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:185) 在 org.structr.neo4j.Neo4jDatabaseService.initialize(Neo4jDatabaseService.java:130) 在 org.structr.core.graph.NodeService.initialize(NodeService.java:115) 在 org.structr.core.Services.createService(Services.java:550) 在 org.structr.core.Services.initialize(Services.java:325) 在 org.structr.core.Services.initialize(Services.java:297) 在 org.structr.core.Services.getInstance(Services.java:145) 在 org.structr.Server.main(Server.java:36) 2016-03-07 05:19:36.300+0000 错误 [org.neo4j]:启动数据源时发生异常。试图关闭事物。组件 'org.neo4j.kernel.Recovery@245b6b85' 未能初始化。请参阅附件原因异常。 org.neo4j.kernel.lifecycle.LifecycleException:组件 'org.neo4j.kernel.Recovery@245b6b85' 未能初始化。请参阅附件原因异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:508) 在 org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:72) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:106) 在 org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:579) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:117) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:330) 在 org.neo4j.kernel.EmbeddedGraphDatabase.(EmbeddedGraphDatabase.java:59) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory.newDatabase(GraphDatabaseFactory.java:108) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:95) 在 org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:185) 在 org.structr.neo4j.Neo4jDatabaseService.initialize(Neo4jDatabaseService.java:130) 在 org.structr.core.graph.NodeService.initialize(NodeService.java:115) 在 org.structr.core.Services.createService(Services.java:550) 在 org.structr.core.Services.initialize(Services.java:325) 在 org.structr.core.Services.initialize(Services.java:297) 在 org.structr.core.Services.getInstance(Services.java:145) 在 org.structr.Server.main(Server.java:36) 引起:java.lang.NullPointerException 在 org.neo4j.index.impl.lucene.IndexType.instantiateField(IndexType.java:318) 在 org.neo4j.index.impl.lucene.IndexType$1.addToDocument(IndexType.java:63) 在 org.neo4j.index.impl.lucene.LuceneCommandApplier.visitIndexAddRelationshipCommand(LuceneCommandApplier.java:79) 在 org.neo4j.kernel.impl.api.LegacyIndexApplier.visitIndexAddRelationshipCommand(LegacyIndexApplier.java:143) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visitIndexAddRelationshipCommand(CommandApplierFacade.java:246) 在 org.neo4j.kernel.impl.index.IndexCommand$AddRelationshipCommand.handle(IndexCommand.java:236) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:82) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:45) 在 org.neo4j.kernel.impl.transaction.log.PhysicalTransactionRepresentation.accept(PhysicalTransactionRepresentation.java:69) 在 org.neo5j.kernel.impl.api.TransactionRepresentationStoreApplier.apply(TransactionRepresentationStoreApplier.java:111)结构日志有这个:
2016 年 3 月 7 日上午 12:19:16 org.structr.core.Services 初始化 信息:启动服务 2016 年 3 月 7 日上午 12:19:16 org.structr.neo4j.Neo4jDatabaseService 初始化 信息:关系缓存大小设置为 10,000 2016 年 3 月 7 日上午 12:19:16 org.structr.neo4j.Neo4jDatabaseService 初始化 信息:节点缓存大小设置为 10,000 2016 年 3 月 7 日上午 12:19:16 org.structr.neo4j.Neo4jDatabaseService 初始化 信息:正在初始化数据库 (./db) ... java.lang.RuntimeException:启动 org.neo4j.kernel.EmbeddedGraphDatabase 时出错,/usr/local/download/structr/binaries/structr-ui-2.0-SNAPSHOT-201603060822.5403e4/./db 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:334) 在 org.neo4j.kernel.EmbeddedGraphDatabase.(EmbeddedGraphDatabase.java:59) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory.newDatabase(GraphDatabaseFactory.java:108) 在 org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:95) 在 org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:185) 在 org.structr.neo4j.Neo4jDatabaseService.initialize(Neo4jDatabaseService.java:130) 在 org.structr.core.graph.NodeService.initialize(NodeService.java:115) 在 org.structr.core.Services.createService(Services.java:550) 在 org.structr.core.Services.initialize(Services.java:325) 在 org.structr.core.Services.initialize(Services.java:297) 在 org.structr.core.Services.getInstance(Services.java:145) 在 org.structr.Server.main(Server.java:36) 原因:org.neo4j.kernel.lifecycle.LifecycleException: 组件 'org.neo4j.kernel.impl.transaction.state.DataSourceManager@162be846' 已成功初始化,但无法启动。请参阅附件原因异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:532) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:330) ... 11 更多 原因:org.neo4j.kernel.lifecycle.LifecycleException:组件'org.neo4j.kernel.NeoStoreDataSource@191a8997'已成功初始化,但无法启动。请参阅附件原因异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:532) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) 在 org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:117) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) ... 13 更多 原因:org.neo4j.kernel.lifecycle.LifecycleException:组件“org.neo4j.kernel.Recovery@245b6b85”初始化失败。请参阅附件原因异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:508) 在 org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:72) 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:106) 在 org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:579) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) ... 16 更多 引起:java.lang.NullPointerException 在 org.neo4j.index.impl.lucene.IndexType.instantiateField(IndexType.java:318) 在 org.neo4j.index.impl.lucene.IndexType$1.addToDocument(IndexType.java:63) 在 org.neo4j.index.impl.lucene.LuceneCommandApplier.visitIndexAddRelationshipCommand(LuceneCommandApplier.java:79) 在 org.neo4j.kernel.impl.api.LegacyIndexApplier.visitIndexAddRelationshipCommand(LegacyIndexApplier.java:143) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visitIndexAddRelationshipCommand(CommandApplierFacade.java:246) 在 org.neo4j.kernel.impl.index.IndexCommand$AddRelationshipCommand.handle(IndexCommand.java:236) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:82) 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:45) 在 org.neo4j.kernel.impl.transaction.log.PhysicalTransactionRepresentation.accept(PhysicalTransactionRepresentation.java:69) 在 org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier.apply(TransactionRepresentationStoreApplier.java:111) 在 org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:70) 在 org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:36) 在 org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:54) 在 org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:32) 在 org.neo4j.kernel.Recovery.init(Recovery.java:78) 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:502) ... 20 更多 2016 年 3 月 7 日上午 12:19:36 org.structr.core.Services createService 严重:重要服务 NodeService 无法启动:启动 org.neo4j.kernel.EmbeddedGraphDatabase 时出错,/usr/local/download/structr/binaries/structr-ui-2.0-SNAPSHOT-201603060822.5403e4/./db。中止这是我尝试使用 2.2.8 Neo4j 社区程序启动数据库时得到的。在这两种情况下,它都会在某种“空指针”上失败。
正在启动 Neo4j 服务器控制台模式... 使用额外的 JVM 参数:-server -XX:+DisableExplicitGC -Dorg.neo4j.server.properties=conf/neo4j-server.properties -Djava.util.logging.config.file=conf/logging.properties -XX:+UseConcMarkSweepGC - XX:+CMSClassUnloadingEnabled -XX:-OmitStackTraceInFastThrow -XX:hashCode=5 -Dneo4j.ext.udc.source=tarball 2016-03-07 13:18:44.618+0000 INFO [API] 将启动超时设置为:基于 120000 的 120000 毫秒 检测到错误地关闭数据库,正在执行恢复.. 2016-03-07 13:19:01.274+0000 INFO [API] 成功关闭 Neo4j 服务器。 2016-03-07 13:19:01.275+0000 错误 [API] 无法在端口 [7474] 上启动 Neo Server org.neo4j.server.ServerStartupException:启动 Neo4j 服务器失败:启动 org.neo4j.kernel.EmbeddedGraphDatabase 时出错,/usr/local/download/structr/binaries/structr-ui-2.0-SNAPSHOT-201603060822.5403e4/db 在 org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:258) ~[neo4j-server-2.2.8.jar:2.2.8] 在 org.neo4j.server.Bootstrapper.start(Bootstrapper.java:117) [neo4j-server-2.2.8.jar:2.2.8] 在 org.neo4j.server.Bootstrapper.main(Bootstrapper.java:69) [neo4j-server-2.2.8.jar:2.2.8] 原因:java.lang.RuntimeException: Error started org.neo4j.kernel.EmbeddedGraphDatabase, /usr/local/download/structr/binaries/structr-ui-2.0-SNAPSHOT-201603060822.5403e4/db 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:334) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.EmbeddedGraphDatabase.(EmbeddedGraphDatabase.java:59) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.recovery.StoreRecoverer.recover(StoreRecoverer.java:96) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.server.preflight.PerformRecoveryIfNecessary.run(PerformRecoveryIfNecessary.java:65) ~[neo4j-server-2.2.8.jar:2.2.8] 在 org.neo4j.server.preflight.PreFlightTasks.run(PreFlightTasks.java:71) ~[neo4j-server-2.2.8.jar:2.2.8] 在 org.neo4j.server.AbstractNeoServer.runPreflightTasks(AbstractNeoServer.java:399) ~[neo4j-server-2.2.8.jar:2.2.8] 在 org.neo4j.server.AbstractNeoServer.start(AbstractNeoServer.java:195) ~[neo4j-server-2.2.8.jar:2.2.8] ...省略了2个常用框架 原因:org.neo4j.kernel.lifecycle.LifecycleException:组件'org.neo4j.kernel.impl.transaction.state.DataSourceManager@2de4d378'已成功初始化,但无法启动。请参阅附件原因异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:532) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:330) ~[neo4j-kernel-2.2.8.jar:2.2.8] ...省略了8个常用框架 原因:org.neo4j.kernel.lifecycle.LifecycleException:组件'org.neo4j.kernel.NeoStoreDataSource@4b9b15'已成功初始化,但无法启动。请参阅附件原因异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:532) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:115) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.transaction.state.DataSourceManager.start(DataSourceManager.java:117) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) ~[neo4j-kernel-2.2.8.jar:2.2.8] ...省略了10个常用框架 原因:org.neo4j.kernel.lifecycle.LifecycleException:组件“org.neo4j.kernel.Recovery@3016120”初始化失败。请参阅附件原因异常。 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:508) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.lifecycle.LifeSupport.init(LifeSupport.java:72) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:106) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.NeoStoreDataSource.start(NeoStoreDataSource.java:579) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:526) ~[neo4j-kernel-2.2.8.jar:2.2.8] ...省略了13个常用框架 引起:java.lang.NullPointerException:null 在 org.neo4j.index.impl.lucene.IndexType.instantiateField(IndexType.java:318) ~[neo4j-lucene-index-2.2.8.jar:2.2.8] 在 org.neo4j.index.impl.lucene.IndexType$1.addToDocument(IndexType.java:63) ~[neo4j-lucene-index-2.2.8.jar:2.2.8] 在 org.neo4j.index.impl.lucene.LuceneCommandApplier.visitIndexAddRelationshipCommand(LuceneCommandApplier.java:79) ~[neo4j-lucene-index-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.api.LegacyIndexApplier.visitIndexAddRelationshipCommand(LegacyIndexApplier.java:143) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visitIndexAddRelationshipCommand(CommandApplierFacade.java:246) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.index.IndexCommand$AddRelationshipCommand.handle(IndexCommand.java:236) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:82) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.api.CommandApplierFacade.visit(CommandApplierFacade.java:45) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.transaction.log.PhysicalTransactionRepresentation.accept(PhysicalTransactionRepresentation.java:69) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.api.TransactionRepresentationStoreApplier.apply(TransactionRepresentationStoreApplier.java:111) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:70) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.transaction.state.RecoveryVisitor.visit(RecoveryVisitor.java:36) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:54) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.impl.transaction.log.LogFileRecoverer.visit(LogFileRecoverer.java:32) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.Recovery.init(Recovery.java:78) ~[neo4j-kernel-2.2.8.jar:2.2.8] 在 org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.init(LifeSupport.java:502) ~[neo4j-kernel-2.2.8.jar:2.2.8] ...省略了17个常用框架【问题讨论】:
-
你能尝试用 Neo4j 服务器启动这个数据库吗?只需下载 Neo4j 2.2.8 并将
org.neo4j.server.database.location更改为指向structr/db文件夹。 -
我已将该尝试的结果附加到此问题的末尾。
-
据我所知,它在嵌入式和下载的社区版本中都命中了一个空指针。
-
另外,这是在 2G Linux/Centos VM 上运行的。
-
我们现在可以在另一个实例上重现它,并将尝试修复它。