From: <tho...@us...> - 2014-08-12 14:05:39
|
Revision: 8615 http://sourceforge.net/p/bigdata/code/8615 Author: thompsonbry Date: 2014-08-12 14:05:34 +0000 (Tue, 12 Aug 2014) Log Message: ----------- javadoc. Set timeout to Long.MAX_VALUE as fix for #355. Modified Paths: -------------- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/journal/StressTestUnisolatedReadWriteIndex.java Modified: branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/journal/StressTestUnisolatedReadWriteIndex.java =================================================================== --- branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/journal/StressTestUnisolatedReadWriteIndex.java 2014-08-12 14:05:05 UTC (rev 8614) +++ branches/BIGDATA_RELEASE_1_3_0/bigdata/src/test/com/bigdata/journal/StressTestUnisolatedReadWriteIndex.java 2014-08-12 14:05:34 UTC (rev 8615) @@ -127,13 +127,18 @@ * number of spurious extensions from the failureRate. However, * there are clearly problems which emerge when the timeout is less * than the time required to complete the scheduled tasks. A variety - * of errors can be emerged when the scheduled tasks are all + * of errors can emerged when the scheduled tasks are all * cancelled. It is difficult to say whether any of those problems * could be observed by an application outside of a shutdownNow() * scenario. + * + * TODO We could write this using a task queue feeding an executor + * pool so we could make it into a longer running test. If I simply + * increase the number of trials, it attempts to schedule them all + * concurrently and hits an out of memory error (too many native threads). */ doConcurrentClientTest(journal,// - 30,// timeout + Long.MAX_VALUE,// timeout : MUST BE INFINITE OR WILL HIT FALSE ERRORS. 3, // 3,// nresources // 20 1, // minLocks 2, // 5 // maxLocks // 3 @@ -449,7 +454,7 @@ @Override public Void call() throws Exception { - final IIndex[] indices = new IIndex[resource.length]; + final UnisolatedReadWriteIndex[] indices = new UnisolatedReadWriteIndex[resource.length]; final Thread t = Thread.currentThread(); @@ -496,7 +501,27 @@ ndx.remove(key); - } + } + /** + * FIXME Add a probability of a read-only operation, e.g., + * lookup() or rangeIterator(key,val). The latter can also + * do chunked resolution. This will provide test coverage + * for the case where the close() of the iterator interrupts + * the producer. This happens especially in the case where a + * range iterator is used and the iterator is closed after + * the first result since the producer could still be + * running. If it is in the middle of evicting a dirty node + * from the write retention queue then that can leave the + * nodes and the queue in an inconsistent state. (We might + * need to write that test at the SAIL level since it is the + * AbstractedChunkedResolverator pattern for which we have + * observed the issue. Perhaps through a modification of the + * csem stress test.) + * + * @see <a href="http://trac.bigdata.com/ticket/855"> + * AssertionError: Child does not have persistent + * identity </a> + */ } // for( i : nops ) @@ -562,7 +587,6 @@ * {@link TestOptions#FAILURE_RATE}. * * @author <a href="mailto:tho...@us...">Bryan Thompson</a> - * @version $Id$ */ private static class SpuriousException extends RuntimeException { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |