user3560688
user3560688

Reputation: 11

GraphDatabaseService Shutdown() not returning

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

Answers (1)

tkroman
tkroman

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

Related Questions