SOLR-12028: BadApple and AwaitsFix annotations usage

This commit is contained in:
Erick Erickson 2018-02-26 20:33:41 -08:00
parent 1fc3ca0cbb
commit 1fe45606b9
44 changed files with 80 additions and 21 deletions

View File

@ -618,6 +618,16 @@ Test args: [${args}]</echo>
<antcall>
<param name="is.jenkins.build" value="true"/>
<param name="tests.haltonfailure" value="false"/>
<param name="badapples" value="false"/>
<target name="-jenkins-base"/>
</antcall>
</target>
<target name="jenkins-badapples">
<antcall>
<param name="is.jenkins.build" value="true"/>
<param name="tests.haltonfailure" value="false"/>
<param name="badapples" value="true"/>
<target name="-jenkins-base"/>
</antcall>
</target>
@ -627,6 +637,7 @@ Test args: [${args}]</echo>
<param name="is.jenkins.build" value="true"/>
<param name="tests.haltonfailure" value="false"/>
<param name="tests.nightly" value="true"/>
<param name="badapples" value="false"/>
<target name="-jenkins-base"/>
</antcall>
</target>

View File

@ -1467,6 +1467,9 @@ def main():
def smokeTest(java, baseURL, gitRevision, version, tmpDir, isSigned, testArgs):
startTime = datetime.datetime.now()
# disable flakey tests for smoke-tester runs:
testArgs = '-Dtests.badapples=false %s' % testArgs
if FORCE_CLEAN:
if os.path.exists(tmpDir):

View File

@ -1401,6 +1401,7 @@ ant beast -Dtests.dups=N -Dtests.iters=M -Dbeast.iters=P \
ant -Dtests.nightly=[false] - nightly test group (@Nightly)
ant -Dtests.weekly=[false] - weekly tests (@Weekly)
ant -Dtests.awaitsfix=[false] - known issue (@AwaitsFix)
ant -Dtests.badapples=[true] - flakey tests (@BadApple)
ant -Dtests.slow=[true] - slow tests (@Slow)
# An alternative way to select just one (or more) groups of tests

View File

@ -477,6 +477,7 @@ public class TestGeo3DPoint extends LuceneTestCase {
}
@Nightly
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testRandomBig() throws Exception {
doTestRandom(200000);
}

View File

