jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Egli <stefane...@apache.org>
Subject Re: Oak repository using MongoDB fails to renew lease
Date Thu, 06 Jul 2017 08:13:59 GMT
Hi Michael,

This sounds like the session you're using might be referring to the closed
repository. Did you create a new session after closing + opening the
repository?

Cheers,
Stefan

On 06/07/17 07:40, "Michael Harrison" <michael_harrison@persistent.com>
wrote:

>Hi all,
>
>
>We are new to Oak. We are using an Oak repository that is supported by a
>MongoDB back end. The Mongo server is running continuously. We restart
>the Oak repository from time to time. The startup code is this, stripped
>to the essentials:
>
>
>        db = new MongoClient(mongoUrl, mongoPort).getDB(mongoDbName);
>        ns = new DocumentMK.Builder().setMongoDB(db).getNodeStore();
>        Jcr jcr = new Jcr(new Oak(ns));
>        repository = jcr.createRepository();
>
>
>When we close the Oak repository we do this:
>
>        ns.dispose();  // private DocumentNodeStore ns
>        ((RepositoryImpl)repository).shutdown();
>        db.getMongo().close();  // private com.mongo.DB db
>
>
>The observation is that when we do the following sequence of actions:
>
>
>  1.  Close the repository
>  2.  Wait for a few minutes
>  3.  Open the repository
>
>
>and then try to access the contents of the repository using
>Session.getNodeById we get the following exception:
>
>
>org.apache.jackrabbit.oak.plugins.document.DocumentStoreException: This
>oak instance failed to update the lease in time and can therefore no
>longer access this DocumentNodeStore.
>        at 
>org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo.leaseExpired(Cl
>usterNodeInfo.java:1154) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.ClusterNodeInfo.performLeaseChe
>ck(ClusterNodeInfo.java:662) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.util.LeaseCheckDocumentStoreWra
>pper.performLeaseCheck(LeaseCheckDocumentStoreWrapper.java:59)
>~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.util.LeaseCheckDocumentStoreWra
>pper.find(LeaseCheckDocumentStoreWrapper.java:65)
>~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readNode(Docu
>mentNodeStore.java:1214) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$5.call(Docume
>ntNodeStore.java:1011) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$5.call(Docume
>ntNodeStore.java:1004) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java
>:4739) ~[guava-16.0.jar:?]
>        at 
>com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalC
>ache.java:3524) ~[guava-16.0.jar:?]
>        at 
>com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2317)
>~[guava-16.0.jar:?]
>        at 
>com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java
>:2280) ~[guava-16.0.jar:?]
>        at 
>com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2195)
>~[guava-16.0.jar:?]
>        at com.google.common.cache.LocalCache.get(LocalCache.java:3934)
>~[guava-16.0.jar:?]
>        at 
>com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:47
>36) ~[guava-16.0.jar:?]
>        at 
>org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getNode(Docum
>entNodeStore.java:1004) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNodeD
>oc(DocumentNodeState.java:485) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.getChildNode(
>DocumentNodeState.java:250) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.index.property.strategy.UniqueEntryStore
>Strategy.count(UniqueEntryStoreStrategy.java:190)
>~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.index.property.strategy.UniqueEntryStore
>Strategy.count(UniqueEntryStoreStrategy.java:204)
>~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexPlan.<init>(
>PropertyIndexPlan.java:148) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.index.property.PropertyIndex.createPlan(
>PropertyIndex.java:162) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.index.property.PropertyIndex.getPlan(Pro
>pertyIndex.java:145) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.index.property.PropertyIndex.getCost(Pro
>pertyIndex.java:208) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.query.QueryImpl.getBestSelectorExecutionPlan(Que
>ryImpl.java:1035) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.query.QueryImpl.getBestSelectorExecutionPlan(Que
>ryImpl.java:976) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.query.ast.SelectorImpl.prepare(SelectorImpl.java
>:280) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.query.QueryImpl.prepare(QueryImpl.java:641)
>~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.query.QueryEngineImpl.prepareAndSelect(QueryEngi
>neImpl.java:294) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineIm
>pl.java:269) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.query.QueryEngineImpl.executeQuery(QueryEngineIm
>pl.java:229) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID
>(IdentifierManager.java:352) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID
>(IdentifierManager.java:346) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.resolveUUID
>(IdentifierManager.java:342) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getTree(Ide
>ntifierManager.java:137) ~[oak-core-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.getNodeByIdentifier
>(SessionDelegate.java:457) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.session.SessionImpl$5.perform(SessionImpl.ja
>va:322) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.session.SessionImpl$5.perform(SessionImpl.ja
>va:318) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDele
>gate.java:208) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.session.SessionImpl.getNodeById(SessionImpl.
>java:318) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.session.SessionImpl$5.perform(SessionImpl.ja
>va:322) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.session.SessionImpl$5.perform(SessionImpl.ja
>va:318) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDele
>gate.java:208) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.session.SessionImpl.getNodeById(SessionImpl.
>java:318) ~[oak-jcr-1.6.1.jar:1.6.1]
>        at 
>org.apache.jackrabbit.oak.jcr.session.SessionImpl.getNodeByIdentifier(Sess
>ionImpl.java:340) ~[oak-jcr-1.6.1.jar:1.6.1]
>
>
>How can we avoid this exception happening?
>
>Mike Harrison
>DISCLAIMER
>==========
>This e-mail may contain privileged and confidential information which is
>the property of Persistent Systems Ltd. It is intended only for the use
>of the individual or entity to which it is addressed. If you are not the
>intended recipient, you are not authorized to read, retain, copy, print,
>distribute or use this message. If you have received this communication
>in error, please notify the sender and delete all copies of this message.
>Persistent Systems Ltd. does not accept any liability for virus infected
>mails.



Mime
View raw message