[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jacorb-bugs
Subject:    [jacorb-bugs] [Bug 701] SocketException Broken pipe on server
From:       bugzilla-daemon () inf ! fu-berlin ! de
Date:       2006-11-29 18:05:11
Message-ID: E1GpTnz-0002eh-00 () berners ! inf ! fu-berlin ! de
[Download RAW message or body]

http://www.jacorb.org/cgi-bin/bugzilla/show_bug.cgi?id=701





------- Additional Comments From crotwell@seis.sc.edu  2006-11-29 19:05 -------
We have done some more testing, and believe that what is happening is that there
are more than one client object talking to the remote server. When there is a
low level problem with the socket, causing the "Broken Pipe", then the
ClientConnectionManager won't throw away the socket, even if we call _release().
The logging messages below occur when we retry, even after regeting the
reference from the name service and calling _release().

[jacorb.orb.giop] INFO : ClientConnectionManager: found ClientGIOPConnection to
x.y.z.129:6382 (d3a0c0b)
[jacorb.orb.giop] INFO : ClientConnectionManager: found ClientGIOPConnection to
x.y.z.129:6382 (d3a0c0b)
[jacorb.orb.giop] INFO : ClientConnectionManager: found ClientGIOPConnection to
x.y.z.129:6382 (d3a0c0b)

I think that once a "Broken Pipe" happens, the socket is dead, and any further
reuse by the orb is doomed to failure. It would really be nice if the system
would detect these IOExceptions and mark the socket as bad before throwing the
COMM_FAILURE. At least that way if the client retries the call, a new socket
will be created and there is a chance that the system can recover. As it is,
once this error happens, only killing and restarting the client will resolve the
problem.



------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic