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




Reply via email to