This content has been marked as final.
Show 4 replies
-
1. Re: ReplicateConnectionFailureTest failure on CI server
clebert.suconic Apr 30, 2009 6:22 PM (in response to jmesnil)I think this may be related:
I'm at the moment chasing a leakage on Connections.
one of the places that I found was ConnectionManagerImpl.pingExecutor. If I called ConnectionManagerImpl.recreatePingExecutor() I could get a lot of references cleared.
So, I also think connections are not being cleaned up somehow. -
2. Re: ReplicateConnectionFailureTest failure on CI server
timfox May 1, 2009 8:07 AM (in response to jmesnil)Jeff, I'm a bit confused about your changes for 1421:
RemotingServiceImpl: public void connectionDestroyed(final Object connectionID) { // We DO NOT destroy the connection when this event is received. // Instead, the connection will be cleaned up when the connection TTL // is hit in FailedConnectionsTask. }
Does this mean that if I create a core session, close it properly and exit, the server side remoting connection won't be closed until TTL?
If so, that's not correct.
If the client closes it's connections properly then the server side resources must be immediately cleared up.
The server side connection should only not be closed immediately if the client exits without closing it's stuff properly.
Otherwise you'll end up with resource build up on the server, and a potential for DoS attack by a client by simple creating and closing connections quickly. -
3. Re: ReplicateConnectionFailureTest failure on CI server
timfox May 3, 2009 9:40 AM (in response to jmesnil)I fixed this now anyway
-
4. Re: ReplicateConnectionFailureTest failure on CI server
jmesnil May 4, 2009 4:09 AM (in response to jmesnil)"timfox" wrote:
Does this mean that if I create a core session, close it properly and exit, the server side remoting connection won't be closed until TTL?
Yes, that's the case.
We talked about it in IRC (http://www.antwerkz.com/javabot/javabot/home/3/%23jbossmessaging/2/29/1/04/0/2009/)<jmesnil> there are a few failing tests which expects the server resources to be cleaned up immediately after the connection is closed. but now I've to wait for the connection TTL [11:12] <jmesnil> this can lead to resources congestion: a "unclean" client which never closes its connection will leave resources on the server for 5 minutes for each connection [11:12] <jbossfox> jmesnil: well.. resources should normally be cleaned up immediately since, a good client should close its connections
If we want to close server resources immediately when we're notified that the connection is destroyed, we must first know if the connection was closed properly or not.
To know for sure the connection is closed properly, the client should send a LAST packet, the connection should be closed from the server and the client be disconnected.