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.
|