Adam Heath wrote: > Adam Heath wrote: >> I just had an OutOfMemoryError on one of our deployments. I then ran >> jmap, to do a heap dump, and looked at the resulting java.hprof binary >> file using IBM's HeapAnalyzer(1), and jhat. >> >> What I found, was a WeakHashMap inside dbcp, that contained 346000 >> WeakHashMap$Entry objects, taking up 125M of memory, out of 193M total >> heap. These Entry objects contain Transaction instances, not Connections. >> >> Has anyone ran into something similiar? This is against ofbiz version >> 595296. >> >> ps: I'm currently running the ofbiz test cases in this ofbiz version on >> an 8-way machine, with 8G of ram, underneath hprof, trying to track this >> down. >> >> 1: http://www.alphaworks.ibm.com/tech/heapanalyzer > > Got it. This version of ofbiz is using commons-dbcp 20070730, and a > leak fix was done on 20081012. I'll retest, you can ignore this mail > for now.
In detail, there was a WeakHashMap, that contained a Transaction key, pointed to a TransactionContext, that referenced the previous Transaction key. So, while the key itself was a WeakRef, the value had a hard reference back to the key. Insta-Leak(tm)!
