You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by st...@apache.org on 2015/11/05 14:35:31 UTC
svn commit: r1712764 - in /sling/trunk/bundles/extensions/discovery:
base/src/test/java/org/apache/sling/discovery/base/its/AbstractDiscoveryServiceTest.java
impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java
Author: stefanegli
Date: Thu Nov 5 13:35:30 2015
New Revision: 1712764
URL: http://svn.apache.org/viewvc?rev=1712764&view=rev
Log:
SLING-5264 follow-up : adding more logging to analyzeVotings/promote and AbstractDiscoveryServiceTest to track down still existing issue
Modified:
sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractDiscoveryServiceTest.java
sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java
Modified: sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractDiscoveryServiceTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractDiscoveryServiceTest.java?rev=1712764&r1=1712763&r2=1712764&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractDiscoveryServiceTest.java (original)
+++ sling/trunk/bundles/extensions/discovery/base/src/test/java/org/apache/sling/discovery/base/its/AbstractDiscoveryServiceTest.java Thu Nov 5 13:35:30 2015
@@ -252,59 +252,74 @@ public abstract class AbstractDiscoveryS
@Test
public void testSingleInstance() throws Throwable {
+ logger.info("testSingleInstances: start");
Tester single = newInstance("single", 1, 5, 50, null);
single.instance.dumpRepo();
+ logger.info("testSingleInstances: starting retry loop (10sec max)");
startRetryLoop(testers, 10);
single.assertNoFailures();
assertStableTopology(single);
+ logger.info("testSingleInstances: end");
}
@Test
public void testTwoInstances() throws Throwable {
+ logger.info("testTwoInstances: start");
Tester i1 = newInstance("i1", 1, 10, 100, null);
Tester i2 = newInstance("i2", 1, 10, 100, i1.instance);
+ logger.info("testTwoInstances: starting retry loop (15sec max)");
startRetryLoop(testers, 15);
i1.instance.dumpRepo();
i1.assertNoFailures();
i2.assertNoFailures();
assertStableTopology(i1, i2);
+ logger.info("testTwoInstances: end");
}
@Test
public void testTenInstances() throws Throwable {
+ logger.info("testTenInstances: start");
Tester i1 = newInstance("i1", 1, 30, 250, null);
for(int i=2; i<=10; i++) {
Tester in = newInstance("i"+i, 1, 30, 250, i1.instance);
}
+ logger.info("testTenInstances: starting retry loop (60sec max)");
startRetryLoop(testers, 60);
i1.instance.dumpRepo();
i1.assertNoFailures();
assertStableTopology(testers.toArray(new Tester[0]));
+ logger.info("testTenInstances: end");
}
@Test
public void testTwentyInstances() throws Throwable {
+ logger.info("testTwentyInstances: start");
Tester i1 = newInstance("i1", 1, 60, 1000, null);
for(int i=2; i<=20; i++) {
Tester in = newInstance("i"+i, 1, 60, 1000, i1.instance);
}
+ logger.info("testThirtyInstances: starting retry loop (80 sec max)");
startRetryLoop(testers, 80);
i1.instance.dumpRepo();
i1.assertNoFailures();
assertStableTopology(testers.toArray(new Tester[0]));
+ logger.info("testTwentyInstances: end");
}
@Test
public void testThirtyInstances() throws Throwable {
+ logger.info("testThirtyInstances: start");
Tester i1 = newInstance("i1", 4, 120, 1000, null);
for(int i=2; i<=30; i++) {
Tester in = newInstance("i"+i, 4, 120, 2000, i1.instance);
Thread.sleep(1000);
}
+ logger.info("testThirtyInstances: starting retry loop (180sec max)");
startRetryLoop(testers, 180);
i1.instance.dumpRepo();
i1.assertNoFailures();
assertStableTopology(testers.toArray(new Tester[0]));
+ logger.info("testThirtyInstances: end");
}
private void startRetryLoop(final List<Tester> testers, int retryTimeoutSeconds) {
Modified: sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java?rev=1712764&r1=1712763&r2=1712764&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java (original)
+++ sling/trunk/bundles/extensions/discovery/impl/src/main/java/org/apache/sling/discovery/impl/cluster/voting/VotingHandler.java Thu Nov 5 13:35:30 2015
@@ -241,7 +241,15 @@ public class VotingHandler implements Ev
if (winningVote.isInitiatedBy(slingId)) {
logger.info("analyzeVotings: my voting was winning. I'll mark it as established then! "
+ winningVote);
- promote(resourceResolver, winningVote.getResource());
+ try{
+ promote(resourceResolver, winningVote.getResource());
+ } catch (RuntimeException re) {
+ logger.error("analyzeVotings: RuntimeException during promotion: "+re, re);
+ throw re;
+ } catch (Error er) {
+ logger.error("analyzeVotings: Error during promotion: "+er, er);
+ throw er;
+ }
// SLING-3406: committing resourceResolver/session here, while we're in the synchronized
resourceResolver.commit();
@@ -439,8 +447,10 @@ public class VotingHandler implements Ev
.getChildren().iterator();
String leaderElectionId = null;
String leaderid = null;
+ int membersCount = 0;
while (it2.hasNext()) {
Resource aMember = it2.next();
+ membersCount++;
String leid = aMember.adaptTo(ValueMap.class).get(
"leaderElectionId", String.class);
if (leaderElectionId == null
@@ -462,8 +472,8 @@ public class VotingHandler implements Ev
// 3b: move the result under /established
final String newEstablishedViewPath = establishedViewsResource.getPath()
+ "/" + winningVoteResource.getName();
- logger.info("promote: promote to new established node "
- + newEstablishedViewPath);
+ logger.info("promote: promoting to new established node (#members: " + membersCount + ", path: "
+ + newEstablishedViewPath + ")");
ResourceHelper.moveResource(winningVoteResource, newEstablishedViewPath);
// step 4: delete all ongoing votings...
@@ -473,6 +483,7 @@ public class VotingHandler implements Ev
Iterator<Resource> it4 = ongoingVotingsChildren.iterator();
while (it4.hasNext()) {
Resource anOngoingVoting = it4.next();
+ logger.info("promote: deleting ongoing voting: "+anOngoingVoting.getName());
resourceResolver.delete(anOngoingVoting);
}
}
@@ -502,6 +513,8 @@ public class VotingHandler implements Ev
logger.debug("promote: done with promotiong. saving.");
resourceResolver.commit();
+ logger.info("promote: promotion done (#members: " + membersCount + ", path: "
+ + newEstablishedViewPath + ")");
}
public void setLeaderElectionId(String leaderElectionId) {