EdColeman commented on code in PR #3911:
URL: https://github.com/apache/accumulo/pull/3911#discussion_r1378011992
##########
test/src/main/java/org/apache/accumulo/test/functional/BinaryStressIT.java:
##########
@@ -99,7 +99,15 @@ public void binaryStressTest() throws Exception {
String tableName = getUniqueNames(1)[0];
c.tableOperations().create(tableName);
c.tableOperations().setProperty(tableName,
Property.TABLE_SPLIT_THRESHOLD.getKey(), "10K");
+ // The call below to BinaryIT.runTest will insert enough data that the
table will
+ // eventually split based on the 10k split threshold set above. However,
that may
+ // not occur before the scanner below checks that there are 8 metadata
tablets for
+ // the table. This is because the TabletGroupWatcher runs every 5
seconds, so there
+ // is a race condition that makes this test flaky. Introduce a sleep
after the call
+ // to BinaryIT.runTest, but before the scan, to give the Manager a
chance to split
+ // the table.
BinaryIT.runTest(c, tableName);
+ Thread.sleep(20_000);
Review Comment:
We that - or anything else that could flag the condition was triggered.
One benefit of wrapping the whole scan would be that even with a delay of, say
5 seconds, we'd get 4 tries tn possibly continue before the 20 second delay
would have expired. Having the max tries / delays set to something higher
would then allow for reducing false positives? That way we don't need to
arbitrarily extend the run time of the test for every run to try an accommodate
the slowest system we test on.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]