@ -282,19 +282,20 @@ public abstract class LuceneTestCase extends Assert {
public @interface Slow {}
/**
* Annotation for tests that fail frequently and should
* be moved to a <a href="https://builds.apache.org/job/Lucene-BadApples-trunk-java7/">"vault" plan in Jenkins</a>.
* Annotation for tests that fail frequently and are not executed in Jenkins builds
* to not spam mailing lists with false reports.
*
* Tests annotated with this will be turned off by default. If you want to enable
* Tests are turned on for developers by default. If you want to disable
* them, set:
* <pre>
* -Dtests.badapples=true
* -Dtests.badapples=false
* </pre>
* (or do this through {@code ~./lucene.build.properties}).
*/
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@TestGroup(enabled = false, sysProperty = SYSPROP_BADAPPLES)
@TestGroup(enabled = true, sysProperty = SYSPROP_BADAPPLES)
public @interface BadApple {
/** Point to JIRA entry. */
public String bugUrl();

View File

@ -322,6 +322,8 @@ Other Changes
* SOLR-10809: Get precommit lint warnings out of Solr core (Erick Erickson)
* SOLR-12028: BadApple and AwaitsFix annotations usage (Erick Erickson, Uwe Schindler)
================== 7.2.1 ==================
Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.

View File

@ -163,7 +163,7 @@ public class TestLTRReRankingPipeline extends LuceneTestCase {
}
@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-11134")
@BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-12028, https://issues.apache.org/jira/browse/SOLR-11134")
@Test
public void testDifferentTopN() throws IOException {
final Directory dir = newDirectory();

View File

@ -269,6 +269,7 @@ public class DocValuesNotIndexedTest extends SolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testGroupingDocAbsent() throws IOException, SolrServerException {
List<SolrInputDocument> docs = new ArrayList<>(4);
docs.add(makeGSDoc(2, fieldsToTestGroupSortFirst, null));

View File

@ -225,6 +225,7 @@ public class ForceLeaderTest extends HttpPartitionTest {
@Test
@Slow
//TODO remove in SOLR-11812
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testReplicasInLIRNoLeader() throws Exception {
handle.put("maxScore", SKIPVAL);
handle.put("timestamp", SKIPVAL);

View File

@ -123,6 +123,7 @@ public class HttpPartitionTest extends AbstractFullDistribZkTestBase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test() throws Exception {
waitForThingsToLevelOut(30000);

View File

@ -49,6 +49,7 @@ public class LeaderFailoverAfterPartitionTest extends HttpPartitionTest {
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test() throws Exception {
waitForThingsToLevelOut(30000);

View File

@ -20,9 +20,9 @@ import java.lang.invoke.MethodHandles;
import java.util.Map;
import java.util.Properties;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.LuceneTestCase.Nightly;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.lucene.util.LuceneTestCase.AwaitsFix;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.embedded.JettySolrRunner;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
@ -46,7 +46,7 @@ import org.slf4j.LoggerFactory;
@Slow
@Nightly
@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-10071")
@LuceneTestCase.BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-10071")
@Deprecated
public class LeaderInitiatedRecoveryOnShardRestartTest extends AbstractFullDistribZkTestBase {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

View File

@ -64,6 +64,7 @@ public class MoveReplicaHDFSTest extends MoveReplicaTest {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testNormalFailedMove() throws Exception {
inPlaceMove = false;
testFailedMove();

View File

@ -109,6 +109,7 @@ public class PeerSyncReplicationTest extends AbstractFullDistribZkTestBase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test() throws Exception {
handle.clear();
handle.put("timestamp", SKIPVAL);

View File

@ -55,6 +55,7 @@ public class ReplaceNodeNoTargetTest extends SolrCloudTestCase {
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test() throws Exception {
cluster.waitForAllNodes(5000);
String coll = "replacenodetest_coll_notarget";

View File

@ -137,6 +137,7 @@ public class SharedFSAutoReplicaFailoverTest extends AbstractFullDistribZkTestBa
@Test
@ShardsFixed(num = 4)
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test() throws Exception {
try {
// to keep uncommitted docs during failover

View File

@ -70,6 +70,7 @@ public class TestAuthenticationFramework extends SolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testBasics() throws Exception {
collectionCreateSearchDeleteTwice();

View File

@ -49,6 +49,7 @@ public class TestPrepRecovery extends SolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testLeaderUnloaded() throws Exception {
CloudSolrClient solrClient = cluster.getSolrClient();
@ -83,6 +84,8 @@ public class TestPrepRecovery extends SolrCloudTestCase {
collectionName, clusterShape(1, 3));
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testLeaderNotResponding() throws Exception {
CloudSolrClient solrClient = cluster.getSolrClient();

View File

@ -213,6 +213,7 @@ public class TestPullReplica extends SolrCloudTestCase {
}
@SuppressWarnings("unchecked")
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testAddDocs() throws Exception {
int numPullReplicas = 1 + random().nextInt(3);
CollectionAdminRequest.createCollection(collectionName, "conf", 1, 1, 0, numPullReplicas)

View File

@ -35,6 +35,7 @@ import org.junit.After;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
@ -91,6 +92,7 @@ public class TestSegmentSorting extends SolrCloudTestCase {
}
@Test@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testSegmentTerminateEarly() throws Exception {
final SegmentTerminateEarlyTestState tstes = new SegmentTerminateEarlyTestState(random());

View File

@ -56,6 +56,7 @@ import org.apache.solr.util.TestInjection;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -194,6 +195,8 @@ public class TestStressCloudBlindAtomicUpdates extends SolrCloudTestCase {
checkField(field);
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test_dv_stored() throws Exception {
String field = "long_dv_stored";
checkExpectedSchemaField(map("name", field,

View File

@ -519,6 +519,7 @@ public class TestTlogReplica extends SolrCloudTestCase {
}
@SuppressWarnings("unchecked")
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testRecovery() throws Exception {
boolean useKill = random().nextBoolean();
createAndWaitForCollection(1, 0, 2, 0);

View File

@ -63,6 +63,7 @@ public class TestUtilizeNode extends SolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test() throws Exception {
cluster.waitForAllNodes(5000);
int REPLICATION = 2;

View File

@ -251,7 +251,7 @@ public class ZkControllerTest extends SolrTestCaseJ4 {
}
}
@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-7736")
@BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-12028, https://issues.apache.org/jira/browse/SOLR-7736")
public void testPublishAndWaitForDownStates() throws Exception {
String zkDir = createTempDir("testPublishAndWaitForDownStates").toFile().getAbsolutePath();
CoreContainer cc = null;

View File

@ -30,6 +30,7 @@ import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class ZkSolrClientTest extends SolrTestCaseJ4 {
@ -221,6 +222,8 @@ public class ZkSolrClientTest extends SolrTestCaseJ4 {
}
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testMultipleWatchesAsync() throws Exception {
try (ZkConnection conn = new ZkConnection ()) {
final SolrZkClient zkClient = conn.getClient();

View File

@ -90,6 +90,7 @@ public class ShardSplitTest extends BasicDistributedZkTest {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void test() throws Exception {
waitForThingsToLevelOut(15);

View File

@ -57,6 +57,8 @@ public class AutoAddReplicasIntegrationTest extends SolrCloudTestCase {
}
@Test
// This apparently fails in both subclasses.
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testSimple() throws Exception {
JettySolrRunner jetty1 = cluster.getJettySolrRunner(0);
JettySolrRunner jetty2 = cluster.getJettySolrRunner(1);

View File

@ -556,6 +556,7 @@ public class AutoScalingHandlerTest extends SolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testReadApi() throws Exception {
CloudSolrClient solrClient = cluster.getSolrClient();
// first trigger

View File

@ -397,6 +397,7 @@ public class ComputePlanActionTest extends SolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testSelectedCollections() throws Exception {
AssertingTriggerAction.expectedNode = null;

View File

@ -677,6 +677,7 @@ public class TriggerIntegrationTest extends SolrCloudTestCase {
public static long eventQueueActionWait = 5000;
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testEventQueue() throws Exception {
waitForSeconds = 1;
CloudSolrClient solrClient = cluster.getSolrClient();
@ -1402,8 +1403,6 @@ public class TriggerIntegrationTest extends SolrCloudTestCase {
}
@Test
//Commented out 24-Jan-2018
//@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-11714")
public void testSearchRate() throws Exception {
// start a few more jetty-s
for (int i = 0; i < 3; i++) {

View File

@ -16,12 +16,14 @@
*/
package org.apache.solr.cloud.autoscaling.sim;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.solr.client.solrj.cloud.DistributedQueue;
import org.apache.solr.client.solrj.cloud.autoscaling.DistribStateManager;
/**
*
*/
@LuceneTestCase.BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public class TestGenericDistributedQueue extends TestSimDistributedQueue {
DistribStateManager stateManager = new SimDistribStateManager();

View File

@ -493,7 +493,8 @@ public class TestLargeCluster extends SimSolrCloudTestCase {
}
@Test
//@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-11714")
// JIRA closed 24-Feb-2018. Still apparently a problem.
@BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-11714")
public void testSearchRate() throws Exception {
SolrClient solrClient = cluster.simGetSolrClient();
String collectionName = "testSearchRate";

View File

@ -896,6 +896,7 @@ public class TestTriggerIntegration extends SimSolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testListeners() throws Exception {
SolrClient solrClient = cluster.simGetSolrClient();
String setTriggerCommand = "{" +
@ -1040,6 +1041,7 @@ public class TestTriggerIntegration extends SimSolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testCooldown() throws Exception {
SolrClient solrClient = cluster.simGetSolrClient();
failDummyAction = false;
@ -1129,6 +1131,7 @@ public class TestTriggerIntegration extends SimSolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testSearchRate() throws Exception {
SolrClient solrClient = cluster.simGetSolrClient();
String COLL1 = "collection1";

View File

@ -235,6 +235,8 @@ public class CdcrBootstrapTest extends SolrTestCaseJ4 {
}
}
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
@Test
public void testBootstrapWithContinousIndexingOnSourceCluster() throws Exception {
// start the target first so that we know its zkhost
MiniSolrCloudCluster target = new MiniSolrCloudCluster(1, createTempDir("cdcr-target"), buildJettyConfig("/solr"));

View File

@ -32,7 +32,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Nightly
@BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-10107")
@BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-12028, https://issues.apache.org/jira/browse/SOLR-10107")
public class CdcrReplicationDistributedZkTest extends BaseCdcrDistributedZkTest {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());

View File

@ -35,7 +35,7 @@ import org.junit.BeforeClass;
BadHdfsThreadsFilter.class // hdfs currently leaks thread(s)
})
@SuppressObjectReleaseTracker(bugUrl="Testing purposes")
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-10191")
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028, https://issues.apache.org/jira/browse/SOLR-10191")
public class HdfsChaosMonkeyNothingIsSafeTest extends ChaosMonkeyNothingIsSafeTest {
private static MiniDFSCluster dfsCluster;

View File

@ -159,7 +159,7 @@ public class TestJmxIntegration extends SolrTestCaseJ4 {
numDocs > oldNumDocs);
}
@Test @AwaitsFix(bugUrl="https://issues.apache.org/jira/browse/SOLR-2715") // timing problem?
@Test @BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-2715") // timing problem?
public void testJmxOnCoreReload() throws Exception {
String coreName = h.getCore().getName();

View File

@ -494,6 +494,7 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void doTestIndexAndConfigReplication() throws Exception {
clearIndexWithReplication();
@ -623,7 +624,9 @@ public class TestReplicationHandler extends SolrTestCaseJ4 {
* the index hasn't changed. See SOLR-9036
*/
@Test
@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-9036")
//Commented out 24-Feb 2018. JIRA marked as fixed.
// Still fails 26-Feb on master.
@BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-9036")
public void doTestIndexFetchOnMasterRestart() throws Exception {
useFactory(null);
try {

View File

@ -40,7 +40,6 @@ import org.junit.Test;
import static java.util.Arrays.asList;
import static org.apache.solr.handler.TestSolrConfigHandlerCloud.compareValues;
//@AwaitsFix(bugUrl="https://issues.apache.org/jira/browse/SOLR-10136")
public class TestReqParamsAPI extends SolrCloudTestCase {
private List<RestTestHarness> restTestHarnesses = new ArrayList<>();

View File

@ -230,6 +230,7 @@ public class AutoscalingHistoryHandlerTest extends SolrCloudTestCase {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testHistory() throws Exception {
waitForState("Timed out wait for collection be active", COLL_NAME,
clusterShape(1, 3));

View File

@ -23,7 +23,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.lucene.util.LuceneTestCase.AwaitsFix;
import org.apache.lucene.util.LuceneTestCase;
import org.apache.lucene.util.LuceneTestCase.Slow;
import org.apache.solr.cloud.AbstractZkTestCase;
import org.apache.solr.common.cloud.SolrZkClient;
@ -39,7 +39,7 @@ import org.junit.Test;
* Depends on ZK for testing ZooKeeper backed storage logic.
*/
@Slow
@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-6443")
@LuceneTestCase.BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-6443")
public class TestManagedResourceStorage extends AbstractZkTestCase {
/**

View File

@ -140,6 +140,7 @@ public class HdfsDirectoryTest extends SolrTestCaseJ4 {
}
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testEOF() throws IOException {
Directory fsDir = new RAMDirectory();
String name = "test.eof";

View File

@ -194,7 +194,7 @@ public class AtomicUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
}
@AwaitsFix(bugUrl = "https://issues.apache.org/jira/browse/SOLR-10734")
@BadApple(bugUrl = "https://issues.apache.org/jira/browse/SOLR-10734")
public void testMultipleThreads() throws Exception {
clearIndex();
String[] strings = new String[5];

View File

@ -6576,7 +6576,8 @@ public class StreamExpressionTest extends SolrCloudTestCase {
assertEquals(prob.doubleValue(), 0.09184805266259899, 0.0);
}
@Test
@Test
@BadApple(bugUrl="https://issues.apache.org/jira/browse/SOLR-12028")
public void testDistributions() throws Exception {
String cexpr = "let(a=normalDistribution(10, 2), " +
"b=sample(a, 250), " +