On 04/06/2009, Mark Thomas <ma...@apache.org> wrote:
> sebb wrote:
>  > On 04/06/2009, Mark Thomas <ma...@apache.org> wrote:
>  >> sebb wrote:
>  >>  > I've been running the GKOP and GOP tests repeatedly, and there are
>  >>  > some tests which still fail now and then:
>  >>  >
>  >>  > The following test fails regularly:
>  >>  >
>  >>  > testThreaded1(org.apache.commons.pool.impl.TestGenericObjectPool)
>  >>  > Time elapsed: 6 sec  <<< FAILURE!
>  >>  > junit.framework.AssertionFailedError: Thread 18 failed:
>  >>  > java.util.NoSuchElementException: Timeout waiting for idle object
>  >>  >
>  >>  > even on an otherwise idle system
>  >>  >
>  >>  > There are 20 threads competing for 15 objects, with a timeout of
>  >>  > 1000ms; each thread may hold the object for 50ms. Not quite sure how
>  >>  > this can cause the problem unless there is some unfairness in the
>  >>  > allocation. The same test for GKOP fails much less often, which is
>  >>  > interesting.
>  >>
>  >>
>  >> I don't seem to be able to repeat this one.
>  >
>  > I need to repeat this with the latest code as well.
>  >
>  >> In terms of possible
>  >>  explanations:
>  >>  - GC pause - unlikely unless you have very little memory available
>  >>  - OS goes off to do something else? Maybe. But the system is idle.
>  >>  - bug in fairness allocation? Unlikely. We should see
>  >>  testBorrowObjectFairness failures if that were the case.
>  >>  - Something else?
>  >>
>  >>  I'll try reducing the timeout from 1000ms to see if I can create the
>  >>  same failures you see.
>  >>
>  >>  > I've also seen the following, but only when the system is busy:
>  >>  >
>  >>  > 
> testEvictionOrder(org.apache.commons.pool.impl.TestGenericKeyedObjectPool)
>  >>  >  Time elapsed: 1.36 sec  <<< FAILURE!
>  >>  > junit.framework.AssertionFailedError: expected:<5> but was:<4>
>  >>
>  >>
>  >> This might be fixed by r781288. Do you still see it?
>  >>
>  >
>  > Yes, just tried a run whilst doing an Antivirus scan, and I got:
>  >
>  > Tests run: 43, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
>  > 34.906 sec <<< FAILURE!
>  > testEvictionOrder(org.apache.commons.pool.impl.TestGenericKeyedObjectPool)
>  >  Time elapsed: 2.109 sec  <<< FAILURE!
>  > junit.framework.AssertionFailedError: expected:<5> but was:<4>
>  >       at junit.framework.Assert.fail(Assert.java:47)
>  >       at junit.framework.Assert.failNotEquals(Assert.java:280)
>  >       at junit.framework.Assert.assertEquals(Assert.java:64)
>  >       at junit.framework.Assert.assertEquals(Assert.java:198)
>  >       at junit.framework.Assert.assertEquals(Assert.java:204)
>  >       at 
> org.apache.commons.pool.impl.TestGenericKeyedObjectPool.checkEvictionOrder(TestGenericKeyedObjectPool.java:782)
>  >       at 
> org.apache.commons.pool.impl.TestGenericKeyedObjectPool.testEvictionOrder(TestGenericKeyedObjectPool.java:704)
>  >
>  > That's the test with lifo==true.
>  >
>  > AFAICT, this test is very dependent on the timing - if the thread runs
>  > too slowly, it's possible for the idle time of the "one" object to
>  > pass the 500ms mark, so the pool.evict() at line 780 can remove the
>  > first "one" object.
>  >
>  > Note: I'm now on revision 781225.
>
>
> ? r781225 < r781288 and it is r781288 that has the fix.

I do have GKOP r781288; but for some reason the top-level directory
only shows r781225.
Not sure why that is; I did a synch. yesterday.

When I do a synch now, the only outstanding update is build.xml 781690.

>  As things stand currently, it appears that the issues you are seeing are
>  the result of timing issues where, for whatever reason, something takes
>  long than expected by the test.

Yes.

>  I'm happy that timing explains these failures and, subject to reviewing
>  the RC of course, would be +1 to release the current pool code as 1.5.
>
>  If I haven't said it already, many thanks (to Phil as well) for all your
>  help testing this.
>
>  As an aside, if pool had some logging, we could me much surer about what
>  is going on. Definitely something for 2.0.

+1

>
>  Mark
>
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
>  For additional commands, e-mail: dev-h...@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to