[ https://issues.apache.org/jira/browse/HBASE-26001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17366771#comment-17366771 ]
Hudson commented on HBASE-26001: -------------------------------- Results for branch branch-2 [build #282 on builds.a.o|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2/282/]: (x) *{color:red}-1 overall{color}* ---- details (if available): (/) {color:green}+1 general checks{color} -- For more information [see general report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2/282/General_20Nightly_20Build_20Report/] (x) {color:red}-1 jdk8 hadoop2 checks{color} -- For more information [see jdk8 (hadoop2) report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2/282/JDK8_20Nightly_20Build_20Report_20_28Hadoop2_29/] (/) {color:green}+1 jdk8 hadoop3 checks{color} -- For more information [see jdk8 (hadoop3) report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2/282/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/] (/) {color:green}+1 jdk11 hadoop3 checks{color} -- For more information [see jdk11 report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2/282/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/] (/) {color:green}+1 source release artifact{color} -- See build output for details. (/) {color:green}+1 client integration test{color} > When turn on access control, the cell level TTL of Increment and Append > operations is invalid. > ---------------------------------------------------------------------------------------------- > > Key: HBASE-26001 > URL: https://issues.apache.org/jira/browse/HBASE-26001 > Project: HBase > Issue Type: Bug > Components: Coprocessors > Reporter: Yutong Xiao > Assignee: Yutong Xiao > Priority: Minor > Fix For: 3.0.0-alpha-1, 2.6.7, 2.5.0, 2.3.6, 2.4.5 > > > AccessController postIncrementBeforeWAL() and postAppendBeforeWAL() methods > will rewrite the new cell's tags by the old cell's. This will makes the other > kinds of tag in new cell invisible (such as TTL tag) after this. As in > Increment and Append operations, the new cell has already catch forward all > tags of the old cell and TTL tag from mutation operation, here in > AccessController we do not need to rewrite the tags once again. Also, the TTL > tag of newCell will be invisible in the new created cell. Actually, in > Increment and Append operations, the newCell has already copied all tags of > the oldCell. So the oldCell is useless here. > {code:java} > private Cell createNewCellWithTags(Mutation mutation, Cell oldCell, Cell > newCell) { > // Collect any ACLs from the old cell > List<Tag> tags = Lists.newArrayList(); > List<Tag> aclTags = Lists.newArrayList(); > ListMultimap<String,Permission> perms = ArrayListMultimap.create(); > if (oldCell != null) { > Iterator<Tag> tagIterator = PrivateCellUtil.tagsIterator(oldCell); > while (tagIterator.hasNext()) { > Tag tag = tagIterator.next(); > if (tag.getType() != PermissionStorage.ACL_TAG_TYPE) { > // Not an ACL tag, just carry it through > if (LOG.isTraceEnabled()) { > LOG.trace("Carrying forward tag from " + oldCell + ": type " + > tag.getType() > + " length " + tag.getValueLength()); > } > tags.add(tag); > } else { > aclTags.add(tag); > } > } > } > // Do we have an ACL on the operation? > byte[] aclBytes = mutation.getACL(); > if (aclBytes != null) { > // Yes, use it > tags.add(new ArrayBackedTag(PermissionStorage.ACL_TAG_TYPE, aclBytes)); > } else { > // No, use what we carried forward > if (perms != null) { > // TODO: If we collected ACLs from more than one tag we may have a > // List<Permission> of size > 1, this can be collapsed into a single > // Permission > if (LOG.isTraceEnabled()) { > LOG.trace("Carrying forward ACLs from " + oldCell + ": " + perms); > } > tags.addAll(aclTags); > } > } > // If we have no tags to add, just return > if (tags.isEmpty()) { > return newCell; > } > // Here the new cell's tags will be in visible. > return PrivateCellUtil.createCell(newCell, tags); > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)