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 (Created) (JIRA)" <ji...@apache.org> on 2011/09/26 23:08:15 UTC

[jira] [Created] (HBASE-4488) Store could miss rows during flush

Store could miss rows during flush
----------------------------------

                 Key: HBASE-4488
                 URL: https://issues.apache.org/jira/browse/HBASE-4488
             Project: HBase
          Issue Type: Bug
          Components: regionserver
    Affects Versions: 0.92.0, 0.94.0
            Reporter: Lars Hofhansl
            Priority: Critical


While looked at HBASE-4344 I found that my change HBASE-4241 contains a critical mistake.


--
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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "stack (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stack updated HBASE-4488:
-------------------------

    Status: Patch Available  (was: Open)

Marking patch available.
                
> 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, 0.94.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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl updated HBASE-4488:
---------------------------------

    Issue Type: Sub-task  (was: Bug)
        Parent: HBASE-4241
    
> 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
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Jonathan Gray (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13116552#comment-13116552 ] 

Jonathan Gray commented on HBASE-4488:
--------------------------------------

Can you explain what you mean Lars?  Something is wrong with HBASE-4433 or there's nothing to worry about once I commit this :)
                
> 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, 0.94.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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13114941#comment-13114941 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

The fact that this has not tripped any test (and we have quite a lot of tests that flush the store during the test) might indicate that the StoreScanner used this way only returns false from next(...) if there are no rows left. Regardless, this violates the InternalScanner contract and might cause problems in the future.
                
> Store could miss rows during flush
> ----------------------------------
>
>                 Key: HBASE-4488
>                 URL: https://issues.apache.org/jira/browse/HBASE-4488
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.0
>
>
> While looked 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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl updated HBASE-4488:
---------------------------------

    Description: 
While looked 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.


  was:
While looked at HBASE-4344 I found that my change HBASE-4241 contains a critical mistake:
The while(scanner.next(kvs)) is incorrect and might miss the last edits.


    
> Store could miss rows during flush
> ----------------------------------
>
>                 Key: HBASE-4488
>                 URL: https://issues.apache.org/jira/browse/HBASE-4488
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.0
>
>
> While looked 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13115877#comment-13115877 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

Not yet... :)
                
> 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, 0.94.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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Hudson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13116761#comment-13116761 ] 

Hudson commented on HBASE-4488:
-------------------------------

Integrated in HBase-TRUNK #2264 (See [https://builds.apache.org/job/HBase-TRUNK/2264/])
    HBASE-4488  Store could miss rows during flush (Lars H via jgray)

jgray : 
Files : 
* /hbase/trunk/CHANGES.txt
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java

                
> 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ 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

        

[jira] [Assigned] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Assigned) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl reassigned HBASE-4488:
------------------------------------

    Assignee: Lars Hofhansl
    
> Store could miss rows during flush
> ----------------------------------
>
>                 Key: HBASE-4488
>                 URL: https://issues.apache.org/jira/browse/HBASE-4488
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl updated HBASE-4488:
---------------------------------

      Description: 
While looked at HBASE-4344 I found that my change HBASE-4241 contains a critical mistake:
The while(scanner.next(kvs)) is incorrect and might miss the last edits.


  was:
While looked at HBASE-4344 I found that my change HBASE-4241 contains a critical mistake.


    Fix Version/s: 0.94.0
                   0.92.0
    
> Store could miss rows during flush
> ----------------------------------
>
>                 Key: HBASE-4488
>                 URL: https://issues.apache.org/jira/browse/HBASE-4488
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.0
>
>
> While looked at HBASE-4344 I found that my change HBASE-4241 contains a critical mistake:
> The while(scanner.next(kvs)) 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13116572#comment-13116572 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

Nothing to worry once this is committed.
Just saw that HBASE-4433 changes the conditions under which the StoreScanner still has rows while returning false.

                
> 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13123383#comment-13123383 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

I'll open another jira and fix all those.
                
> 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-add.txt, 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

        

[jira] [Resolved] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl resolved HBASE-4488.
----------------------------------

    Resolution: Fixed
    
> 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-add.txt, 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Jerry Chen (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13123379#comment-13123379 ] 

Jerry Chen commented on HBASE-4488:
-----------------------------------

I recall seeing some unit tests are written in the wrong while loop fashion as well. 
                
> 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-add.txt, 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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl updated HBASE-4488:
---------------------------------

    Priority: Major  (was: Critical)
    
> 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, 0.94.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

        

[jira] [Reopened] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Reopened) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl reopened HBASE-4488:
----------------------------------


Reopening for the related change to Store.compactStore
                
