This is an automated email from the ASF dual-hosted git repository. williamsong pushed a commit to branch release-3.1.3 in repository https://gitbox.apache.org/repos/asf/ratis.git
commit e16b24c5638829b627f2dffd6ce6cb9690ef8370 Author: William Song <[email protected]> AuthorDate: Fri Jan 3 03:03:12 2025 +0800 RATIS-2232. Improve log for debugging on RaftLog / TransactionManager (#1203) --- .../org/apache/ratis/server/raftlog/RaftLogSequentialOps.java | 4 +++- .../java/org/apache/ratis/server/impl/TransactionManager.java | 8 +------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogSequentialOps.java b/ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogSequentialOps.java index 7b9f42b6b..5e8bd6d78 100644 --- a/ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogSequentialOps.java +++ b/ratis-server-api/src/main/java/org/apache/ratis/server/raftlog/RaftLogSequentialOps.java @@ -77,8 +77,10 @@ interface RaftLogSequentialOps { // The current thread is already the runner. return operation.get(); } else { + final Throwable cause = new Throwable("The thread already running: " + previous); + cause.setStackTrace(previous.getStackTrace()); throw new IllegalStateException( - name + ": Already running a method by " + previous + ", current=" + current); + name + ": Already running a method by " + previous + ", current=" + current, cause); } } } diff --git a/ratis-server/src/main/java/org/apache/ratis/server/impl/TransactionManager.java b/ratis-server/src/main/java/org/apache/ratis/server/impl/TransactionManager.java index c33bc26bc..cba310b34 100644 --- a/ratis-server/src/main/java/org/apache/ratis/server/impl/TransactionManager.java +++ b/ratis-server/src/main/java/org/apache/ratis/server/impl/TransactionManager.java @@ -71,12 +71,6 @@ class TransactionManager { @Override public String toString() { - if (contexts.isEmpty()) { - return name + " <empty>"; - } - - final StringBuilder b = new StringBuilder(name); - contexts.forEach((k, v) -> b.append("\n ").append(k).append(": initialized? ").append(v.isInitialized())); - return b.toString(); + return name + ":size=" + contexts.size(); } } \ No newline at end of file
