You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "ryan rawson (JIRA)" <ji...@apache.org> on 2011/01/31 22:41:29 UTC

[jira] Created: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

checkAndPut implementation doesnt verify row param and writable row are the same
--------------------------------------------------------------------------------

                 Key: HBASE-3494
                 URL: https://issues.apache.org/jira/browse/HBASE-3494
             Project: HBase
          Issue Type: Bug
    Affects Versions: 0.90.0
            Reporter: ryan rawson


the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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

        

[jira] Commented: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

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

stack commented on HBASE-3494:
------------------------------

@Joe Agreed

> checkAndPut implementation doesnt verify row param and writable row are the same
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-3494
>                 URL: https://issues.apache.org/jira/browse/HBASE-3494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: ryan rawson
>            Assignee: ryan rawson
>             Fix For: 0.90.1
>
>         Attachments: HBASE-3494.txt
>
>
> the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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

        

[jira] Commented: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

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

Hudson commented on HBASE-3494:
-------------------------------

Integrated in HBase-TRUNK #1728 (See [https://hudson.apache.org/hudson/job/HBase-TRUNK/1728/])
    

> checkAndPut implementation doesnt verify row param and writable row are the same
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-3494
>                 URL: https://issues.apache.org/jira/browse/HBASE-3494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: ryan rawson
>            Assignee: ryan rawson
>             Fix For: 0.90.1
>
>         Attachments: HBASE-3494.txt
>
>
> the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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

        

[jira] Updated: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

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

ryan rawson updated HBASE-3494:
-------------------------------

    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

> checkAndPut implementation doesnt verify row param and writable row are the same
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-3494
>                 URL: https://issues.apache.org/jira/browse/HBASE-3494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: ryan rawson
>            Assignee: ryan rawson
>             Fix For: 0.90.1
>
>         Attachments: HBASE-3494.txt
>
>
> the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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

        

[jira] Updated: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

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

ryan rawson updated HBASE-3494:
-------------------------------

    Fix Version/s: 0.90.1
         Assignee: ryan rawson
           Status: Patch Available  (was: Open)

fix w/test

> checkAndPut implementation doesnt verify row param and writable row are the same
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-3494
>                 URL: https://issues.apache.org/jira/browse/HBASE-3494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: ryan rawson
>            Assignee: ryan rawson
>             Fix For: 0.90.1
>
>         Attachments: HBASE-3494.txt
>
>
> the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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

        

[jira] Commented: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

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

Joe Pallas commented on HBASE-3494:
-----------------------------------

It would be nice if the API Javadoc mentioned this restriction.

> checkAndPut implementation doesnt verify row param and writable row are the same
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-3494
>                 URL: https://issues.apache.org/jira/browse/HBASE-3494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: ryan rawson
>            Assignee: ryan rawson
>             Fix For: 0.90.1
>
>         Attachments: HBASE-3494.txt
>
>
> the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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

        

[jira] Commented: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

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

stack commented on HBASE-3494:
------------------------------

+1

> checkAndPut implementation doesnt verify row param and writable row are the same
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-3494
>                 URL: https://issues.apache.org/jira/browse/HBASE-3494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: ryan rawson
>            Assignee: ryan rawson
>             Fix For: 0.90.1
>
>         Attachments: HBASE-3494.txt
>
>
> the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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

        

[jira] Updated: (HBASE-3494) checkAndPut implementation doesnt verify row param and writable row are the same

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

ryan rawson updated HBASE-3494:
-------------------------------

    Attachment: HBASE-3494.txt

> checkAndPut implementation doesnt verify row param and writable row are the same
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-3494
>                 URL: https://issues.apache.org/jira/browse/HBASE-3494
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.90.0
>            Reporter: ryan rawson
>         Attachments: HBASE-3494.txt
>
>
> the API checkAndPut, and on the server side checkAndMutate doesn't enforce that the row in the API call and the row in the passed writable that should be executed if the check passes, are the same row!  Looking at the code, if someone were to 'fool' us, we'd probably end up with rows in the wrong region in the worst case.  Or we'd end up with non-locked puts/deletes to different rows since the checkAndMutate grabs the row lock and calls put/delete methods that do not grab row locks.

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