[
https://issues.apache.org/jira/browse/OAK-1641?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14113526#comment-14113526
]
Chetan Mehrotra commented on OAK-1641:
--------------------------------------
bq. This may have to do with the findAndModify() command we use. It is not
possible to pass a write concern and the docs say the default write concern is
used. I'm not sure if this refers to the default in general (ACKNOWLEDGED) or
the current default set on the collection in the driver. AFAICS the Java driver
does not pick up the current write concern of the collection when it executes a
command.
Yes that appears to be the case
[SERVER-6558|https://jira.mongodb.org/browse/SERVER-6558] and
[here|https://groups.google.com/forum/#!topic/mongodb-user/bxeLmARsupk]. And
from
[SO|http://stackoverflow.com/questions/23475081/mongodb-findandmodify-with-writeconcern]
bq The MongoDB Java Driver is a Wrapper to access the MongoDB shell commands
from inside of your java code. DBCollection#findAndModify does not provide a
flag to force a WriteConcern for a single operation. *So this Operation uses
the default setting of the mongod instance it is writing to.*
> Mongo: Un-/CheckedExecutionException on replica-primary crash
> -------------------------------------------------------------
>
> Key: OAK-1641
> URL: https://issues.apache.org/jira/browse/OAK-1641
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: mongomk
> Affects Versions: 0.19
> Environment: 0.20-SNAPSHOT as of March 28, 2014
> Reporter: Stefan Egli
> Assignee: Marcel Reutegger
> Attachments: ReplicaCrashResilienceTest.java,
> ReplicaCrashResilienceTest.java, mongoUrl_fixture_patch_oak1641.diff
>
>
> Testing with a mongo replicaSet setup: 1 primary, 1 secondary and 1
> secondary-arbiter-only.
> Running a simple test which has 2 threads: a writer thread and a reader
> thread.
> The following exception occurs when crashing mongo primary
> {code}
> com.google.common.util.concurrent.UncheckedExecutionException:
> com.google.common.util.concurrent.UncheckedExecutionException:
> com.mongodb.MongoException$Network: Read operation to server
> localhost/127.0.0.1:12322 failed on database resilienceTest
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
> at com.google.common.cache.LocalCache.get(LocalCache.java:3932)
> at
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4721)
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.getNode(DocumentNodeStore.java:593)
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeState.hasChildNode(DocumentNodeState.java:164)
> at
> org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder.hasChildNode(MemoryNodeBuilder.java:301)
> at
> org.apache.jackrabbit.oak.core.SecureNodeBuilder.hasChildNode(SecureNodeBuilder.java:299)
> at
> org.apache.jackrabbit.oak.plugins.tree.AbstractTree.hasChild(AbstractTree.java:267)
> at
> org.apache.jackrabbit.oak.core.MutableTree.getChild(MutableTree.java:147)
> at org.apache.jackrabbit.oak.util.TreeUtil.getTree(TreeUtil.java:171)
> at
> org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.getTree(NodeDelegate.java:865)
> at
> org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate.getChild(NodeDelegate.java:339)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:274)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl$5.perform(NodeImpl.java:1)
> at
> org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.perform(SessionDelegate.java:308)
> at
> org.apache.jackrabbit.oak.jcr.session.ItemImpl.perform(ItemImpl.java:113)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:253)
> at
> org.apache.jackrabbit.oak.jcr.session.NodeImpl.addNode(NodeImpl.java:238)
> at
> org.apache.jackrabbit.oak.run.ReplicaCrashResilienceTest$1.run(ReplicaCrashResilienceTest.java:103)
> at java.lang.Thread.run(Thread.java:695)
> Caused by: com.google.common.util.concurrent.UncheckedExecutionException:
> com.mongodb.MongoException$Network: Read operation to server
> localhost/127.0.0.1:12322 failed on database resilienceTest
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2199)
> at com.google.common.cache.LocalCache.get(LocalCache.java:3932)
> at
> com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4721)
> at
> org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.find(MongoDocumentStore.java:267)
> at
> org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.find(MongoDocumentStore.java:234)
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.readNode(DocumentNodeStore.java:802)
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$3.call(DocumentNodeStore.java:596)
> at
> org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore$3.call(DocumentNodeStore.java:1)
> at
> com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4724)
> at
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
> at
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
> at
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
> ... 19 more
> Caused by: com.mongodb.MongoException$Network: Read operation to server
> localhost/127.0.0.1:12322 failed on database resilienceTest
> at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:253)
> at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:264)
> at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:264)
> at com.mongodb.DBTCPConnector.call(DBTCPConnector.java:216)
> at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:288)
> at com.mongodb.DBApiLayer$MyCollection.__find(DBApiLayer.java:273)
> at com.mongodb.DBCollection.findOne(DBCollection.java:728)
> at com.mongodb.DBCollection.findOne(DBCollection.java:670)
> at
> org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore.findUncached(MongoDocumentStore.java:304)
> at
> org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore$1.call(MongoDocumentStore.java:270)
> at
> org.apache.jackrabbit.oak.plugins.document.mongo.MongoDocumentStore$1.call(MongoDocumentStore.java:1)
> at
> com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4724)
> at
> com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3522)
> at
> com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2315)
> at
> com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2278)
> at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2193)
> ... 31 more
> Caused by: java.net.ConnectException: Connection refused
> at java.net.PlainSocketImpl.socketConnect(Native Method)
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:382)
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:241)
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:228)
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:431)
> at java.net.Socket.connect(Socket.java:527)
> at com.mongodb.DBPort._open(DBPort.java:223)
> at com.mongodb.DBPort.go(DBPort.java:125)
> at com.mongodb.DBPort.call(DBPort.java:92)
> at com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:244)
> ... 46 more{code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)