Uh oh!
There was an error while loading. Please reload this page.
HBASE-26797 HBase 1.x clients will choke on rep_barrier rows when scanning hbase 2.x meta - #4161
Conversation
…nning hbase 2.x meta
| throws IOException { | ||
| byte[] searchRow = HRegionInfo.createRegionName(userTableName, row, HConstants.NINES, false); | ||
| Scan scan = Scan.createGetClosestRowOrBeforeReverseScan(searchRow); | ||
| scan.addFamily(HConstants.CATALOG_FAMILY); |
There was a problem hiding this comment.
The real error comes from ConnectionManager, but I tried to audit all reads against meta table and this was the only other one (that I could find) which did not have a family specified. I figured I should add it while I'm here even if we haven't hit an issue with this yet.
Apache-HBase
commented
Mar 3, 2022
🎊 +1 overall
This message was automatically generated. |
apurtell
left a comment
There was a problem hiding this comment.
lgtm, but please add comments adjacent to the added statements with at least a reference to the JIRA
bbeaudreault
commented
Mar 4, 2022
Thanks for the review, I'll add that tomorrow. |
bbeaudreault
commented
Mar 4, 2022
@apurtell done -- I'm assuming that's for added protection against a future regression, given the lack of a test. But correct me if I'm wrong, for my own edification. |
Apache-HBase
commented
Mar 4, 2022
💔 -1 overall
This message was automatically generated. |
Apache-HBase
commented
Mar 4, 2022
💔 -1 overall
This message was automatically generated. |
apurtell
commented
Mar 4, 2022
Correct, its so we know not to remove them without thought toward this issue since there isn't a test for it |
I found it really hard to add a test case for this. I think i'd need to modify meta to add a dummy extra CF and then put a bad row in there and validate that it gets ignored by these reads. That should be straightforward, but alters to meta are disallowed in a few places. I could probably add some sort of internal-only config to disable those checks for the purpose of test, or maybe a setter which sets a volatile value? It's hard to access them from the TestingUtility, but maybe doable. Let me know if you'd like me to go through those efforts to test this, but I think it might not be worth it?