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 "Arek Kita (JIRA)" <ji...@apache.org> on 2016/11/21 12:28:58 UTC
[jira] [Created] (OAK-5133) StoreArgument class getter method opens
repo in read/write and unsafe MMAP mode
Arek Kita created OAK-5133:
------------------------------
Summary: StoreArgument class getter method opens repo in read/write and unsafe MMAP mode
Key: OAK-5133
URL: https://issues.apache.org/jira/browse/OAK-5133
Project: Jackrabbit Oak
Issue Type: Bug
Components: upgrade
Affects Versions: 1.5.13
Reporter: Arek Kita
Priority: Critical
Fix For: 1.6
It seems that the getter method {{hasExternalBlobReferences()}} for a few implementations in scope of [the following commit|https://github.com/apache/jackrabbit-oak/commit/1cb749f87611e195515bf5998cbbedb0b9523c13#diff-f61fc3093dd3b539184a71f6dc5ab9b8R105] introduced a full source repo access routine that can cause serious lock issues (especially when opened in MMAP mode for Windows environments).
Moreover, reinitialisation of {{StoreArguments}} leads to [OverlappingFileLockException|https://docs.oracle.com/javase/7/docs/api/java/nio/channels/OverlappingFileLockException.html].
Such getter method should only open repository in read only mode (using {{buildReadOnly()}} of [FileStoreBuilder|https://github.com/apache/jackrabbit-oak/blob/trunk/oak-segment/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java#L392]) method.
Considering setting MMAP always to false might be also a good idea to avoid buffer leakages (as getter should require as few features as possible) to be compatible.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)