You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "ChiaPing Tsai (JIRA)" <ji...@apache.org> on 2016/06/20 11:33:05 UTC
[jira] [Created] (HBASE-16071) The VisibilityLabelFilter should not
count the "delete cell"
ChiaPing Tsai created HBASE-16071:
-------------------------------------
Summary: The VisibilityLabelFilter should not count the "delete cell"
Key: HBASE-16071
URL: https://issues.apache.org/jira/browse/HBASE-16071
Project: HBase
Issue Type: Bug
Affects Versions: 2.0.0
Reporter: ChiaPing Tsai
Priority: Trivial
The VisibilityLabelFilter will see and count the "delete cell" if the scan.isRaw() returns true, so the (put) cell will be skipped if it has lower version than "delete cell"
The critical code is shown below:
{code:title=VisibilityLabelFilter.java|borderStyle=solid}
public ReturnCode filterKeyValue(Cell cell) throws IOException {
if (curFamily.getBytes() == null
|| !(CellUtil.matchingFamily(cell, curFamily.getBytes(), curFamily.getOffset(),
curFamily.getLength()))) {
curFamily.set(cell.getFamilyArray(), cell.getFamilyOffset(), cell.getFamilyLength());
// For this family, all the columns can have max of curFamilyMaxVersions versions. No need to
// consider the older versions for visibility label check.
// Ideally this should have been done at a lower layer by HBase (?)
curFamilyMaxVersions = cfVsMaxVersions.get(curFamily);
// Family is changed. Just unset curQualifier.
curQualifier.unset();
}
if (curQualifier.getBytes() == null
|| !(CellUtil.matchingQualifier(cell, curQualifier.getBytes(), curQualifier.getOffset(),
curQualifier.getLength()))) {
curQualifier.set(cell.getQualifierArray(), cell.getQualifierOffset(),
cell.getQualifierLength());
curQualMetVersions = 0;
}
curQualMetVersions++;
if (curQualMetVersions > curFamilyMaxVersions) {
return ReturnCode.SKIP;
}
return this.expEvaluator.evaluate(cell) ? ReturnCode.INCLUDE : ReturnCode.SKIP;
}
{code}
[VisibilityLabelFilter.java|https://github.com/apache/hbase/blob/d7a4499dfc8b3936a0eca867589fc2b23b597866/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityLabelFilter.java]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)