This is an automated email from the ASF dual-hosted git repository.
lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new f42dd55 Fixed ResourceLockTest.revalidateLockOnDifferentSession()
(#11885)
f42dd55 is described below
commit f42dd55d979d1db059141c25b4e9bb877f4dbf7f
Author: Matteo Merli <[email protected]>
AuthorDate: Wed Sep 1 14:45:43 2021 -0700
Fixed ResourceLockTest.revalidateLockOnDifferentSession() (#11885)
* Fixed ResourceLockTest.revalidateLockOnDifferentSession()
* Fixed merge conflict
---
.../java/org/apache/pulsar/metadata/LockManagerTest.java | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git
a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LockManagerTest.java
b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LockManagerTest.java
index dbcdc4f..f215750 100644
---
a/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LockManagerTest.java
+++
b/pulsar-metadata/src/test/java/org/apache/pulsar/metadata/LockManagerTest.java
@@ -31,6 +31,7 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import lombok.Cleanup;
+import org.apache.pulsar.common.util.ObjectMapperFactory;
import org.apache.pulsar.metadata.api.MetadataCache;
import org.apache.pulsar.metadata.api.MetadataStoreConfig;
import org.apache.pulsar.metadata.api.MetadataStoreException.LockBusyException;
@@ -40,6 +41,7 @@ import
org.apache.pulsar.metadata.api.coordination.ResourceLock;
import org.apache.pulsar.metadata.api.extended.CreateOption;
import org.apache.pulsar.metadata.api.extended.MetadataStoreExtended;
import org.apache.pulsar.metadata.coordination.impl.CoordinationServiceImpl;
+import org.awaitility.Awaitility;
import org.testng.annotations.Test;
public class LockManagerTest extends BaseMetadataStoreTest {
@@ -213,20 +215,23 @@ public class LockManagerTest extends
BaseMetadataStoreTest {
assertEquals(e.getCause().getClass(), LockBusyException.class);
}
- // Lock-1 should get notification of expiry
+ // Lock-1 should not get invalidated
assertFalse(rl1.getLockExpiredFuture().isDone());
assertEquals(new String(store1.get(path1).join().get().getValue()),
"\"value-1\"");
// Simulate existing lock with same content. The 2nd acquirer will
steal the lock
String path2 = newKey();
- rl1 = lm1.acquireLock(path2, "value-1").join();
+ store1.put(path2,
ObjectMapperFactory.getThreadLocal().writeValueAsBytes("value-1"),
Optional.of(-1L));
ResourceLock<String> rl2 = lm2.acquireLock(path2, "value-1").join();
- assertFalse(rl1.getLockExpiredFuture().isDone());
assertFalse(rl2.getLockExpiredFuture().isDone());
- assertEquals(new String(store1.get(path2).join().get().getValue()),
"\"value-1\"");
+ Awaitility.await().untilAsserted(() -> {
+ // On 'store1' we might see for a short amount of time an empty
result still cached while the lock is
+ // being reacquired.
+ assertEquals(new
String(store1.get(path2).join().get().getValue()), "\"value-1\"");
+ });
}
}