[
https://issues.apache.org/jira/browse/HBASE-26001?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17387846#comment-17387846
]
Yutong Xiao edited comment on HBASE-26001 at 7/28/21, 3:06 AM:
---------------------------------------------------------------
I run the tests with branch-2.3 locally. And got the following message :
2021-07-27 15:14:46,016 DEBUG [master/192.168.1.127:0:becomeActiveMaster]
asyncfs.FanOutOneBlockAsyncDFSOutputHelper(265): ClientProtocol::create wrong
number of arguments, should be hadoop 3.2 or below
2021-07-27 15:14:46,016 DEBUG [master/192.168.1.127:0:becomeActiveMaster]
asyncfs.FanOutOneBlockAsyncDFSOutputHelper(271): ClientProtocol::create wrong
number of arguments, should be hadoop 2.x
2021-07-27 15:14:46,029 DEBUG [master/192.168.1.127:0:becomeActiveMaster]
asyncfs.FanOutOneBlockAsyncDFSOutputHelper(280): can not find SHOULD_REPLICATE
flag, should be hadoop 2.x
java.lang.IllegalArgumentException: No enum constant
org.apache.hadoop.fs.CreateFlag.SHOULD_REPLICATE
I also rerun the tests under branch-2 and it passed.
It seems the tests failure is due to a version problem of hadoop. [~stack]
was (Author: xytss123):
I run the tests with branch-2.3 locally. And got the following message :
2021-07-27 15:14:46,016 DEBUG [master/192.168.1.127:0:becomeActiveMaster]
asyncfs.FanOutOneBlockAsyncDFSOutputHelper(265): ClientProtocol::create wrong
number of arguments, should be hadoop 3.2 or below
2021-07-27 15:14:46,016 DEBUG [master/192.168.1.127:0:becomeActiveMaster]
asyncfs.FanOutOneBlockAsyncDFSOutputHelper(271): ClientProtocol::create wrong
number of arguments, should be hadoop 2.x
2021-07-27 15:14:46,029 DEBUG [master/192.168.1.127:0:becomeActiveMaster]
asyncfs.FanOutOneBlockAsyncDFSOutputHelper(280): can not find SHOULD_REPLICATE
flag, should be hadoop 2.x
java.lang.IllegalArgumentException: No enum constant
org.apache.hadoop.fs.CreateFlag.SHOULD_REPLICATE
I also rerun the tests under branch-2 and it passed.
Maybe the tests failure are due to a version problem of hadoop. [~stack]
> 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.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)