You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2021/02/19 18:41:34 UTC
svn commit: r1886696 - in
/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document:
ClusterNodeInfo.java DocumentNodeStore.java
Author: reschke
Date: Fri Feb 19 18:41:34 2021
New Revision: 1886696
URL: http://svn.apache.org/viewvc?rev=1886696&view=rev
Log:
OAK-9356: DocumentNodeStore: in dispose(), improve lease update diagnostics
Modified:
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java?rev=1886696&r1=1886695&r2=1886696&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/ClusterNodeInfo.java Fri Feb 19 18:41:34 2021
@@ -835,7 +835,7 @@ public class ClusterNodeInfo {
* @return {@code true} if the lease is considered expired, {@code false}
* otherwise.
*/
- private boolean isLeaseExpired(long time) {
+ protected boolean isLeaseExpired(long time) {
return time >= (leaseEndTime - leaseFailureMargin);
}
Modified: jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java?rev=1886696&r1=1886695&r2=1886696&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java (original)
+++ jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStore.java Fri Feb 19 18:41:34 2021
@@ -883,6 +883,27 @@ public final class DocumentNodeStore
Utils.joinQuietly(clusterUpdateThread);
+ // attempt diagnostics on lease update thread
+ boolean isLeaseExpired = clusterNodeInfo.isLeaseExpired(clock.getTime());
+ Thread.State leaseUpdateState = leaseUpdateThread.getState();
+ if (leaseUpdateState == Thread.State.TERMINATED) {
+ LOG.error("leaseUpdateThread (" + leaseUpdateThread.getName() + ") is terminated");
+ }
+
+ if (isLeaseExpired || LOG.isDebugEnabled()) {
+ StringBuilder message = new StringBuilder(
+ "Status of lease update thread (" + leaseUpdateThread.getName() + "): " + leaseUpdateState + "; Stack Trace:");
+ for (StackTraceElement se : leaseUpdateThread.getStackTrace()) {
+ message.append("\n\tat ");
+ message.append(se.toString());
+ }
+ if (isLeaseExpired) {
+ LOG.info(message.toString());
+ } else {
+ LOG.debug(message.toString());
+ }
+ }
+
// Stop lease update thread once no further document store operations
// are required
LOG.debug("Stopping LeaseUpdate thread...");