You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org> on 2011/10/07 03:40:29 UTC
[jira] [Commented] (HBASE-4488) Store could miss rows during flush
[ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13122482#comment-13122482 ]
Lars Hofhansl commented on HBASE-4488:
--------------------------------------
I see that Store.compactStore does the same thing. The same reasoning goes there, that currently we are lucky that StoreScanner.next() never returns false when more rows are waiting.
There's even a comment about a do/while loop, but then it's just a while loop.
{code}
// since scanner.next() can return 'false' but still be delivering data,
// we have to use a do/while loop.
ArrayList<KeyValue> kvs = new ArrayList<KeyValue>();
// Limit to "hbase.hstore.compaction.kv.max" (default 10) to avoid OOME
while (scanner.next(kvs,this.compactionKVMax)) {
{code}
Looking at the history of the file this has been like this forever. This is a bug waiting to happen.
Should we have another patch with this one, or a separate jira?
> Store could miss rows during flush
> ----------------------------------
>
> Key: HBASE-4488
> URL: https://issues.apache.org/jira/browse/HBASE-4488
> Project: HBase
> Issue Type: Sub-task
> Components: regionserver
> Affects Versions: 0.92.0, 0.94.0
> Reporter: Lars Hofhansl
> Assignee: Lars Hofhansl
> Fix For: 0.92.0
>
> Attachments: 4488.txt
>
>
> While looking at HBASE-4344 I found that my change HBASE-4241 contains a critical mistake:
> The while(scanner.next(kvs)) loop is incorrect and might miss the last edits.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira