You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jb...@apache.org on 2017/03/10 03:20:14 UTC

[1/6] activemq-artemis git commit: ARTEMIS-1029 Fixing Paging issues

Repository: activemq-artemis
Updated Branches:
  refs/heads/master ed1d4c094 -> c1c0354d9


ARTEMIS-1029 Fixing Paging issues

- Browser out of order
- PageStore not being cleared


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/b73828a0
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/b73828a0
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/b73828a0

Branch: refs/heads/master
Commit: b73828a0f4be333a0b9a6552db3778f4224f0089
Parents: 761f422
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Mar 9 21:44:12 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 9 22:12:58 2017 -0500

----------------------------------------------------------------------
 .../artemis/core/server/impl/ActiveMQServerImpl.java    |  1 +
 .../activemq/artemis/core/server/impl/QueueImpl.java    | 12 ++++++++++--
 .../tests/integration/client/TemporaryQueueTest.java    |  3 ++-
 3 files changed, 13 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b73828a0/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 2b5ecaf..c31a323 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
@@ -2420,6 +2420,7 @@ public class ActiveMQServerImpl implements ActiveMQServer {
       long txID = storageManager.generateID();
       storageManager.deleteAddressBinding(txID, addressInfo.getId());
       storageManager.commitBindings(txID);
+      pagingManager.deletePageStore(address);
    }
 
    @Override

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b73828a0/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
index 44c5ba4..e04cf47 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/impl/QueueImpl.java
@@ -49,6 +49,7 @@ import org.apache.activemq.artemis.api.core.management.CoreNotificationType;
 import org.apache.activemq.artemis.api.core.management.ManagementHelper;
 import org.apache.activemq.artemis.core.filter.Filter;
 import org.apache.activemq.artemis.core.io.IOCallback;
+import org.apache.activemq.artemis.core.paging.cursor.PagePosition;
 import org.apache.activemq.artemis.core.paging.cursor.PageSubscription;
 import org.apache.activemq.artemis.core.paging.cursor.PagedReference;
 import org.apache.activemq.artemis.core.persistence.QueueStatus;
