You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/09/22 21:09:53 UTC

[21/22] brooklyn-server git commit: give jmx service a much longer retry period (3m instead of 1s)

give jmx service a much longer retry period (3m instead of 1s)

we keep getting errors in a test on jenkins machines, and can't fathom why as we test beforehand and close:

java.rmi.server.ExportException: Port already in use: 40123; nested exception is:
	java.net.BindException: Address already in use
	at java.net.PlainSocketImpl.socketBind(Native Method)
	at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:376)
	at java.net.ServerSocket.bind(ServerSocket.java:376)
	at java.net.ServerSocket.<init>(ServerSocket.java:237)
	at java.net.ServerSocket.<init>(ServerSocket.java:128)
	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createServerSocket(RMIDirectSocketFactory.java:45)
	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createServerSocket(RMIMasterSocketFactory.java:344)
	at sun.rmi.transport.tcp.TCPEndpoint.newServerSocket(TCPEndpoint.java:666)
	at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:329)
	at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:248)
	at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:411)
	at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:147)
	at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:207)
	at sun.rmi.registry.RegistryImpl.setup(RegistryImpl.java:122)
	at sun.rmi.registry.RegistryImpl.<init>(RegistryImpl.java:108)
	at java.rmi.registry.LocateRegistry.createRegistry(LocateRegistry.java:203)
	at mx4j.tools.naming.NamingService.start(NamingService.java:67)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279)
	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
	at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
	at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
	at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
	at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
	at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
	at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
	at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:292)
	at com.sun.proxy.$Proxy657.start(Unknown Source)
	at org.apache.brooklyn.entity.software.base.test.jmx.JmxService.<init>(JmxService.java:107)
	at org.apache.brooklyn.entity.software.base.test.jmx.JmxService.<init>(JmxService.java:80)
	at org.apache.brooklyn.feed.jmx.RebindJmxFeedTest.runJmxFeedIsPersisted(RebindJmxFeedTest.java:99)
	at org.apache.brooklyn.feed.jmx.RebindJmxFeedTest.testJmxFeedIsPersisted(RebindJmxFeedTest.java:86)


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

Branch: refs/heads/master
Commit: e3dd40957867d8083e3e1b2d6d278125009048f6
Parents: 98c342c
Author: Alex Heneveld <al...@cloudsoftcorp.com>
Authored: Thu Sep 22 21:36:26 2016 +0100
Committer: Alex Heneveld <al...@cloudsoftcorp.com>
Committed: Thu Sep 22 21:36:26 2016 +0100

----------------------------------------------------------------------
 .../software/base/test/jmx/JmxService.java      | 22 +++++++++++++-------
 1 file changed, 15 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/e3dd4095/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/jmx/JmxService.java
----------------------------------------------------------------------
diff --git a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/jmx/JmxService.java b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/jmx/JmxService.java
index 397aff3..9b88307 100644
--- a/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/jmx/JmxService.java
+++ b/software/base/src/test/java/org/apache/brooklyn/entity/software/base/test/jmx/JmxService.java
@@ -98,13 +98,21 @@ public class JmxService {
             server.registerMBean(new NamingService(jmxPort), naming);
             Object proxy = MBeanServerInvocationHandler.newProxyInstance(server, naming, NamingServiceMBean.class, false);
             namingServiceMBean = (NamingServiceMBean) proxy;
-            try {
-                namingServiceMBean.start();
-            } catch (Exception e) {
-                // may take a bit of time for port to be available, if it had just been used
-                logger.warn("JmxService couldn't start test mbean ("+e+"); will delay then retry once");
-                Thread.sleep(1000);
-                namingServiceMBean.start();
+            for (int i=0; ; i++) {
+                try {
+                    namingServiceMBean.start();
+                    break;
+                } catch (Exception e) {
+                    // may take a bit of time for port to be available, if it had just been used
+                    if (i==0) logger.warn("JmxService couldn't start test mbean ("+e+"); will delay and retry");
+                    else if (i>=180) {
+                        logger.warn("JmxService couldn't start test mbean ("+e+"); definitive; throwing "+e);
+                        throw e;
+                    } else {
+                        logger.debug("JmxService couldn't start test mbean on retry attempt "+i+" ("+e+"); will continue retrying");
+                    }
+                    Thread.sleep(1000);
+                }
             }
     
             connectorServer.start();