From: SourceForge.net <no...@so...> - 2011-04-27 15:18:32
|
Bugs item #3206904, was opened at 2011-03-11 15:13 Message generated for change (Settings changed) made by blaschke-oss You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=712784&aid=3206904&group_id=128809 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Java Client (JSR48) Group: Memory Leak Status: Open Resolution: None Priority: 5 Private: No Submitted By: lupusalex (lupusalex) >Assigned to: Dave Blaschke (blaschke-oss) Summary: Indication listener deadlock causes JVM to run out sockets Initial Comment: We experienced several deadlocks between the ThreadPool and one of the Worker threads in 2.1.7. As a result the indication listener freezes completely and worse the accept loops keeps running and creates socket after socket so that the JVM finally runs out of file handles. We saw this on RHEL 5.5 x86_64 Linux with an IBM 32bit 1.5.0.9 JVM. I fixed a deadlock in the same classes four years ago. Code analysis does not reveal how this deadlock could happen, but maybe the Java Memory Model plays a trick here. However the design with two classes requiring locks of each other is fragile. I prepared a patch that will change the design so that we get rid of the bidirectional locking completely. I also made the connection queue the accept loop writes into bounded, so that even if the workers die we do not continuously leak sockets anymore. Patch follows soon. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=712784&aid=3206904&group_id=128809 |