From 5bf287bc9f92c5b0893e1dade87453be153d07c1 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 17 Dec 2013 16:30:13 +0000
Subject: [PATCH] OPENDJ-1172 Deadlock between replication threads during shutdown
---
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java | 28 ++++++++++------------------
1 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java
index f0bc953..166accf 100644
--- a/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java
+++ b/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java
@@ -32,7 +32,6 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
-import org.opends.messages.MessageBuilder;
import org.opends.server.admin.std.server.MonitorProviderCfg;
import org.opends.server.api.DirectoryThread;
import org.opends.server.api.MonitorProvider;
@@ -283,15 +282,15 @@
Thread.currentThread().interrupt();
}
}
- } catch (Exception end)
+ }
+ catch (Exception end)
{
- MessageBuilder mb = new MessageBuilder();
- mb.append(ERR_EXCEPTION_CHANGELOG_TRIM_FLUSH.get());
- mb.append(" ");
- mb.append(stackTraceToSingleLineString(end));
- logError(mb.toMessage());
+ logError(ERR_EXCEPTION_CHANGELOG_TRIM_FLUSH
+ .get(stackTraceToSingleLineString(end)));
if (replicationServer != null)
+ {
replicationServer.shutdown();
+ }
break;
}
try {
@@ -309,13 +308,12 @@
}
} catch (Exception end)
{
- MessageBuilder mb = new MessageBuilder();
- mb.append(ERR_EXCEPTION_CHANGELOG_TRIM_FLUSH.get());
- mb.append(" ");
- mb.append(stackTraceToSingleLineString(end));
- logError(mb.toMessage());
+ logError(ERR_EXCEPTION_CHANGELOG_TRIM_FLUSH
+ .get(stackTraceToSingleLineString(end)));
if (replicationServer != null)
+ {
replicationServer.shutdown();
+ }
break;
}
}
@@ -454,18 +452,12 @@
}
catch (ChangelogException e)
{
- // mark shutdown for this db so that we don't try again to
- // stop it from cursor.close() or methods called by cursor.close()
cursor.abort();
- shutdown.set(true);
throw e;
}
catch (Exception e)
{
- // mark shutdown for this db so that we don't try again to
- // stop it from cursor.close() or methods called by cursor.close()
cursor.abort();
- shutdown.set(true);
throw new ChangelogException(e);
}
}
--
Gitblit v1.10.0