Repository: activemq-artemis Updated Branches: refs/heads/master 154e9d610 -> 030f2fc59
Revert "ARTEMIS-187 hold lock between live server and tools" This reverts commit f0f4f1684d083170764f7bd3a273c60f44aaa464. Sorry about this.. I will rework this and send a commit again Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/030f2fc5 Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/030f2fc5 Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/030f2fc5 Branch: refs/heads/master Commit: 030f2fc59aa92a2630cedb70e19a73bdcaedf511 Parents: 154e9d6 Author: Clebert Suconic <clebertsuco...@apache.org> Authored: Fri Aug 14 01:02:11 2015 -0400 Committer: Clebert Suconic <clebertsuco...@apache.org> Committed: Fri Aug 14 01:02:39 2015 -0400 ---------------------------------------------------------------------- .../cli/commands/tools/CompactJournal.java | 2 -- .../cli/commands/tools/DataAbstract.java | 31 -------------------- .../artemis/cli/commands/tools/PrintData.java | 2 -- .../cli/commands/tools/XmlDataExporter.java | 2 -- .../apache/activemq/cli/test/ArtemisTest.java | 9 ------ .../artemis/core/server/NodeManager.java | 3 -- .../core/server/impl/ActiveMQServerImpl.java | 5 ++-- .../core/server/impl/FileLockNodeManager.java | 9 ------ .../core/server/impl/InVMNodeManager.java | 7 ----- .../core/server/impl/LiveOnlyActivation.java | 21 ++++--------- .../discovery/DiscoveryBaseTest.java | 6 ---- 11 files changed, 7 insertions(+), 90 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/CompactJournal.java ---------------------------------------------------------------------- diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/CompactJournal.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/CompactJournal.java index ba0e9ce..af55345 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/CompactJournal.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/CompactJournal.java @@ -33,14 +33,12 @@ public final class CompactJournal extends DataAbstract implements Action { public Object execute(ActionContext context) throws Exception { super.execute(context); try { - testLock(); Configuration configuration = getFileConfiguration(); compactJournal(new File(getJournal()), "activemq-data", "amq", configuration.getJournalMinFiles(), configuration.getJournalFileSize(), null); compactJournal(new File(getBinding()), "activemq-bindings", "bindings", 2, 1048576, null); } catch (Exception e) { treatError(e, "data", "compact"); - return e; } return null; } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/DataAbstract.java ---------------------------------------------------------------------- diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/DataAbstract.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/DataAbstract.java index 47edaee..c08dd44 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/DataAbstract.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/DataAbstract.java @@ -18,15 +18,9 @@ package org.apache.activemq.artemis.cli.commands.tools; import java.io.File; -import java.nio.channels.FileLock; import io.airlift.airline.Option; import org.apache.activemq.artemis.cli.commands.Configurable; -import org.apache.activemq.artemis.core.config.Configuration; -import org.apache.activemq.artemis.core.server.JournalType; -import org.apache.activemq.artemis.core.server.impl.AIOFileLockNodeManager; -import org.apache.activemq.artemis.core.server.impl.FileLockNodeManager; -import org.apache.activemq.artemis.jlibaio.LibaioContext; /** * Abstract class for places where you need bindings, journal paging and large messages configuration @@ -45,31 +39,6 @@ public abstract class DataAbstract extends Configurable { @Option(name = "--large-messages", description = "The folder used for large-messages (default from broker.xml)") public String largeMessges; - - protected void testLock() throws Exception { - - FileLockNodeManager fileLockNodeManager; - Configuration configuration = getFileConfiguration(); - if (getFileConfiguration().getJournalType() == JournalType.ASYNCIO && LibaioContext.isLoaded()) { - fileLockNodeManager = new AIOFileLockNodeManager(new File(getJournal()), false, configuration.getJournalLockAcquisitionTimeout()); - } - else { - fileLockNodeManager = new FileLockNodeManager(new File(getJournal()), false, configuration.getJournalLockAcquisitionTimeout()); - } - - fileLockNodeManager.start(); - - try (FileLock lock = fileLockNodeManager.tryLockLive()) { - if (lock == null) { - throw new RuntimeException("Server is locked!"); - } - } - finally { - fileLockNodeManager.stop(); - } - - } - public String getLargeMessages() throws Exception { if (largeMessges == null) { largeMessges = getFileConfiguration().getLargeMessagesLocation().getAbsolutePath(); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/PrintData.java ---------------------------------------------------------------------- diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/PrintData.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/PrintData.java index 0802b13..68dc5dc 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/PrintData.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/PrintData.java @@ -63,12 +63,10 @@ public class PrintData extends DataAbstract implements Action { public Object execute(ActionContext context) throws Exception { super.execute(context); try { - testLock(); printData(new File(getBinding()), new File(getJournal()), new File(getPaging())); } catch (Exception e) { treatError(e, "data", "print"); - return e; } return null; } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/XmlDataExporter.java ---------------------------------------------------------------------- diff --git a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/XmlDataExporter.java b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/XmlDataExporter.java index 66101b9..0d96aae 100644 --- a/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/XmlDataExporter.java +++ b/artemis-cli/src/main/java/org/apache/activemq/artemis/cli/commands/tools/XmlDataExporter.java @@ -129,12 +129,10 @@ public final class XmlDataExporter extends DataAbstract implements Action { super.execute(context); try { - testLock(); process(context.out, getBinding(), getJournal(), getPaging(), getLargeMessages()); } catch (Exception e) { treatError(e, "data", "exp"); - return e; } return null; } http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java ---------------------------------------------------------------------- diff --git a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java index b6b5ac7..cfcc53f 100644 --- a/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java +++ b/artemis-cli/src/test/java/org/apache/activemq/cli/test/ArtemisTest.java @@ -93,15 +93,6 @@ public class ArtemisTest { // Some exceptions may happen on the initialization, but they should be ok on start the basic core protocol Artemis.execute("run"); - Object object = Artemis.execute("data", "print"); - Assert.assertTrue("An error was expected", object != null && object instanceof Throwable); - - object = Artemis.execute("data", "compact"); - Assert.assertTrue("An error was expected", object != null && object instanceof Throwable); - - object = Artemis.execute("data", "exp"); - Assert.assertTrue("An error was expected", object != null && object instanceof Throwable); - try (ServerLocator locator = ServerLocatorImpl.newLocator("tcp://localhost:61616"); ClientSessionFactory factory = locator.createSessionFactory(); ClientSession coreSession = factory.createSession()) { http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/NodeManager.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/NodeManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/NodeManager.java index 222f0ce..421daaa 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/NodeManager.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/NodeManager.java @@ -21,7 +21,6 @@ import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; -import java.nio.channels.FileLock; import org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException; import org.apache.activemq.artemis.api.core.SimpleString; @@ -131,8 +130,6 @@ public abstract class NodeManager implements ActiveMQComponent { releaseBackup(); } - public abstract FileLock tryLockLive(); - /** * Ensures existence of persistent information about the server's nodeID. * <p> http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java index de19512..8853154 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/ActiveMQServerImpl.java @@ -347,10 +347,9 @@ public class ActiveMQServerImpl implements ActiveMQServer { protected NodeManager createNodeManager(final File directory, boolean replicatingBackup) { NodeManager manager; if (!configuration.isPersistenceEnabled()) { - return new InVMNodeManager(replicatingBackup); + manager = new InVMNodeManager(replicatingBackup); } - - if (configuration.getJournalType() == JournalType.ASYNCIO && LibaioContext.isLoaded()) { + else if (configuration.getJournalType() == JournalType.ASYNCIO && LibaioContext.isLoaded()) { manager = new AIOFileLockNodeManager(directory, replicatingBackup, configuration.getJournalLockAcquisitionTimeout()); } else { http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/FileLockNodeManager.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/FileLockNodeManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/FileLockNodeManager.java index 4b4134b..acb431d 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/FileLockNodeManager.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/FileLockNodeManager.java @@ -73,15 +73,6 @@ public class FileLockNodeManager extends NodeManager { super.start(); } - public FileLock tryLockLive() { - try { - return tryLock(FileLockNodeManager.LIVE_LOCK_POS); - } - catch (Exception e) { - throw new RuntimeException(e.getMessage(), e); - } - } - @Override public boolean isAwaitingFailback() throws Exception { return getState() == FileLockNodeManager.FAILINGBACK; http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/InVMNodeManager.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/InVMNodeManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/InVMNodeManager.java index c11c810..726cb50 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/InVMNodeManager.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/InVMNodeManager.java @@ -18,7 +18,6 @@ package org.apache.activemq.artemis.core.server.impl; import java.io.File; import java.io.IOException; -import java.nio.channels.FileLock; import java.util.concurrent.Semaphore; import org.apache.activemq.artemis.api.core.ActiveMQIllegalStateException; @@ -97,12 +96,6 @@ public final class InVMNodeManager extends NodeManager { } @Override - public FileLock tryLockLive() { - // no op.. doesn't make sense on InVM - return null; - } - - @Override public void startLiveNode() throws Exception { state = FAILING_BACK; liveLock.acquire(); http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/LiveOnlyActivation.java ---------------------------------------------------------------------- diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/LiveOnlyActivation.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/LiveOnlyActivation.java index 0a6c07e..1c82bbf 100644 --- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/LiveOnlyActivation.java +++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/LiveOnlyActivation.java @@ -16,11 +16,6 @@ */ package org.apache.activemq.artemis.core.server.impl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentMap; - import org.apache.activemq.artemis.api.core.ActiveMQException; import org.apache.activemq.artemis.api.core.Pair; import org.apache.activemq.artemis.api.core.SimpleString; @@ -37,6 +32,11 @@ import org.apache.activemq.artemis.core.server.cluster.ActiveMQServerSideProtoco import org.apache.activemq.artemis.core.server.cluster.ha.LiveOnlyPolicy; import org.apache.activemq.artemis.core.server.cluster.ha.ScaleDownPolicy; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentMap; + public class LiveOnlyActivation extends Activation { //this is how we act when we initially start as live @@ -55,11 +55,6 @@ public class LiveOnlyActivation extends Activation { public void run() { try { - - /* We will hold a lock here so print-data and other tools - * won't be able to run */ - activeMQServer.getNodeManager().startLiveNode(); - activeMQServer.initialisePart1(false); activeMQServer.initialisePart2(false); @@ -84,12 +79,6 @@ public class LiveOnlyActivation extends Activation { scaleDownServerLocator.close(); scaleDownServerLocator = null; } - - try { - activeMQServer.getNodeManager().stop(); - } - catch (Throwable ignored) { - } } public void freezeConnections(RemotingService remotingService) { http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/030f2fc5/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/discovery/DiscoveryBaseTest.java ---------------------------------------------------------------------- diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/discovery/DiscoveryBaseTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/discovery/DiscoveryBaseTest.java index e2e450b..06bc14e 100644 --- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/discovery/DiscoveryBaseTest.java +++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/discovery/DiscoveryBaseTest.java @@ -17,7 +17,6 @@ package org.apache.activemq.artemis.tests.integration.discovery; import java.net.InetAddress; -import java.nio.channels.FileLock; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -178,11 +177,6 @@ public class DiscoveryBaseTest extends ActiveMQTestBase { } @Override - public FileLock tryLockLive() { - return null; - } - - @Override public void awaitLiveNode() throws Exception { }