This is an automated email from the ASF dual-hosted git repository.
yihua pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new d0830c81cf [HUDI-4518] Add unit test for reentrant lock in diff
lockProvider (#6624)
d0830c81cf is described below
commit d0830c81cf272c00f5845454747e8f676b11a8a2
Author: KnightChess <[email protected]>
AuthorDate: Sat Sep 10 02:55:02 2022 +0800
[HUDI-4518] Add unit test for reentrant lock in diff lockProvider (#6624)
---
.../TestHiveMetastoreBasedLockProvider.java | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git
a/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/functional/TestHiveMetastoreBasedLockProvider.java
b/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/functional/TestHiveMetastoreBasedLockProvider.java
index 3d129c5899..b01b4cdc05 100644
---
a/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/functional/TestHiveMetastoreBasedLockProvider.java
+++
b/hudi-sync/hudi-hive-sync/src/test/java/org/apache/hudi/hive/functional/TestHiveMetastoreBasedLockProvider.java
@@ -125,6 +125,28 @@ public class TestHiveMetastoreBasedLockProvider extends
HiveSyncFunctionalTestHa
// expected
}
lockProvider.unlock();
+
+ // not acquired in the beginning
+ HiveMetastoreBasedLockProvider lockProvider1 = new
HiveMetastoreBasedLockProvider(lockConfiguration, hiveConf());
+ HiveMetastoreBasedLockProvider lockProvider2 = new
HiveMetastoreBasedLockProvider(lockConfiguration, hiveConf());
+ lockComponent.setOperationType(DataOperationType.NO_TXN);
+
Assertions.assertTrue(lockProvider1.acquireLock(lockConfiguration.getConfig()
+ .getLong(LOCK_ACQUIRE_WAIT_TIMEOUT_MS_PROP_KEY),
TimeUnit.MILLISECONDS, lockComponent));
+ try {
+ boolean acquireStatus =
lockProvider2.acquireLock(lockConfiguration.getConfig()
+ .getLong(LOCK_ACQUIRE_WAIT_TIMEOUT_MS_PROP_KEY),
TimeUnit.MILLISECONDS, lockComponent);
+ Assertions.assertFalse(acquireStatus);
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ lockProvider1.unlock();
+
Assertions.assertTrue(lockProvider2.acquireLock(lockConfiguration.getConfig()
+ .getLong(LOCK_ACQUIRE_WAIT_TIMEOUT_MS_PROP_KEY),
TimeUnit.MILLISECONDS, lockComponent));
+ lockProvider2.unlock();
+
+ lockProvider.close();
+ lockProvider1.close();
+ lockProvider2.close();
}
@Test