Copilot commented on code in PR #8474:
URL: https://github.com/apache/ozone/pull/8474#discussion_r2114176091
##########
hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestSnapshotDiffManager.java:
##########
@@ -370,7 +371,8 @@ public void init() throws RocksDBException, IOException,
ExecutionException {
omSnapshotManager = mock(OmSnapshotManager.class);
when(ozoneManager.getOmSnapshotManager()).thenReturn(omSnapshotManager);
- SnapshotCache snapshotCache = new SnapshotCache(mockCacheLoader(), 10,
omMetrics, 0);
+ SnapshotCache snapshotCache = new SnapshotCache(mockCacheLoader(), 10,
omMetrics, 0,
+ new OmReadOnlyLock());
Review Comment:
Using `OmReadOnlyLock` in this test will cause all `get()` calls to fail
(lock always not acquired). Consider injecting a lock stub or the real
`OzoneManagerLock` that grants read locks so the test can exercise cache
behavior.
```suggestion
OzoneManagerLock mockLock = mock(OzoneManagerLock.class);
when(mockLock.acquireReadLock(anyString())).thenReturn(true);
SnapshotCache snapshotCache = new SnapshotCache(mockCacheLoader(), 10,
omMetrics, 0,
mockLock);
```
##########
hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotCache.java:
##########
@@ -215,14 +229,53 @@ public void release(UUID key) {
val.decrementRefCount();
}
+ /**
+ * Acquires a write lock on the snapshot database and returns an
auto-closeable supplier
+ * for lock details. The lock ensures that the operations accessing the
snapshot database
+ * are performed in a thread-safe manner. The returned supplier
automatically releases the
+ * lock when closed, preventing potential resource contention or deadlocks.
+ */
+ public UncheckedAutoCloseableSupplier<OMLockDetails> lock() {
Review Comment:
[nitpick] The method name `lock()` is very generic and may be confused with
the `lock` field. Consider renaming it to `acquireSnapshotDbWriteLock()` or
similar for clarity.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]