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
1 changed files with 14 additions and 5 deletions

View File

@ -84,12 +84,21 @@ public class ITestAbfsStreamStatistics extends AbstractAbfsIntegrationTest {
LOG.info("Result of Read operation : {}", result); LOG.info("Result of Read operation : {}", result);
/* /*
Testing if 2 read_ops value is coming after reading full content from a * Testing if 2 read_ops value is coming after reading full content
file (3 if anything to read from Buffer too). * from a file (3 if anything to read from Buffer too). Reason: read()
Reason: read() call gives read_ops=1, * call gives read_ops=1, reading from AbfsClient(http GET) gives
reading from AbfsClient(http GET) gives read_ops=2. * 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 { } finally {
IOUtils.cleanupWithLogger(LOG, inForOneOperation, IOUtils.cleanupWithLogger(LOG, inForOneOperation,