jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Thomas Mueller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-3911) Integer overflow causing incorrect file handling in OakDirectory for file size more than 2 GB
Date Fri, 01 Dec 2017 07:16:00 GMT

    [ https://issues.apache.org/jira/browse/OAK-3911?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16274051#comment-16274051
] 

Thomas Mueller commented on OAK-3911:
-------------------------------------

[~chetanm] could you confirm this please:
If you run into this issue, reindexing is not needed. Simply upgrade Oak to a more recent
version.

> Integer overflow causing incorrect file handling in OakDirectory for file size more than
2 GB
> ---------------------------------------------------------------------------------------------
>
>                 Key: OAK-3911
>                 URL: https://issues.apache.org/jira/browse/OAK-3911
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: lucene
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>             Fix For: 1.0.27, 1.2.11, 1.3.15, 1.4
>
>         Attachments: OAK-3911-v1.patch
>
>
> In couple of cases we have seen strange error related to invalid seek. In such cases
it was seen that file sizes are greater than 2GB. A close inspection of OakDirectory [1] shows
that following calls in loadBlob and flushBlob are prone to integer overflow (Thanks [~tmueller])
> * {{int n = (int) Math.min(blobSize, length - index * blobSize);}}
> * {{int n = (int) Math.min(blobSize, length - i * blobSize);}}
> Above both {{blobSize}} and {{index}} and {{i}} are {{int}}. And multiplication of 2
int would be int that can cause overflow.
> {noformat}Caused by: java.io.IOException: Invalid seek request
> 	at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexFile.seek(OakDirectory.java:288)
> 	at org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.seek(OakDirectory.java:418)
> 	at org.apache.lucene.codecs.BlockTreeTermsReader.seekDir(BlockTreeTermsReader.java:223)
> 	at org.apache.lucene.codecs.BlockTreeTermsReader.<init>(BlockTreeTermsReader.java:142)
> {noformat}
> [1] https://github.com/apache/jackrabbit-oak/blob/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/OakDirectory.java#L361



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Mime
View raw message