nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM002,
nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM003,
nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004 and
nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM005
tests setup a socket with the SO_REUSEADDR flag which allows other processes to connect to the socket before the subtest.
Here is the server side which is sitting in poll() waiting for the client to connect
to the socket:
------------ lwp# 2 / thread# 2 ---------------
ffff80ffbf5f23aa pollsys (ffff80ffbf30e608, 1, 0, 0)
ffff80ffbf590f7f poll () + 5f
ffff80fc09014a8b NET_Timeout () + 5b
ffff80fc09010f53 Java_java_net_PlainSocketImpl_socketAccept () + 193
ffff80ffa3619cbc * java/net/PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V+7064
ffff80ffa360b463 * java/net/AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+-7488 (line 922)
ffff80ffa360b463 * java/net/ServerSocket.implAccept(Ljava/net/Socket;)V+-24328 (line 1155)
ffff80ffa360b463 * java/net/ServerSocket.accept()Ljava/net/Socket;+-23984 (line 1034)
ffff80ffa360b1e0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/CreateVM004_TranspServ.accept(Lcom/sun/jdi/connect/spi/TransportService$ListenKey;JJ)Lcom/sun/jdi/connect/spi/Connection;+15616 (line 552)
ffff80ffa360b1e0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.runThis([Ljava/lang/String;Ljava/io/PrintStream;)I+-10272 (line 2205)
ffff80ffa360aea0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.run([Ljava/lang/String;Ljava/io/PrintStream;)I+-9944 (line 145)
ffff80ffa360aea0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.main([Ljava/lang/String;)V+-9672 (line 130)
ffff80ffa3600aeb * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.main([Ljava/lang/String;)V+-9488 (line 130)
ffff80fc0af840e6 __1cJJavaCallsLcall_helper6FpnJJavaValue_rknMmethodHandle_pnRJavaCallArguments_pnGThread__v_ () + 1f6
ffff80fc0b0140e8 jni_CallStaticVoidMethod () + 508
ffff80fc0c007404 JavaMain () + 5b4
ffff80ffbf5e9171 _thrp_setup () + a5
ffff80ffbf5e9450 _lwp_start ()
The client has connected to some other socket and is in the process of reading
from it which causes the hang.
This issue has only been seen on Solaris
The fix is to not set the SO_REUSEADDR socket flag so another process
does not reuse the socket.
nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM003,
nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004 and
nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM005
tests setup a socket with the SO_REUSEADDR flag which allows other processes to connect to the socket before the subtest.
Here is the server side which is sitting in poll() waiting for the client to connect
to the socket:
------------ lwp# 2 / thread# 2 ---------------
ffff80ffbf5f23aa pollsys (ffff80ffbf30e608, 1, 0, 0)
ffff80ffbf590f7f poll () + 5f
ffff80fc09014a8b NET_Timeout () + 5b
ffff80fc09010f53 Java_java_net_PlainSocketImpl_socketAccept () + 193
ffff80ffa3619cbc * java/net/PlainSocketImpl.socketAccept(Ljava/net/SocketImpl;)V+7064
ffff80ffa360b463 * java/net/AbstractPlainSocketImpl.accept(Ljava/net/SocketImpl;)V+-7488 (line 922)
ffff80ffa360b463 * java/net/ServerSocket.implAccept(Ljava/net/Socket;)V+-24328 (line 1155)
ffff80ffa360b463 * java/net/ServerSocket.accept()Ljava/net/Socket;+-23984 (line 1034)
ffff80ffa360b1e0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/CreateVM004_TranspServ.accept(Lcom/sun/jdi/connect/spi/TransportService$ListenKey;JJ)Lcom/sun/jdi/connect/spi/Connection;+15616 (line 552)
ffff80ffa360b1e0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.runThis([Ljava/lang/String;Ljava/io/PrintStream;)I+-10272 (line 2205)
ffff80ffa360aea0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.run([Ljava/lang/String;Ljava/io/PrintStream;)I+-9944 (line 145)
ffff80ffa360aea0 * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.main([Ljava/lang/String;)V+-9672 (line 130)
ffff80ffa3600aeb * nsk/jdi/VirtualMachineManager/createVirtualMachine/createVM004.main([Ljava/lang/String;)V+-9488 (line 130)
ffff80fc0af840e6 __1cJJavaCallsLcall_helper6FpnJJavaValue_rknMmethodHandle_pnRJavaCallArguments_pnGThread__v_ () + 1f6
ffff80fc0b0140e8 jni_CallStaticVoidMethod () + 508
ffff80fc0c007404 JavaMain () + 5b4
ffff80ffbf5e9171 _thrp_setup () + a5
ffff80ffbf5e9450 _lwp_start ()
The client has connected to some other socket and is in the process of reading
from it which causes the hang.
This issue has only been seen on Solaris
The fix is to not set the SO_REUSEADDR socket flag so another process
does not reuse the socket.