David Handermann created NIFI-10277:
---------------------------------------

             Summary: Intermittent Failures in ConnectionLoadBalanceServerTest
                 Key: NIFI-10277
                 URL: https://issues.apache.org/jira/browse/NIFI-10277
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Core Framework
            Reporter: David Handermann
            Assignee: David Handermann


The {{ConnectionLoadBalanceServerTest}} fails intermittently on automated 
builds, including the recent failure on a Windows build:

{noformat}
Error:  
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServerTest.testRequestPeerListShouldUseTLS
  Time elapsed: 0.748 s  <<< ERROR!
java.io.IOException: Could not begin listening for incoming connections in 
order to load balance data across the cluster. Please verify the values of the 
'nifi.cluster.load.balance.port' and 'nifi.cluster.load.balance.host' 
properties as well as the 'nifi.security.*' properties
        at 
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServer.start(ConnectionLoadBalanceServer.java:86)
        at 
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServer$start.call(Unknown
 Source)
        at 
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at 
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130)
        at 
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServerTest.testRequestPeerListShouldUseTLS(ConnectionLoadBalanceServerTest.groovy:77)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at 
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
        at 
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at 
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
        at 
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at 
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at 
org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
        at 
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
        at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
        at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
        at 
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
        at 
org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
        at 
org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
        at 
org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107)
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88)
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54)
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67)
        at 
org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52)
        at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
        at 
org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
        at 
org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
        at 
org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:55)
        at 
org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:223)
        at 
org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:175)
        at 
org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:139)
        at 
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:456)
        at 
org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:169)
        at 
org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:595)
        at 
org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:581)
Caused by: java.net.BindException: Address already in use: JVM_Bind
        at java.net.DualStackPlainSocketImpl.bind0(Native Method)
        at 
java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:106)
        at 
java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:387)
        at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:190)
        at java.net.ServerSocket.bind(ServerSocket.java:395)
        at java.net.ServerSocket.<init>(ServerSocket.java:257)
        at javax.net.ssl.SSLServerSocket.<init>(SSLServerSocket.java:181)
        at 
sun.security.ssl.SSLServerSocketImpl.<init>(SSLServerSocketImpl.java:78)
        at 
sun.security.ssl.SSLServerSocketFactoryImpl.createServerSocket(SSLServerSocketFactoryImpl.java:87)
        at 
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServer.createServerSocket(ConnectionLoadBalanceServer.java:120)
        at 
org.apache.nifi.controller.queue.clustered.server.ConnectionLoadBalanceServer.start(ConnectionLoadBalanceServer.java:84)
{noformat}

Among potential improvements, the test class uses a static port number, which 
should be changed to a dynamic available port number for better stability.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to