JDK-4456086 : Server thread hangs when fragments don't complete because client-side error
  • Type: Bug
  • Component: other-libs
  • Sub-Component: corba:idl
  • Affected Version: 1.4.0
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris_2.6
  • CPU: unknown
  • Submitted: 2001-05-08
  • Updated: 2008-01-14
  • Resolved: 2008-01-14
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.
Other
1.4.0 beta2Fixed
Related Reports
Relates :  
Relates :  
Description
While fixing "4452578: RI hangs when a return object is not
serializable" I noticed that a similar thing can happen on the server
side.  If the client sends at least one fragment of a request and then
gets a client-side ORB (e.g., tries to marshal a non-serializable
object) then a server side ORB thread will hang waiting for further
fragments.  (The client side does report the error to the client
application, but it does not send further fragments.).

Everytime this happens it causes new threads to hang.  If this happens
N times then the server-side ORB will have N threads waiting.

Example stack trace of waiting (i.e, hung) thread:

RequestProcessor[0][1] where
  [1] java.lang.Object.wait (native method)
  [2] java.lang.Object.wait (Object:420)
  [3] com.sun.corba.ee.internal.iiop.BufferManagerReadStream.underflow (BufferManagerReadStream:65)
  [4] com.sun.corba.ee.internal.iiop.CDRInputStream_1_1.grow (CDRInputStream_1_1:76)
  [5] com.sun.corba.ee.internal.iiop.CDRInputStream_1_0.read_octet_array (CDRInputStream_1_0:570)
  [6] com.sun.corba.ee.internal.iiop.CDRInputStream.read_octet_array (CDRInputStream:209)
  [7] com.sun.corba.ee.internal.core.UnknownServiceContext.<init> (UnknownServiceContext:31)
  [8] com.sun.corba.ee.internal.core.ServiceContexts.<init> (ServiceContexts:103)
  [9] com.sun.corba.ee.internal.iiop.messages.RequestMessage_1_2.read (RequestMessage_1_2:127)
  [10] com.sun.corba.ee.internal.iiop.IIOPInputStream.unmarshalHeader (IIOPInputStream:126)
  [11] com.sun.corba.ee.internal.iiop.RequestProcessor.process (RequestProcessor:78)
  [12] com.sun.corba.ee.internal.orbutil.ThreadPool$PooledThread.run (ThreadPool$PooledThread:99)
RequestProcessor[0][1]

This is a waste of scare resources.
                                                                      

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: merlin FIXED IN: merlin INTEGRATED IN: merlin-beta2
14-06-2004

EVALUATION It's a bug.
11-06-2004