You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Mete Atamel (JIRA)" <ji...@apache.org> on 2013/01/22 13:54:14 UTC

[jira] [Created] (OAK-577) Incorrect usage of WriteResult#getError/getLastError

Mete Atamel created OAK-577:
-------------------------------

             Summary: Incorrect usage of WriteResult#getError/getLastError
                 Key: OAK-577
                 URL: https://issues.apache.org/jira/browse/OAK-577
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: mongomk
            Reporter: Mete Atamel
            Priority: Minor


When running MongoMKBranchMergeTest#concurrentNonConflictingMerges with high number of threads (>20), I sometimes see the following Mongo exception:

Caused by: java.lang.IllegalStateException: The connection may have been used since this write, cannot obtain a result
	at com.mongodb.WriteResult.getLastError(WriteResult.java:100)
	at com.mongodb.WriteResult.getLastError(WriteResult.java:73)
	at com.mongodb.WriteResult.getField(WriteResult.java:141)
	at com.mongodb.WriteResult.getError(WriteResult.java:118)
	at org.apache.jackrabbit.mongomk.impl.command.CommitCommandNew.markAsFailed(CommitCommandNew.java:364)
	at 

According to this link [0], this is due to updating a collection without WriteConcern.SAFE and then calling WriteResult#getLastError. That's exactly what we do with commit collection. We need to change MongoMK code to update commit collection with WriteConcern.SAFE.

[0] https://groups.google.com/d/topic/mongodb-user/xzw0Cb831VY/discussion

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira