[ https://issues.apache.org/jira/browse/HBASE-18572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16133622#comment-16133622 ]
Hudson commented on HBASE-18572: -------------------------------- SUCCESS: Integrated in Jenkins build HBase-1.3-JDK8 #253 (See [https://builds.apache.org/job/HBase-1.3-JDK8/253/]) HBASE-18572 Delete can't remove the cells which have no visibility label (chia7712: rev 883b19363f7697e733e9a40b7771b602cbb9a110) * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/DefaultVisibilityLabelServiceImpl.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityScanDeleteTracker.java * (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/visibility/TestVisibilityLabelsWithDeletes.java * (edit) hbase-server/src/test/java/org/apache/hadoop/hbase/security/visibility/ExpAsStringVisibilityLabelServiceImpl.java * (edit) hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java > Delete can't remove the cells which have no visibility label > ------------------------------------------------------------ > > Key: HBASE-18572 > URL: https://issues.apache.org/jira/browse/HBASE-18572 > Project: HBase > Issue Type: Bug > Affects Versions: 1.3.1, 1.2.6, 2.0.0-alpha-1 > Reporter: Chia-Ping Tsai > Assignee: Chia-Ping Tsai > Priority: Critical > Fix For: 2.0.0, 1.4.0, 1.3.2, 1.5.0, 1.2.7 > > Attachments: HBASE-18572.branch-1.v0.patch, > HBASE-18572.branch-1.v0.patch, HBASE-18572.branch-1.v0.patch, > HBASE-18572.ut.patch, HBASE-18572.v0.patch, HBASE-18572.v0.patch, > HBASE-18572.v1.patch > > > {code:title=DefaultVisibilityLabelServiceImpl.java} > @Override > public boolean matchVisibility(List<Tag> putVisTags, Byte putTagsFormat, > List<Tag> deleteVisTags, > Byte deleteTagsFormat) throws IOException { > if ((deleteTagsFormat != null && deleteTagsFormat == > SORTED_ORDINAL_SERIALIZATION_FORMAT) > && (putTagsFormat == null || putTagsFormat == > SORTED_ORDINAL_SERIALIZATION_FORMAT)) { > if (putVisTags.isEmpty()) { > // Early out if there are no tags in the cell > return false; > } > if (putTagsFormat == null) { > return matchUnSortedVisibilityTags(putVisTags, deleteVisTags); > } else { > return matchOrdinalSortedVisibilityTags(putVisTags, deleteVisTags); > } > } > throw new IOException("Unexpected tag format passed for comparison, > deleteTagsFormat : " > + deleteTagsFormat + ", putTagsFormat : " + putTagsFormat); > } > {code} > If the putVisTags is empty, it will return the false directly. Hence, the > Delete#addColumn can't "see" the cell as well as deleting it. The > Delete#addColumns, by contrast, doesn't invoke the > cp#prePrepareTimeStampForDeleteVersion so it can remove the cell. -- This message was sent by Atlassian JIRA (v6.4.14#64029)