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)