-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/72528/
-----------------------------------------------------------
(Updated June 9, 2020, 8:52 a.m.)
Review request for hive, Jesús Camacho Rodríguez, Peter Varga, and Peter Vary.
Bugs: HIVE-23503
https://issues.apache.org/jira/browse/HIVE-23503
Repository: hive-git
Description
-------
ValidTxnManager doesn't consider txns opened and committed between snapshot
generation and locking when evaluating ValidTxnListState. This cause issues
like duplicate insert in case of concurrent merge insert & insert.
Diffs
-----
ql/src/java/org/apache/hadoop/hive/ql/Driver.java e70c92eef4
ql/src/java/org/apache/hadoop/hive/ql/DriverContext.java a8c83fc504
ql/src/java/org/apache/hadoop/hive/ql/ValidTxnManager.java 7d49c57dda
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DbTxnManager.java 71afcbdc68
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/DummyTxnManager.java 0383881acc
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveTxnManager.java 600289f837
ql/src/test/org/apache/hadoop/hive/ql/lockmgr/TestDbTxnManager2.java
8a15b7cc5d
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java
65df9c2ba9
standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/IMetaStoreClient.java
887d4303f4
standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java
312936efa8
storage-api/src/java/org/apache/hadoop/hive/common/ValidReadTxnList.java
b8ff03f9c4
storage-api/src/java/org/apache/hadoop/hive/common/ValidTxnList.java
d4c3b09730
Diff: https://reviews.apache.org/r/72528/diff/1/
Testing (updated)
-------
DbTxnManager tests.
Faulty scenario:
1. open and generate snapshot for t1 that merge inserts data from a source
table into the target one.
2. Open, run and commit t2 that inserts source table data into the target table.
3. Run t1 - duplicate date would be inserted into target table as t2 changes
won't be visible by t1.
Thanks,
Denys Kuzmenko