HADOOP-17018. Intermittent failing of ITestAbfsStreamStatistics in ABFS (#1990)

Contributed by: Mehakmeet Singh

In some cases, ABFS-prefetch thread runs in the background which returns some bytes from the buffer and gives an extra readOp. Thus, making readOps values arbitrary and giving intermittent failures in some cases. Hence, readOps values of 2 or 3 are seen in different setups.
This commit is contained in:
Mehakmeet Singh 2020-05-07 16:45:28 +05:30 committed by Thomas Marquardt
parent 76ee7e5494
commit a2f44344c3
No known key found for this signature in database
GPG Key ID: AEB30C9E78868287

View File

@ -84,12 +84,21 @@ public void testAbfsStreamOps() throws Exception {
LOG.info("Result of Read operation : {}", result);
/*
Testing if 2 read_ops value is coming after reading full content from a
file (3 if anything to read from Buffer too).
Reason: read() call gives read_ops=1,
reading from AbfsClient(http GET) gives read_ops=2.
* Testing if 2 read_ops value is coming after reading full content
* from a file (3 if anything to read from Buffer too). Reason: read()
* call gives read_ops=1, reading from AbfsClient(http GET) gives
* read_ops=2.
*
* In some cases ABFS-prefetch thread runs in the background which
* returns some bytes from buffer and gives an extra readOp.
* Thus, making readOps values arbitrary and giving intermittent
* failures in some cases. Hence, readOps values of 2 or 3 is seen in
* different setups.
*
*/
assertReadWriteOps("read", 2, statistics.getReadOps());
assertTrue(String.format("The actual value of %d was not equal to the "
+ "expected value of 2 or 3", statistics.getReadOps()),
statistics.getReadOps() == 2 || statistics.getReadOps() == 3);
} finally {
IOUtils.cleanupWithLogger(LOG, inForOneOperation,