[
https://issues.apache.org/jira/browse/OAK-7101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16311131#comment-16311131
]
Julian Reschke commented on OAK-7101:
-------------------------------------
Tried:
{noformat}
---
src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
(Revision 1820046)
+++
src/main/java/org/apache/jackrabbit/oak/plugins/document/rdb/RDBDocumentStore.java
(Arbeitskopie)
@@ -1693,13 +1693,12 @@
if (lastmodified == row.getModified() && lastmodified >= 1) {
if (modCount <= cachedModCount) {
// we can use the cached document
- Lock lock = locks.acquire(row.getId());
+ Lock lock = locks.acquire(id);
try {
if (qp.mayUpdate(id)) {
inCache.markUpToDate(now);
}
- }
- finally {
+ } finally {
lock.unlock();
}
return castAsT(inCache);
@@ -1710,11 +1709,15 @@
NodeDocument fresh = (NodeDocument) convertFromDBObject(collection,
row);
fresh.seal();
- if (!qp.mayUpdate(id)) {
- return castAsT(fresh);
+ Lock lock = locks.acquire(id);
+ try {
+ if (qp.mayUpdate(id)) {
+ nodesCache.putIfNewer(fresh);
+ }
+ } finally {
+ lock.unlock();
}
- nodesCache.putIfNewer(fresh);
return castAsT(fresh);
}
{noformat}
but test continues to fail...
> Stale documents in RDBDocumentStore cache
> -----------------------------------------
>
> Key: OAK-7101
> URL: https://issues.apache.org/jira/browse/OAK-7101
> Project: Jackrabbit Oak
> Issue Type: Bug
> Components: rdbmk
> Affects Versions: 1.0, 1.4.0, 1.6.0, 1.2.0
> Reporter: Marcel Reutegger
> Assignee: Julian Reschke
> Fix For: 1.0.40, 1.4.19, 1.6.8, 1.8, 1.2.28, 1.7.15
>
> Attachments: OAK-7101.patch, oak-7101.png, query-lock.diff
>
>
> Concurrent query and update operations on RDBDocumentStore may result in
> stale entries in the document cache.
> Potentially related issues are OAK-5387 and OAK-6062.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)