> 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
signature.asc
Description: Message signed with OpenPGP