@@ -2968,6 +2969,7 @@ public class QueueImpl implements Queue {
       Iterator lastIterator = null;
 
       MessageReference cachedNext = null;
+      HashSet<PagePosition> previouslyBrowsed = new HashSet();
 
       private QueueBrowserIterator() {
          messagesIterator = new SynchronizedIterator(messageReferences.iterator());
@@ -3003,15 +3005,21 @@ public class QueueImpl implements Queue {
          while (true) {
             if (messagesIterator != null && messagesIterator.hasNext()) {
                MessageReference msg = messagesIterator.next();
+               if (msg.isPaged()) {
+                  previouslyBrowsed.add(((PagedReference)msg).getPosition());
+               }
                return msg;
             } else {
                break;
             }
          }
          if (getPagingIterator() != null) {
-            if (getPagingIterator().hasNext()) {
+            while (getPagingIterator().hasNext()) {
                lastIterator = getPagingIterator();
-               MessageReference ref = getPagingIterator().next();
+               PagedReference ref = getPagingIterator().next();
+               if (previouslyBrowsed.contains(ref.getPosition())) {
+                  continue;
+               }
                return ref;
             }
          }

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/b73828a0/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java
index 5be1638..86b194e 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/TemporaryQueueTest.java
@@ -135,12 +135,13 @@ public class TemporaryQueueTest extends SingleServerTestBase {
       assertTrue(Arrays.asList(storeNames).contains(address));
 
       consumer.close();
+
       session.deleteQueue(queue);
+      session.close();
 
       storeNames = server.getPagingManager().getStoreNames();
       assertFalse(Arrays.asList(storeNames).contains(address));
 
-      session.close();
    }
 
    @Test


[5/6] activemq-artemis git commit: ARTEMIS-1029 speeding up JmsNettyNioStressTest

Posted by jb...@apache.org.
ARTEMIS-1029 speeding up JmsNettyNioStressTest


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/6a323eb8
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/6a323eb8
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/6a323eb8

Branch: refs/heads/master
Commit: 6a323eb832c48c9e958368851e7d3330ed3257d3
Parents: b73828a
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Mar 9 21:53:14 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 9 22:12:59 2017 -0500

----------------------------------------------------------------------
 .../integration/client/JmsNettyNioStressTest.java | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/6a323eb8/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java
index ac1163d..081dc79 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/client/JmsNettyNioStressTest.java
@@ -41,6 +41,7 @@ import org.apache.activemq.artemis.api.core.RoutingType;
 import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
 import org.apache.activemq.artemis.jms.client.ActiveMQDestination;
 import org.apache.activemq.artemis.tests.util.ActiveMQTestBase;
+import org.apache.activemq.artemis.tests.util.Wait;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -111,9 +112,9 @@ public class JmsNettyNioStressTest extends ActiveMQTestBase {
       final int numberOfMessages = 100;
 
       // these must all be the same
-      final int numProducers = 30;
-      final int numConsumerProducers = 30;
-      final int numConsumers = 30;
+      final int numProducers = 5;
+      final int numConsumerProducers = 5;
+      final int numConsumers = 5;
 
       // each produce, consume+produce and consume increments this counter
       final AtomicInteger totalCount = new AtomicInteger(0);
@@ -261,15 +262,8 @@ public class JmsNettyNioStressTest extends ActiveMQTestBase {
          }.start();
       }
 
-      // check that the overall transaction count reaches the expected number,
-      // which would indicate that the system didn't stall
-      int timeoutCounter = 0;
-      int maxSecondsToWait = 60;
-      while (timeoutCounter < maxSecondsToWait && totalCount.get() < totalExpectedCount) {
-         timeoutCounter++;
-         Thread.sleep(1000);
-         System.out.println("Not done yet.. " + (maxSecondsToWait - timeoutCounter) + "; " + totalCount.get());
-      }
+      Wait.waitFor(() -> totalExpectedCount == totalCount.get(), 60000, 100);
+
       System.out.println("Done.." + totalCount.get() + ", expected " + totalExpectedCount);
       Assert.assertEquals("Possible deadlock", totalExpectedCount, totalCount.get());
       System.out.println("After assert");


[3/6] activemq-artemis git commit: ARTEMIS-1029 Fixing Scaledown tests

Posted by jb...@apache.org.
ARTEMIS-1029 Fixing Scaledown tests


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/761f4227
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/761f4227
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/761f4227

Branch: refs/heads/master
Commit: 761f42277d33aeaf6505ccf00feaaa11fcfd3d0f
Parents: 5534d00
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Mar 9 21:42:54 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 9 22:12:58 2017 -0500

----------------------------------------------------------------------
 .../artemis/core/server/cluster/ClusterController.java  | 12 +++++++++---
 .../artemis/core/server/cluster/ClusterManager.java     |  4 +---
 2 files changed, 10 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/761f4227/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterController.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterController.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterController.java
index b47dca9..98b550e 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterController.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterController.java
@@ -109,9 +109,15 @@ public class ClusterController implements ActiveMQComponent {
       //latch so we know once we are connected
       replicationClusterConnectedLatch = new CountDownLatch(1);
       //and add the quorum manager as a topology listener
-      defaultLocator.addClusterTopologyListener(quorumManager);
-      //start the quorum manager
-      quorumManager.start();
+      if (defaultLocator != null) {
+         defaultLocator.addClusterTopologyListener(quorumManager);
+      }
+
+      if (quorumManager != null) {
+         //start the quorum manager
+         quorumManager.start();
+      }
+
       started = true;
       //connect all the locators in a separate thread
       for (ServerLocatorInternal serverLocatorInternal : locators.values()) {

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/761f4227/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterManager.java
----------------------------------------------------------------------
diff --git a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterManager.java b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterManager.java
index 7d0faba..d2219c2 100644
--- a/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterManager.java
+++ b/artemis-server/src/main/java/org/apache/activemq/artemis/core/server/cluster/ClusterManager.java
@@ -247,9 +247,7 @@ public final class ClusterManager implements ActiveMQComponent {
       /*
       * only start if we are actually in a cluster
       * */
-      if (clusterConnections.size() > 0) {
-         clusterController.start();
-      }
+      clusterController.start();
    }
 
    @Override


[2/6] activemq-artemis git commit: ARTEMIS-1009 Fixing ActiveMQServerControlTest

Posted by jb...@apache.org.
ARTEMIS-1009 Fixing ActiveMQServerControlTest


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/38305d27
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/38305d27
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/38305d27

Branch: refs/heads/master
Commit: 38305d275131ca12770edb9c1938d6c34ce03e80
Parents: ed1d4c0
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Mar 9 19:14:59 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 9 22:12:58 2017 -0500

----------------------------------------------------------------------
 .../integration/management/ActiveMQServerControlTest.java    | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/38305d27/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
index eb83031..7d84e1f 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/management/ActiveMQServerControlTest.java
@@ -267,7 +267,6 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
       ActiveMQServerControl serverControl = createManagementControl();
 
       checkNoResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST));
-      serverControl.createAddress(address.toString(), "ANYCAST");
       serverControl.createQueue(address.toString(), RoutingType.ANYCAST.toString(), name.toString(), null, durable, maxConsumers, purgeOnNoConsumers, autoCreateAddress);
 
       checkResource(ObjectNameBuilder.DEFAULT.getQueueObjectName(address, name, RoutingType.ANYCAST));
@@ -404,11 +403,10 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
       // management operations
 
       Assert.assertFalse(ActiveMQServerControlTest.contains(address.toString(), serverControl.getAddressNames()));
-      serverControl.createAddress(address.toString(), "ANYCAST");
-      serverControl.createQueue(address.toString(), "ANYCAST", name.toString(), null, true, -1, false, false);
+      serverControl.createQueue(address.toString(), "ANYCAST", name.toString(), null, true, -1, false, true);
       Assert.assertTrue(ActiveMQServerControlTest.contains(address.toString(), serverControl.getAddressNames()));
 
-      serverControl.destroyQueue(name.toString());
+      serverControl.destroyQueue(name.toString(), true, true);
       Assert.assertFalse(ActiveMQServerControlTest.contains(address.toString(), serverControl.getAddressNames()));
    }
 
@@ -1427,7 +1425,7 @@ public class ActiveMQServerControlTest extends ManagementTestBase {
       SimpleString address = new SimpleString("testQueue");
       HashMap<String, Object> params = new HashMap<>();
       params.put(TransportConstants.SERVER_ID_PROP_NAME, "2");
-      Configuration config = createDefaultInVMConfig(2).clearAcceptorConfigurations().addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName(), params));
+      Configuration config = createDefaultInVMConfig(2).clearAcceptorConfigurations().addAcceptorConfiguration(new TransportConfiguration(InVMAcceptorFactory.class.getName(), params)).setSecurityEnabled(false);
       ActiveMQServer server2 = addServer(ActiveMQServers.newActiveMQServer(config, null, true));
 
       this.conf.clearConnectorConfigurations().addConnectorConfiguration("server2-connector", new TransportConfiguration(INVM_CONNECTOR_FACTORY, params));


[4/6] activemq-artemis git commit: ARTEMIS-1029 Fixing PagingOrderTest

Posted by jb...@apache.org.
ARTEMIS-1029 Fixing PagingOrderTest


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/5534d00f
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/5534d00f
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/5534d00f

Branch: refs/heads/master
Commit: 5534d00fab5f33d7bfac4e0ac09b215d5ac8810f
Parents: 38305d2
Author: Clebert Suconic <cl...@apache.org>
Authored: Thu Mar 9 21:41:59 2017 -0500
Committer: Clebert Suconic <cl...@apache.org>
Committed: Thu Mar 9 22:12:58 2017 -0500

----------------------------------------------------------------------
 .../artemis/tests/integration/paging/PagingOrderTest.java    | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/5534d00f/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingOrderTest.java
----------------------------------------------------------------------
diff --git a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingOrderTest.java b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingOrderTest.java
index a0fe205..bffcd91 100644
--- a/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingOrderTest.java
+++ b/tests/integration-tests/src/test/java/org/apache/activemq/artemis/tests/integration/paging/PagingOrderTest.java
@@ -186,9 +186,9 @@ public class PagingOrderTest extends ActiveMQTestBase {
       ClientSession session = sf.createSession(false, false, false);
 
       server.addAddressInfo(new AddressInfo(ADDRESS, RoutingType.ANYCAST));
-      Queue q1 = server.createQueue(ADDRESS, RoutingType.ANYCAST, ADDRESS, null, true, false);
+      Queue q1 = server.createQueue(ADDRESS, RoutingType.MULTICAST, ADDRESS, null, true, false);
 
-      Queue q2 = server.createQueue(ADDRESS, RoutingType.ANYCAST, new SimpleString("inactive"), null, true, false);
+      Queue q2 = server.createQueue(ADDRESS, RoutingType.MULTICAST, new SimpleString("inactive"), null, true, false);
 
       ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
 
@@ -316,9 +316,9 @@ public class PagingOrderTest extends ActiveMQTestBase {
       ClientSession session = sf.createSession(false, false, false);
 
       server.addAddressInfo(new AddressInfo(ADDRESS, RoutingType.ANYCAST));
-      Queue q1 = server.createQueue(ADDRESS, RoutingType.ANYCAST, ADDRESS, null, true, false);
+      Queue q1 = server.createQueue(ADDRESS, RoutingType.MULTICAST, ADDRESS, null, true, false);
 
-      Queue q2 = server.createQueue(ADDRESS, RoutingType.ANYCAST, new SimpleString("inactive"), null, true, false);
+      Queue q2 = server.createQueue(ADDRESS, RoutingType.MULTICAST, new SimpleString("inactive"), null, true, false);
 
       ClientProducer producer = session.createProducer(PagingTest.ADDRESS);
 


[6/6] activemq-artemis git commit: This closes #1082

Posted by jb...@apache.org.
This closes #1082


Project: http://git-wip-us.apache.org/repos/asf/activemq-artemis/repo
Commit: http://git-wip-us.apache.org/repos/asf/activemq-artemis/commit/c1c0354d
Tree: http://git-wip-us.apache.org/repos/asf/activemq-artemis/tree/c1c0354d
Diff: http://git-wip-us.apache.org/repos/asf/activemq-artemis/diff/c1c0354d

Branch: refs/heads/master
Commit: c1c0354d9204021efe9050092593df7966878041
Parents: ed1d4c0 6a323eb
Author: Justin Bertram <jb...@apache.org>
Authored: Thu Mar 9 21:19:38 2017 -0600
Committer: Justin Bertram <jb...@apache.org>
Committed: Thu Mar 9 21:19:38 2017 -0600

----------------------------------------------------------------------
 .../core/server/cluster/ClusterController.java    | 12 +++++++++---
 .../core/server/cluster/ClusterManager.java       |  4 +---
 .../core/server/impl/ActiveMQServerImpl.java      |  1 +
 .../artemis/core/server/impl/QueueImpl.java       | 12 ++++++++++--
 .../integration/client/JmsNettyNioStressTest.java | 18 ++++++------------
 .../integration/client/TemporaryQueueTest.java    |  3 ++-
 .../management/ActiveMQServerControlTest.java     |  8 +++-----
 .../tests/integration/paging/PagingOrderTest.java |  8 ++++----
 8 files changed, 36 insertions(+), 30 deletions(-)
----------------------------------------------------------------------