> 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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl updated HBASE-4488:
---------------------------------

    Description: 
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.


  was:
While looked 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.


    
> Store could miss rows during flush
> ----------------------------------
>
>                 Key: HBASE-4488
>                 URL: https://issues.apache.org/jira/browse/HBASE-4488
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Hudson (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13116663#comment-13116663 ] 

Hudson commented on HBASE-4488:
-------------------------------

Integrated in HBase-0.92 #25 (See [https://builds.apache.org/job/HBase-0.92/25/])
    HBASE-4488  Store could miss rows during flush (Lars H via jgray)

jgray : 
Files : 
* /hbase/branches/0.92/CHANGES.txt
* /hbase/branches/0.92/src/main/java/org/apache/hadoop/hbase/regionserver/Store.java

                
> 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13114948#comment-13114948 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

Also removes two unused variables and an unused import.
                
> Store could miss rows during flush
> ----------------------------------
>
>                 Key: HBASE-4488
>                 URL: https://issues.apache.org/jira/browse/HBASE-4488
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.0
>
>         Attachments: 4488.txt
>
>
> While looked 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13126185#comment-13126185 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

Let's do this as part of HBASE-4556.
                
> 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-add.txt, 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13115220#comment-13115220 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

Looking at the StoreScanner/ScanQueryMatcher code, it seems that luckily this cannot be triggered.
In order to this to happen the ScanQueryMatcher in StoreScanner has to return one of DONE_SCAN or SEEK_NEXT_ROW.
The matcher only return DONE_SCAN for filters. In this case there are none, so that won't happen.
SEEK_NEXT_ROW can be return from filters (so also out) or if the next row is < the current row (not sure how to make that happen... Should never happen).
The column tracker used here is ScanWildcardColumnTracker, which will only ever return SKIP, SEEK_NEXT_COL, or INCLUDE.

So we were actually lucky here, and this bug cannot be triggered at all. Based on this I'll change the priority. Unless we rig it, this bug cannot be triggered.

It should still be changed, though, but it will be for readability, and future correctness if somebody changes Matcher/Tracker.

                
> 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
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13115805#comment-13115805 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

@Jon, so you gonna commit this? :)

                
> 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, 0.94.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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Jonathan Gray (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Gray updated HBASE-4488:
---------------------------------

       Resolution: Fixed
    Fix Version/s:     (was: 0.94.0)
     Hadoop Flags: Reviewed
           Status: Resolved  (was: Patch Available)

Committed to 92 branch and trunk, marking against 92.

Thanks Lars!
                
> 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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl updated HBASE-4488:
---------------------------------

    Attachment: 4488-add.txt

Everybody OK with the addendum?

                
> 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-add.txt, 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Jonathan Gray (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13115221#comment-13115221 ] 

Jonathan Gray commented on HBASE-4488:
--------------------------------------

Got it.  Nice investigation.

+1 for commit
                
> 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, 0.94.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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13116547#comment-13116547 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

Looks like HBASE-4433 can potentially trigger this issue.
                
> 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, 0.94.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

        

[jira] [Updated] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Lars Hofhansl updated HBASE-4488:
---------------------------------

    Attachment: 4488.txt

Simple fix, safe to apply :)
                
> Store could miss rows during flush
> ----------------------------------
>
>                 Key: HBASE-4488
>                 URL: https://issues.apache.org/jira/browse/HBASE-4488
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver
>    Affects Versions: 0.92.0, 0.94.0
>            Reporter: Lars Hofhansl
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.0
>
>         Attachments: 4488.txt
>
>
> While looked 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "stack (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13126169#comment-13126169 ] 

stack commented on HBASE-4488:
------------------------------

+1 on addendum (though its already committed).
                
> 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-add.txt, 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Lars Hofhansl (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13123384#comment-13123384 ] 

Lars Hofhansl commented on HBASE-4488:
--------------------------------------

created HBASE-4556
                
> 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-add.txt, 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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Jonathan Gray (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13115209#comment-13115209 ] 

Jonathan Gray commented on HBASE-4488:
--------------------------------------

@Lars, patch seems fine.  Do you think there's a way to trigger the bug in a test so we can catch these edge cases in the future?
                
> 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
>            Priority: Critical
>             Fix For: 0.92.0, 0.94.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

        

[jira] [Commented] (HBASE-4488) Store could miss rows during flush

Posted by "Jonathan Gray (Commented) (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/HBASE-4488?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13115876#comment-13115876 ] 

Jonathan Gray commented on HBASE-4488:
--------------------------------------

Aren't you a committer now?  Or didn't get the rights yet? :)  Yes, I will commit later today.
                
> 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, 0.94.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