From: Alessandro Boch Date: Tue, 27 Aug 2013 20:39:05 +0000 (+0000) Subject: Merge "On ARPHandler restart Threads are left dangling, very visible in the IT tests" X-Git-Tag: releasepom-0.1.0~161 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=3f3012bc570eed553b7d41f2e4ff01e997b9d94d;hp=de67f4a01a2c0ee5a2ac5af51202277765617b2a Merge "On ARPHandler restart Threads are left dangling, very visible in the IT tests" --- diff --git a/.gitignore b/.gitignore index d1b82619fd..52881a35c0 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,8 @@ target .settings MANIFEST.MF opendaylight/northbound/integrationtest/logs/* +*.ipr +*.iml +*.iws +.idea + diff --git a/opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java b/opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java index c3fd30ae9b..f5c655a4ea 100644 --- a/opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java +++ b/opendaylight/clustering/services_implementation/src/main/java/org/opendaylight/controller/clustering/services_implementation/internal/ClusterManager.java @@ -227,7 +227,8 @@ public class ClusterManager implements IClusterServices, IContainerAware { if (amIGossipRouter) { logger.info("I'm a GossipRouter will listen on port {}", gossipRouterPort); - res = new GossipRouter(gossipRouterPort); + // Start a GossipRouter with JMX support + res = new GossipRouter(gossipRouterPort, null, true); } return res; } diff --git a/opendaylight/distribution/opendaylight/src/main/resources/run.sh b/opendaylight/distribution/opendaylight/src/main/resources/run.sh index 2587a5d2ab..2daa1f42e3 100755 --- a/opendaylight/distribution/opendaylight/src/main/resources/run.sh +++ b/opendaylight/distribution/opendaylight/src/main/resources/run.sh @@ -40,7 +40,7 @@ JVM at path ${JAVA_HOME}/bin/java check your JAVA_HOME" && exit -1; basedir=`dirname ${fullpath}` function usage { - echo "Usage: $0 [-debug] [-debugsuspend] [-debugport ] [-start []] [-stop] [-status] [-console] [-help] []" + echo "Usage: $0 [-jmx] [-jmxport ] [-debug] [-debugsuspend] [-debugport ] [-start []] [-stop] [-status] [-console] [-help] []" exit 1 } @@ -56,6 +56,9 @@ debugportread="" startdaemon=0 daemonport=2400 daemonportread="" +jmxport=1088 +jmxportread="" +startjmx=0 stopdaemon=0 statusdaemon=0 consolestart=1 @@ -65,8 +68,10 @@ unknown_option=0 while true ; do case "$1" in -debug) debug=1; shift ;; + -jmx) startjmx=1; shift ;; -debugsuspend) debugsuspend=1; shift ;; -debugport) shift; debugportread="$1"; if [[ "${debugportread}" =~ ^[0-9]+$ ]] ; then debugport=${debugportread}; shift; else echo "-debugport expects a number but was not found"; exit -1; fi;; + -jmxport) shift; jmxportread="$1"; if [[ "${jmxportread}" =~ ^[0-9]+$ ]] ; then jmxport=${jmxportread}; shift; else echo "-jmxport expects a number but was not found"; exit -1; fi;; -start) startdaemon=1; shift; daemonportread="$1"; if [[ "${daemonportread}" =~ ^[0-9]+$ ]] ; then daemonport=${daemonportread}; shift; fi;; -stop) stopdaemon=1; shift ;; -status) statusdaemon=1; shift ;; @@ -100,6 +105,12 @@ if [[ "${daemonport}" -lt 1024 ]] || [[ "${daemonport}" -gt 65535 ]]; then exit -1 fi +# Validate jmx port +if [[ "${jmxport}" -lt 1024 ]] || [[ "${jmxport}" -gt 65535 ]]; then + echo "JMX Port not in the range [1024,65535] value is ${jmxport}" + exit -1 +fi + # Debug options if [ "${debugsuspend}" -eq 1 ]; then extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${debugport}" @@ -107,6 +118,11 @@ elif [ "${debug}" -eq 1 ]; then extraJVMOpts="${extraJVMOpts} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=${debugport}" fi +# Add JMX support +if [ "${startjmx}" -eq 1 ]; then + extraJVMOpts="${extraJVMOpts} -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=${jmxport} -Dcom.sun.management.jmxremote" +fi + ######################################## # Now add to classpath the OSGi JAR ######################################## diff --git a/opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementation.java b/opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementation.java index a8ef381528..07f18ff6ab 100644 --- a/opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementation.java +++ b/opendaylight/routing/dijkstra_implementation/src/main/java/org/opendaylight/controller/routing/dijkstra_implementation/internal/DijkstraImplementation.java @@ -37,8 +37,6 @@ import edu.uci.ics.jung.graph.Graph; import edu.uci.ics.jung.graph.SparseMultigraph; import edu.uci.ics.jung.graph.util.EdgeType; -import java.lang.Exception; -import java.lang.IllegalArgumentException; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -234,7 +232,7 @@ public class DijkstraImplementation implements IRouting, ITopologyManagerCluster @Override public synchronized void clearMaxThroughput() { if (mtp != null) { - mtp.reset(); // reset maxthruput path + mtp.reset(); // reset max throughput path } }