hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Koifman (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HIVE-14192) False positive error due to thrift
Date Fri, 08 Jul 2016 00:31:11 GMT
Eugene Koifman created HIVE-14192:
-------------------------------------

             Summary: False positive error due to thrift
                 Key: HIVE-14192
                 URL: https://issues.apache.org/jira/browse/HIVE-14192
             Project: Hive
          Issue Type: Bug
          Components: Metastore, Transactions
    Affects Versions: 2.1.0, 1.3.0
            Reporter: Eugene Koifman
            Assignee: Eugene Koifman


Given Thrift definition like this
{noformat}
struct LockComponent {
    1: required LockType type,
    2: required LockLevel level,
    3: required string dbname,
    4: optional string tablename,
    5: optional string partitionname,
    6: optional DataOperationType operationType = DataOperationType.UNSET,
    7: optional bool isAcid = false
}
{noformat}

The generated LockComponent has 
{noformat}
  public LockComponent() {
    this.operationType = org.apache.hadoop.hive.metastore.api.DataOperationType.UNSET;

    this.isAcid = false;

  }
  public boolean isSetOperationType() {
    return this.operationType != null;
  }
  public boolean isSetIsAcid() {
    return EncodingUtils.testBit(__isset_bitfield, __ISACID_ISSET_ID);
  }
{noformat}

So bottom line is even if LockComponent is created by old version of the client which doesn't
have operationType filed, isSetOperationType() will still return true on the server.

This causes a false positive exception in TxnHandler.enqueueLockWithRetry() during Rolling
Upgrade scenarios.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message