Steve Loughran created HADOOP-13716:
---------------------------------------

             Summary: Add an Eventually class to await eventual completion of 
lambda expressions
                 Key: HADOOP-13716
                 URL: https://issues.apache.org/jira/browse/HADOOP-13716
             Project: Hadoop Common
          Issue Type: New Feature
          Components: test
    Affects Versions: 2.8.0
            Reporter: Steve Loughran


To make our tests robust against timing problems and eventual consistent 
stores, we need to do more spin & wait for state.

We have some code in {{GenericTestUtils.waitFor}} to await a condition being 
met, but the predicate it calls doesn't throw exceptions, there's no way for a 
probe to throw an exception, and all you get is the eventual "timed out" 
message. 

We can do better, and in closure-ready languages (scala & scalatest, groovy and 
some slider code) we've examples to follow. Some of that work has been 
reimplemented slightly in {{S3ATestUtils.eventually}}

I propose adding a class in the test tree, {{Eventually}} to be a 
successor/replacement for these.

# has an eventually/waitfor operation taking a predicate that throws an 
exception
# has an "evaluate" exception which tries to evaluate an answer until the 
operation stops raising an exception. (again, from scalatest)
# plugin backoff strategies (from Scalatest; lets you do exponential as well as 
linear)
# option of adding a special handler to generate the failure exception (e.g. 
run more detailed diagnostics for the exception text, etc).
# be Java 8 lambda expression friendly
# be testable and tested itself.







--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-issues-h...@hadoop.apache.org

Reply via email to