geode-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Deppe <jensde...@apache.org>
Subject Debugging intermittent dunit failures
Date Mon, 11 Dec 2017 21:14:55 GMT
I've recently debugged various distributed tests which fail as a result of
prior tests not cleaning up enough. It's somewhat painful and this is my
usual debug process:


   - Examine the progress.txt file to determine which tests ran before my
   failing test.
   - I pick 20-25 of these tests and create a Suite (including my failing
   test) - as these tests may have run in parallel, it's not clear which tests
   would have run immediately prior to your test
   - Run the whole suite to see if I can get my test to fail
   - Bisect or manually iterate through the tests to see which one is
   causing the problem.


The last step is painful, so I've updated SuiteRunner to use a 'candidate'
test class and run this class after every other class in the list of
SuiteClasses. For example:

@Suite.SuiteClasses(value = {
    org.apache.geode.cache.snapshot.SnapshotByteArrayDUnitTest.class,
    org.apache.geode.cache.query.dunit.QueryDataInconsistencyDUnitTest.class,
    org.apache.geode.cache.query.internal.index.MultiIndexCreationDUnitTest.class,
})
 @SuiteRunner.Candidate(org.apache.geode.management.internal.configuration.ClusterConfigDistributionDUnitTest.class)
@RunWith(SuiteRunner.class)
public class DebugSuite {
}


The Candidate is optional, but this would run the following tests:

- SnapshotByteArrayDUnitTest
- *ClusterConfigDistributionDUnitTest*
- QueryDataInconsistencyDUnitTest
- *ClusterConfigDistributionDUnitTest*
- MultiIndexCreationDUnitTest
- *ClusterConfigDistributionDUnitTest*

--Jens

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message