You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2023/09/14 22:10:32 UTC
[accumulo] branch 2.1 updated: adds validation to prevent possible deadlock (#3747)
This is an automated email from the ASF dual-hosted git repository.
kturner pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push:
new a2de3d7d99 adds validation to prevent possible deadlock (#3747)
a2de3d7d99 is described below
commit a2de3d7d9950426ba7b1455b6978b442be417c62
Author: Keith Turner <kt...@apache.org>
AuthorDate: Thu Sep 14 18:10:28 2023 -0400
adds validation to prevent possible deadlock (#3747)
---
.../src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
index 31e9df9b89..d87b27e95a 100644
--- a/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
+++ b/server/tserver/src/main/java/org/apache/accumulo/tserver/tablet/Tablet.java
@@ -1895,7 +1895,9 @@ public class Tablet extends TabletBase {
ArrayList<String> otherLogsCopy = new ArrayList<>();
ArrayList<String> currentLogsCopy = new ArrayList<>();
- // do not hold tablet lock while acquiring the log lock
+ // Can not hold tablet lock while acquiring the log lock. The following check is there to
+ // prevent deadlock.
+ Preconditions.checkState(!Thread.holdsLock(this));
logLock.lock();
synchronized (this) {
@@ -1960,7 +1962,9 @@ public class Tablet extends TabletBase {
boolean releaseLock = true;
- // do not hold tablet lock while acquiring the log lock
+ // Can not hold tablet lock while acquiring the log lock. The following check is there to
+ // prevent deadlock.
+ Preconditions.checkState(!Thread.holdsLock(this));
logLock.lock();
try {