> On Jan 6, 2019, at 2:25 AM, Doychin Bondzhev <[email protected]> wrote:
> 
> I would like to investigate this issue: 
> https://issues.apache.org/jira/browse/TOMEE-2403
> 
> Where I can get more detailed error log regarding this issue?
> 
> I tried to run the test locally but it works.

Here's a technique I use sometimes to check random failures:

    $ for n in {1..50}; do mvn clean install -Dtest=AutoConnectionTrackerTest 
2>&1 | tee run-$n.log; done

So far 3 out 17 have failed.  Debugging them will still be a pain in the butt, 
but at least there's some hope.


My shallow observation is that the approach taken in the test itself looks 
conspicuous.  Particularly, I'd say this test is not "correct" until it can 
pass without the System.gc() statements.

 - 
https://github.com/apache/tomee/blob/master/container/openejb-core/src/test/java/org/apache/openejb/resource/AutoConnectionTrackerTest.java#L197

More importantly, this method is using thread sleeps and retries to wait for 
log output which *will* cause random failures.  We should have a discussion on 
if there is a better way to make this more deterministic.

 - 
https://github.com/apache/tomee/blob/master/container/openejb-core/src/test/java/org/apache/openejb/resource/AutoConnectionTrackerTest.java#L216

Testing log output can work, however the test logic is ultimately "if you do or 
don't see this message in n seconds, we're good."  It needs to be "if you do or 
don't see this message *when the test is over*, we're good."

Since it's looking in log output, one way to do that might be to simply log a 
"test complete" statement (perhaps with a random number on it), and then wait 
for that in the log output.


-David




Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to