On Feb 18, 2010, at 3:16 AM, David Blevins wrote: > Hacked up a new chunk of pooling code for Stateless beans that allows the > pool to shrink down at some point after the max is hit. It also allows for a > minimum to be set. The mix is achieved via a combination of hard references > and SoftReference objects. > > The tests for the pool itself and the StatelessInstanceManagerPoolingTest > work fine, but for some reason when all tests are running together things > eventually lockup. I've tried to 'kill -QUIT' the test process to see where > it's locked, but for some reason I can't seem to find where the output is > going, it's not in the surefire output. Not sure there is some maven option > I need to set. > > Looking for some help in finding the issue. I've attached a patch to this > JIRA: > > http://issues.apache.org/jira/browse/OPENEJB-1235 > > Any tips welcome.
I had some issues with 'kill -QUIT' not working on my Mac a while ago. Don't think I ever figured out why. But seems to be working for me at the moment... JVM sends the output to STDOUT. Don't know what maven/surefire may be doing with that. Given the nature of your changes and the fact that individual tests work ok, I think we can assume we're hitting an OOME and you can't find kill -QUIT output because nothing's being generated. For OOME's, I use the following in my .mavenrc file: MAVEN_OPTS="-Xmx1024m -Xms512m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError" That will cause a heapdump to be created on any OOME. I usually forget the file name that's generated. So, end up running something like 'java -Xmx4k -XX:+HeapDumpOnOutOfMemoryError SomeClass' to generate a sample (and I now see that on a Mac it looks like: java_pid51424.hprof). Those settings won't affect the Surefire process. So, you need to set -XX:+HeapDumpOnOutOfMemoryError in the pom.xml, for your Surefire process. If you can remind me how to run the tests, I can take a look at this... --kevan
