OS: Solaris 10 sparc
50 concurrent users
The memory leak appears specifically when sending attachments (file transfers). A large number of FileTransfer objects appear to be kept in memory. A large number of DomainPairs also seem to exist (I 'll send screenshots in the near future).
StanzaHandler.processIQ() calls MetaFileTransferInterceptor.interceptPacket() for each IQ it processes (see profiler screenshot) which calls:
FileTransfer transfer = createFileTransfer(from, to, childElement);
These file transfers seem to be cached in method
cacheFileTransfer(ProxyConnectionManager.createDigest(streamID, from, to), transfer)
Cache seems to work fine (it autocleans itself after a while).
So, I wonder who keeps references to these FileTransfer objects.
FileTransfer references escape only via retrieveFileTransfer() method but this is called by DefaultFileTransferManager.registerProxyTransfer() and cached again.
I hope further discussion to the topic will help find the problem.
openfirememoryleak.zip (309.3 KB)