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