<html>
<head>
<base href="http://www.jacorb.org/bugzilla/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - ClientGIOPConnection/closeAllowReopen and threads"
href="http://www.jacorb.org/bugzilla/show_bug.cgi?id=967">967</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>ClientGIOPConnection/closeAllowReopen and threads
</td>
</tr>
<tr>
<th>Product</th>
<td>JacORB
</td>
</tr>
<tr>
<th>Version</th>
<td>3.3
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Linux
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>major
</td>
</tr>
<tr>
<th>Priority</th>
<td>P5
</td>
</tr>
<tr>
<th>Component</th>
<td>ORB
</td>
</tr>
<tr>
<th>Assignee</th>
<td>jacorb-bugs@lists.spline.inf.fu-berlin.de
</td>
</tr>
<tr>
<th>Reporter</th>
<td>jacorb@goots.org
</td>
</tr></table>
<p>
<div>
<pre>Currently, if for instance, a server is killed the client receives a
COMM_FAILURE then the transport is closed down and the GIOP layer is
kept 'open'.
However, the problem is that with this scenario we get a
ClientMessageReceptor thread stuck in receive messages loop. Of course,
if the client object is _release'd this would go away.
If the GIOP connection is closed in
ClientGIOPConnection::closeAllowReopen i.e. close() is called (after
being called from streamClosed) then the thread is released into the
pool and the transport and giop layer are closed down.
However, this does not negate the possibility of calling the client
object again - it should simply attempt to call the server again,
reopening the connection/transport if required.
There appears to be a trade-off here between object creation/gc versus
threads. If the client does not call release, it can cause thread pool
exhaustion as many threads are simply locked up waiting.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are the assignee for the bug.</li>
</ul>
</body>
</html>