-
Bug
-
Resolution: Won't Fix
-
P2
-
None
-
1.4.2_32, 5.0u30
-
generic
-
generic
The customer is facing an issue with excessive sockets because of logic in 1.4.2's ConnectionTable.java. While it appears to a design choice, it can lead to excessive sockets on the client and server processes. This problem happens under 1.5.0 as well.
Testing under java 6 doesn't seem to show excessive socket creation.
There is a locking version of test case to control access to ConnectionTable.java by a single thread and it reduces number of connections by half.
Above situation can lead to creation of extra socket which can range from 3 to 70 extra sockets depending on the number of cpus, so if we have ten clients, this could reach to 700 extra sockets if each client creates 70 extra sockets, and can be serious problem which can result in a server hang or crash.
----------------------------------
Attached the testcase to reproduce the issue :
Step 1: restore the tar file:
Step 2: Add a version of Java to PATH (both sessions)
Step 3: In session one: Start the server environment
# orbd -ORBInitialPort 1050 &
# ./runServerForEver.sh
HelloServer ready and waiting ...
This should start the Server, which will restart every 50 second to simulate a reset condition.
Step 4: In session two: start the client
# testClientExample_Sun.sh
Socket connections were verified using tusc.
---------------------------
Testing under java 6 doesn't seem to show excessive socket creation.
There is a locking version of test case to control access to ConnectionTable.java by a single thread and it reduces number of connections by half.
Above situation can lead to creation of extra socket which can range from 3 to 70 extra sockets depending on the number of cpus, so if we have ten clients, this could reach to 700 extra sockets if each client creates 70 extra sockets, and can be serious problem which can result in a server hang or crash.
----------------------------------
Attached the testcase to reproduce the issue :
Step 1: restore the tar file:
Step 2: Add a version of Java to PATH (both sessions)
Step 3: In session one: Start the server environment
# orbd -ORBInitialPort 1050 &
# ./runServerForEver.sh
HelloServer ready and waiting ...
This should start the Server, which will restart every 50 second to simulate a reset condition.
Step 4: In session two: start the client
# testClientExample_Sun.sh
Socket connections were verified using tusc.
---------------------------