JDK-8168613 : CORBA ObjectStreamTest fails with address in use
  • Type: Bug
  • Component: other-libs
  • Sub-Component: corba:rmi-iiop
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2016-10-24
  • Updated: 2016-11-07
  • Resolved: 2016-10-26
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b143Fixed
Related Reports
Relates :  
Sub Tasks
JDK-8168614 :  
Description
ACTION: testng -- Failed. Execution failed: `main' threw exception: java.lang.Exception: failures: 4
REASON: User specified action: run testng/othervm -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 ObjectStreamTest 
TIME:   26.689 seconds
messages:
command: testng -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 ObjectStreamTest
reason: User specified action: run testng/othervm -Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop://localhost:1050 ObjectStreamTest 
Mode: othervm [/othervm specified]
Additional options from @modules: --add-modules java.corba,java.corba --add-exports java.corba/com.sun.corba.se.impl.io=ALL-UNNAMED --add-exports java.base/java.io=ALL-UNNAMED --add-exports java.corba/com.sun.corba.se.impl.activation=ALL-UNNAMED
elapsed time (seconds): 26.689
configuration:
Boot Layer
  add modules: java.corba java.corba                       
  add exports: java.base/java.io                           ALL-UNNAMED 
               java.corba/com.sun.corba.se.impl.activation ALL-UNNAMED 
               java.corba/com.sun.corba.se.impl.io         ALL-UNNAMED 

STDOUT:
[TestNG] Running:
  com/sun/corba/serialization/ObjectStreamTest.java

test ObjectStreamTest.factCheck("aString"): success
test ObjectStreamTest.factCheck(5): success
test ObjectStreamTest.factCheck(SimpleObject{i=4, f=4.0}): success
test ObjectStreamTest.factCheck([a, b, c]): success
test ObjectStreamTest.factCheck([Ljava.lang.String;@60d394f1): success
test ObjectStreamTest.factCheck([]): success
test ObjectStreamTest.factCheck(abc): success
test ObjectStreamTest.factCheck(abc): success
test ObjectStreamTest.factCheck(RED): success
test ObjectStreamTest.factCheck(/127.0.0.1): success
test ObjectStreamTest.factCheck(00:00): success
test ObjectStreamTest.factCheck(0): success
test ObjectStreamTest.factCheck([RED, GREEN, YELLOW]): success
test ObjectStreamTest.factCheck(8943892002309239): success
test ObjectStreamTest.factCheck(8943892002309239): success
test ObjectStreamTest.factCheck(java.util.HashMap@20fd4be8): success
test ObjectStreamTest.factCheck(java.util.PropertyPermission@2c0243ad): success
test ObjectStreamTest.WriteValueObjectStreamTest01("aString"): success
test ObjectStreamTest.WriteValueObjectStreamTest01(5): success
test ObjectStreamTest.WriteValueObjectStreamTest01(SimpleObject{i=4, f=4.0}): success
test ObjectStreamTest.WriteValueObjectStreamTest01([a, b, c]): success
test ObjectStreamTest.WriteValueObjectStreamTest01([Ljava.lang.String;@70d507e5): success
test ObjectStreamTest.WriteValueObjectStreamTest01([]): success
test ObjectStreamTest.WriteValueObjectStreamTest01(abc): success
test ObjectStreamTest.WriteValueObjectStreamTest01(abc): success
test ObjectStreamTest.WriteValueObjectStreamTest01(RED): success
test ObjectStreamTest.WriteValueObjectStreamTest01(/127.0.0.1): success
test ObjectStreamTest.WriteValueObjectStreamTest01(00:00): success
test ObjectStreamTest.WriteValueObjectStreamTest01(0): success
test ObjectStreamTest.WriteValueObjectStreamTest01([RED, GREEN, YELLOW]): success
test ObjectStreamTest.WriteValueObjectStreamTest01(8943892002309239): success
test ObjectStreamTest.WriteValueObjectStreamTest01(8943892002309239): success
test ObjectStreamTest.WriteValueObjectStreamTest01(java.util.HashMap@4b098943): success
test ObjectStreamTest.WriteValueObjectStreamTest01(java.util.PropertyPermission@285a35a0): success

Starting orbd with NS port 1050 
ObjectStreamTest: Executing: [/scratch/mesos/work_dir/slaves/e053834b-c836-437c-a964-ec7a9c5adf82-S21/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/06467bda-c9e4-40d8-93b1-026a2c67ea91/runs/fef2b5ca-b3a4-4337-9f8e-2f8577c9dbe8/product/bin/orbd, -ORBInitialHost, localhost, -ORBInitialPort, 1050]
retry #0 sec: ex: javax.naming.CommunicationException: Cannot connect to ORB [Root exception is org.omg.CORBA.COMM_FAILURE:   vmcid: SUN  minor code: 201  completed: No]
test ObjectStreamTest.echoObjects("aString"): failure
java.lang.AssertionError: Can't initialize the Orb, no naming context
	at org.testng.Assert.fail(Assert.java:94)
	at ObjectStreamTest$Server.init(ObjectStreamTest.java:392)
	at ObjectStreamTest.echoObjects(ObjectStreamTest.java:198)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:537)
	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:639)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:821)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1131)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:124)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
	at org.testng.TestRunner.privateRun(TestRunner.java:773)
	at org.testng.TestRunner.run(TestRunner.java:623)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:357)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:352)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:310)
	at org.testng.SuiteRunner.run(SuiteRunner.java:259)
	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1185)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:1110)
	at org.testng.TestNG.run(TestNG.java:1018)
	at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:220)
	at com.sun.javatest.regtest.TestNGAction$TestNGRunner.main(TestNGAction.java:184)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-internal/Native Method)
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@9-internal/NativeMethodAccessorImpl.java:62)
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-internal/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@9-internal/Method.java:537)
	at com.sun.javatest.regtest.agent.MainWrapper$MainThread.run(MainWrapper.java:110)
	at java.lang.Thread.run(java.base@9-internal/Thread.java:844)

....
===============================================
com/sun/corba/serialization/ObjectStreamTest.java
Total tests run: 51, Failures: 4, Skips: 0
===============================================

STDERR:
Oct 24, 2016 12:39:36 PM com.sun.corba.se.impl.transport.SocketOrChannelAcceptorImpl initialize
SEVERE: "IOP00410216: (COMM_FAILURE) Unable to create listener thread on the specified port: 1049"
org.omg.CORBA.COMM_FAILURE:   vmcid: SUN  minor code: 216  completed: No
	at com.sun.corba.se.impl.logging.ORBUtilSystemException.createListenerFailed(java.corba@9-internal/ORBUtilSystemException.java:2632)
	at com.sun.corba.se.impl.logging.ORBUtilSystemException.createListenerFailed(java.corba@9-internal/ORBUtilSystemException.java:2651)
	at com.sun.corba.se.impl.transport.SocketOrChannelAcceptorImpl.initialize(java.corba@9-internal/SocketOrChannelAcceptorImpl.java:164)
	at com.sun.corba.se.impl.transport.CorbaTransportManagerImpl.getAcceptors(java.corba@9-internal/CorbaTransportManagerImpl.java:218)
	at com.sun.corba.se.impl.transport.CorbaTransportManagerImpl.addToIORTemplate(java.corba@9-internal/CorbaTransportManagerImpl.java:236)
	at com.sun.corba.se.spi.oa.ObjectAdapterBase.initializeTemplate(java.corba@9-internal/ObjectAdapterBase.java:122)
	at com.sun.corba.se.impl.oa.toa.TOAImpl.<init>(java.corba@9-internal/TOAImpl.java:96)
	at com.sun.corba.se.impl.oa.toa.TOAFactory.getTOA(java.corba@9-internal/TOAFactory.java:90)
	at com.sun.corba.se.impl.orb.ORBImpl.connect(java.corba@9-internal/ORBImpl.java:1625)
	at com.sun.corba.se.impl.activation.RepositoryImpl.<init>(java.corba@9-internal/RepositoryImpl.java:94)
	at com.sun.corba.se.impl.activation.ORBD.startActivationObjects(java.corba@9-internal/ORBD.java:272)
	at com.sun.corba.se.impl.activation.ORBD.run(java.corba@9-internal/ORBD.java:127)
	at com.sun.corba.se.impl.activation.ORBD.main(java.corba@9-internal/ORBD.java:341)
Caused by: java.net.BindException: Address already in use
	at sun.nio.ch.Net.bind0(java.base@9-internal/Native Method)
	at sun.nio.ch.Net.bind(java.base@9-internal/Net.java:433)
	at sun.nio.ch.Net.bind(java.base@9-internal/Net.java:425)
	at sun.nio.ch.ServerSocketChannelImpl.bind(java.base@9-internal/ServerSocketChannelImpl.java:225)
	at sun.nio.ch.ServerSocketAdaptor.bind(java.base@9-internal/ServerSocketAdaptor.java:74)
	at sun.nio.ch.ServerSocketAdaptor.bind(java.base@9-internal/ServerSocketAdaptor.java:67)
	at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createServerSocket(java.corba@9-internal/DefaultSocketFactoryImpl.java:83)
	at com.sun.corba.se.impl.transport.SocketOrChannelAcceptorImpl.initialize(java.corba@9-internal/SocketOrChannelAcceptorImpl.java:161)
	... 10 more


Comments
If tests that start&use "orbd" service run in concurrency, "address in use" are likely to happen. Run such two tests with -conc can show this issue: -conc:2 ws/jdk/test/com/sun/corba/cachedSocket/7056731.sh ws/jdk/test/com/sun/corba/serialization/ObjectStreamTest.java Put all "orbd" required tests in one directory and add that director in exclusiveAccess.dirs so as they won't be run concurrently? (otherwise port that used for -ORBInitialPort and -port need to be taken care of in all such tests to avoid conflict)
25-10-2016