Reputation: 11
We are using Neo4j2.0.1 on RHEL (jdk 1.7.. 51) - we invoke GraphDatabaseService.shutDown() on one synchronized thread, and this method never returns or throws any exception.
Other threads concurrently trying to access graph encounter this exception on beginTran()
org.neo4j.graphdb.TransactionFailureException: Database is currently not available. No blocking components
at org.neo4j.kernel.InternalAbstractGraphDatabase.beginTx(InternalAbstractGraphDatabase.java:944)
at org.neo4j.kernel.TransactionBuilderImpl.begin(TransactionBuilderImpl.java:43)
at net.ahm.graph.EmbeddedDBService.beginTx(EmbeddedDBService.java:275)
at net.ahm.cm.graph.SummaryForPatientDAO.process(SummaryForPatientDAO.java:29)
at net.ahm.cm.handlers.admin.GetSummaryPatientInfoMessageHandlerImpl.processAction(GetSummaryPatientInfoMessageHandlerImpl.java:15)
at net.ahm.cm.handlers.common.BaseCareTeamHandler.doWork(BaseCareTeamHandler.java:46)
at net.ahm.cm.handlers.common.CareTeamServicesHandler.processService(CareTeamServicesHandler.java:197)
at net.ahm.cm.thrift.services.common.CareTeamServices$Processor$processService.getResult(CareTeamServices.java:178)
at net.ahm.cm.thrift.services.common.CareTeamServices$Processor$processService.getResult(CareTeamServices.java:162)
at org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)
at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)
at org.apache.thrift.TMultiplexedProcessor.process(TMultiplexedProcessor.java:123)
at org.apache.thrift.server.AbstractNonblockingServer$FrameBuffer.invoke(AbstractNonblockingServer.java:516)
at org.apache.thrift.server.Invocation.run(Invocation.java:18)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
What could be the possible reasons due to which the shutDown() method will block almost for ever. Please advice.
Upvotes: 1
Views: 473
Reputation: 4798
I've had a similar issue just a couple hours ago, when I accidentally made a call to db.shutdown()
on a GraphDatabaseService
instance and tried calling other methods on the same instance afterwards. Maybe you can post some code so we obtain more information to reason about. By far the most probable cause of your issue is what I described.
Upvotes: 1