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

[jira] [Created] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

Bypassing default actions in prePut fails sometimes with HTable client
----------------------------------------------------------------------

                 Key: HBASE-4331
                 URL: https://issues.apache.org/jira/browse/HBASE-4331
             Project: HBase
          Issue Type: Bug
          Components: coprocessors
    Affects Versions: 0.92.0
            Reporter: Lars Hofhansl
             Fix For: 0.92.0


While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.

The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.

A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
(I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl commented on HBASE-4331:
--------------------------------------

What's the general feeling about this change?

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl updated HBASE-4331:
---------------------------------

    Attachment: 4331-v4.txt

Just forgot to change the config property that points to the coprocessor class when I changed the name of the test.
Using class.getName() now.

Also added a few tests for other permutations.

All coprocessor related test pass for me.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331-v4.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Assigned] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl reassigned HBASE-4331:
------------------------------------

    Assignee: Lars Hofhansl

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Hudson commented on HBASE-4331:
-------------------------------

Integrated in HBase-TRUNK #2196 (See [https://builds.apache.org/job/HBase-TRUNK/2196/])
    HBASE-4331  Bypassing default actions in prePut fails sometimes with HTable client

garyh : 
Files : 
* /hbase/trunk/CHANGES.txt
* /hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* /hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionObserverBypass.java


> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331-v4.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Gary Helmling commented on HBASE-4331:
--------------------------------------

No, another patch here is fine.  I'm +1 with that change, assuming tests pass.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Gary Helmling commented on HBASE-4331:
--------------------------------------

Hi Lars,

I took a quick look and it seemed good.  I like the additional tests as well.

I just want to take some time to review the batch put handling in a little more detail.  Will dig in tonight.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl updated HBASE-4331:
---------------------------------

    Attachment: 4331-v2.txt

Forgot to add the test to the previous patch.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl commented on HBASE-4331:
--------------------------------------

I sync'd the latest trunk and now there seems to be additional checking on column families (a put with non-existent CF fails before it even gets to the coprocessor, I assume that's desired).

But also with the latest changes my own test fails now.
So it'll be a bit until I track that down.


> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl updated HBASE-4331:
---------------------------------

    Attachment: 4331-v3.txt

Same patch, just with a few more comment.

Andrew, Gary, or Mingie, I think you'd be the most qualified to look at this.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl updated HBASE-4331:
---------------------------------

    Attachment: 4331.txt

Patch to fix the issue.
Folks more familiar with the preprocessor code: Please have a careful look.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Gary Helmling commented on HBASE-4331:
--------------------------------------

Lars,

Looks good.  My only comment would be to rename the new TestRegionObserver class to something like TestRegionObserverBypass, since that's what it's actually testing and we already have TestRegionObserverInterface.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Commented] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Lars Hofhansl commented on HBASE-4331:
--------------------------------------

Thanks Gary. I will attach a new patch in a few minutes. Would you prefer a review on review board?

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (HBASE-4331) Bypassing default actions in prePut fails sometimes with HTable client

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

Gary Helmling resolved HBASE-4331.
----------------------------------

      Resolution: Fixed
    Hadoop Flags: [Reviewed]

Committed to trunk.  Thanks for the patch Lars.

> Bypassing default actions in prePut fails sometimes with HTable client
> ----------------------------------------------------------------------
>
>                 Key: HBASE-4331
>                 URL: https://issues.apache.org/jira/browse/HBASE-4331
>             Project: HBase
>          Issue Type: Bug
>          Components: coprocessors
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Assignee: Lars Hofhansl
>             Fix For: 0.92.0
>
>         Attachments: 4331-v2.txt, 4331-v3.txt, 4331-v4.txt, 4331.txt
>
>
> While testing some other scenario I found calling CoprocessorEnvironment.bypass() fails if all trailing puts in a batch are bypassed that way. By extension a single bypassed put will also fail.
> The problem is that the puts are removed from the batch in a way that does not align them with the result-status, and in addition the result is never marked as success.
> A possible fix is to just mark bypassed puts as SUCCESS and filter them in the following logic.
> (I also contemplated a new BYPASSED OperationStatusCode, but that turned out to be not necessary).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira