brooklyn-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From s...@apache.org
Subject [05/10] brooklyn-server git commit: PR comments, do explicit setReuseAddress(false)
Date Thu, 02 Mar 2017 12:16:06 GMT
PR comments, do explicit setReuseAddress(false)


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/3eb74a56
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/3eb74a56
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/3eb74a56

Branch: refs/heads/master
Commit: 3eb74a5667a20f1092b4d426a1d327e5a97d68f7
Parents: 80322eb
Author: Alex Heneveld <alex.heneveld@cloudsoftcorp.com>
Authored: Sat Feb 18 00:54:59 2017 +0000
Committer: Alex Heneveld <alex.heneveld@cloudsoftcorp.com>
Committed: Wed Mar 1 08:54:55 2017 +0000

----------------------------------------------------------------------
 .../apache/brooklyn/launcher/BrooklynWebServer.java   |  3 +--
 .../java/org/apache/brooklyn/util/net/Networking.java | 14 ++++++--------
 2 files changed, 7 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3eb74a56/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
----------------------------------------------------------------------
diff --git a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
index e5c6b15..b85e79d 100644
--- a/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
+++ b/launcher/src/main/java/org/apache/brooklyn/launcher/BrooklynWebServer.java
@@ -453,8 +453,7 @@ public class BrooklynWebServer {
         try {
             server.start();
         } catch (BindException e) {
-            // port discovery routines may take some time to clear, e.g. 250ms for SO_TIMEOUT
-            // tests fail because of this; see if adding a delay improves things
+            // retry once just in case it was some fluke or race
             log.warn("Initial server start-up failed binding (retrying after a delay): "+e);
             Time.sleep(Duration.millis(500));
             server.start();

http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/3eb74a56/utils/common/src/main/java/org/apache/brooklyn/util/net/Networking.java
----------------------------------------------------------------------
diff --git a/utils/common/src/main/java/org/apache/brooklyn/util/net/Networking.java b/utils/common/src/main/java/org/apache/brooklyn/util/net/Networking.java
index 028b3c8..79e3739 100644
--- a/utils/common/src/main/java/org/apache/brooklyn/util/net/Networking.java
+++ b/utils/common/src/main/java/org/apache/brooklyn/util/net/Networking.java
@@ -66,6 +66,10 @@ public class Networking {
     public static final int MIN_PORT_NUMBER = 1;
     public static final int MAX_PORT_NUMBER = 65535;
 
+    // set this `false` because not all routines that want a port will be as forgiving as
reuse_address is;
+    // in some cases it might be preferable for this to be true, if needed we can expand
API
+    public static final Boolean SET_REUSE_ADDRESS = false;
+
     // based on http://stackoverflow.com/questions/106179/regular-expression-to-match-hostname-or-ip-address
     // but updated to allow leading zeroes
     public static final String VALID_IP_ADDRESS_REGEX = "^((0*[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}(0*[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$";
@@ -102,15 +106,13 @@ public class Networking {
                 // Check TCP port
                 ss = new ServerSocket();
                 ss.setSoTimeout(250);
-                ss.setReuseAddress(true);
-                if (!ss.getReuseAddress()) { logReuseAddressNotSupported(); }
+                if (SET_REUSE_ADDRESS!=null) { ss.setReuseAddress(SET_REUSE_ADDRESS); }
                 ss.bind(new InetSocketAddress(localAddress, port));
 
                 // Check UDP port
                 ds = new DatagramSocket(null);
                 ds.setSoTimeout(250);
-                ds.setReuseAddress(true);
-                if (!ds.getReuseAddress()) { logReuseAddressNotSupported(); }
+                if (SET_REUSE_ADDRESS!=null) { ss.setReuseAddress(SET_REUSE_ADDRESS); }
                 ds.bind(new InetSocketAddress(localAddress, port));
             } catch (IOException e) {
                 if (log.isTraceEnabled()) log.trace("Failed binding to " + localAddress +
" : " + port, e);
@@ -178,10 +180,6 @@ public class Networking {
         }
     }
 
-    private static void logReuseAddressNotSupported() {
-        log.debug("Socket reuse-address not supported on this platform; port discovery may
mis-report available ports");
-    }
-    
     /**
      * Bind to the specified IP, but let the OS pick a port.
      * If the operation fails we know it's not because of


Mime
View raw message