Does this happen every single time you run the cache tests, or only if not, how frequently? Have you upgraded your computer/OS, and still get the problem? Windows(I'm guessing, based on other mails), or something else? 32-bit, or 64-bit?

I was staring at these areas last night(while playing with the entity transaction cache, which plays into upgrading jdbm to mapdb, the latter of which is radically different, and might have workable transactional support natively), and the basic scenario is this:

* The cache in question starts out with no TTL set on it; nothing will expire automatically.
* Tests are run, they pass.
* I change the TTL to 100ms, while the cache is empty.
* I add a new item.
* I wait 200ms.
* The test fails, because the item hasn't yet been removed.

On windows, it has a base clock of 1000ms. It divides this by 64, to give 15.6ms at the basic interrupt frequency. Even with that slush factor, I don't know how the item wouldn't be removed. I've thought about increasing the times, or changing the test algo to run in a loop, polling for the removal, and then comparing how long it took to remove to some window of time; this will then show up nicely in error reports, that it took too long to remove, and would point the problem as being somewhere else.

When the error occurs, please check further back in the stdout/stderr, and look for an exception that was thrown while inside the ExecutionPool.ExecutionPoolPulseWorker.run(). While playing with the new library above, any exceptions thrown while processing the delayQueue items were aborting the background worker. I'll fix this particular problem soon.

On 06/26/2014 11:21 AM, Adrian Crum wrote:
Btw, I still get consistent, repeated failures in those tests. I mentioned that to you years ago.


<testcase classname="org.ofbiz.base.util.cache.test.UtilCacheTests" name="testBasicDisk" time="0.235"> <failure message="not-found" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: not-found at org.ofbiz.base.util.cache.test.UtilCacheTests.assertNoSingleKey(UtilCacheTests.java:236) at org.ofbiz.base.util.cache.test.UtilCacheTests.basicTest(UtilCacheTests.java:305) at org.ofbiz.base.util.cache.test.UtilCacheTests.testBasicDisk(UtilCacheTests.java:321) at org.ofbiz.testtools.TestRunContainer.start(TestRunContainer.java:147) at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:239)
    at org.ofbiz.base.start.Start.startStartLoaders(Start.java:340)
    at org.ofbiz.base.start.Start.start(Start.java:382)
    at org.ofbiz.base.start.Start.main(Start.java:122)
</failure>

      </testcase>

<testcase classname="org.ofbiz.base.util.cache.test.UtilCacheTests" name="testSimple" time="0.203"> <failure message="not-found" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: not-found at org.ofbiz.base.util.cache.test.UtilCacheTests.assertNoSingleKey(UtilCacheTests.java:236) at org.ofbiz.base.util.cache.test.UtilCacheTests.basicTest(UtilCacheTests.java:305) at org.ofbiz.base.util.cache.test.UtilCacheTests.testSimple(UtilCacheTests.java:326) at org.ofbiz.testtools.TestRunContainer.start(TestRunContainer.java:147) at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:239)
    at org.ofbiz.base.start.Start.startStartLoaders(Start.java:340)
    at org.ofbiz.base.start.Start.start(Start.java:382)
    at org.ofbiz.base.start.Start.main(Start.java:122)
</failure>

      </testcase>

<testcase classname="org.ofbiz.base.util.cache.test.UtilCacheTests" name="testExpire" time="2.5"> <failure message="no-key(0)" type="junit.framework.AssertionFailedError">junit.framework.AssertionFailedError: no-key(0) at org.ofbiz.base.util.cache.test.UtilCacheTests.expireTest(UtilCacheTests.java:410) at org.ofbiz.base.util.cache.test.UtilCacheTests.testExpire(UtilCacheTests.java:424) at org.ofbiz.testtools.TestRunContainer.start(TestRunContainer.java:147) at org.ofbiz.base.container.ContainerLoader.start(ContainerLoader.java:239)
    at org.ofbiz.base.start.Start.startStartLoaders(Start.java:340)
    at org.ofbiz.base.start.Start.start(Start.java:382)
    at org.ofbiz.base.start.Start.main(Start.java:122)
</failure>

      </testcase>


Adrian Crum
Sandglass Software
www.sandglass-software.com

On 6/26/2014 8:54 AM, Adam Heath wrote:
I'm the original author of the sophisticated UtilCache tests, btw.

On 06/26/2014 10:45 AM, Adam Heath wrote:
On 06/26/2014 04:54 AM, Jacques Le Roux wrote:

Le 05/02/2014 12:07, Jacques Le Roux a écrit :
On Wednesday, February 05, 2014 10:32 AM, pierre.sm...@gmail.com wrote
Jacques,

First you should answer the question for what we are using
Buildbot.. Is it
for testing or for building?
It builds,tests  and package nightly snapshots
http://ci.apache.org/projects/ofbiz/snapshots/
http://ci.apache.org/
http://ci.apache.org/waterfall?show_events=false&branch=&builder=ofbiz-trunk

http://ci.apache.org/waterfall?show_events=false&branch=&builder=ofbiz-branch13

http://ci.apache.org/projects/ofbiz/logs/
With the appriopriate IVY configuration you can inject latest, latest
release, latest in version (e.g. 1.5.x), or whatever external
(replacement
jar) to test.
How do you configure that?
Also I think that systematically using Yvy could prove to be
difficult, we have 200+ external libs in OFBiz.
Not only to set it (but also to track which version to keep, etc.)
This said it could be useful for the main libs, but then I wonder if
it's to easier/more-simple to do it manually from time to time.
The advantages would be that we would be sure to have the last
version, the drawback we need to check it compiles and tests when
automatically changed. With Buildbot, this should be OK.
Though at the moment, since we had to change the machine, the
current Buildbot has a problem with the testBasicDisk test as shows
the branch13 HTML report above.

So this is a question to All, could we not deconnect this test? It
keeps ransomy throwing false test alerts.

Because once on 2 testBasicDisk fails in Builbot I REALLY REALLY want
to disconnect it in trunk and all living releases, anyone against it?


Hrm?  Then fix the random failures.  Note how I just fixed the random
failures when run underneath java 1.7, because they were actually real
failures.

Don't do this yet.



Reply via email to