You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2018/11/28 18:07:27 UTC

[ignite-teamcity-bot] branch ignite-9542-new-run-stripe updated: IGNITE-9542 Critical failures covered by test

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-9542-new-run-stripe
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git


The following commit(s) were added to refs/heads/ignite-9542-new-run-stripe by this push:
     new ce95b0e  IGNITE-9542 Critical failures covered by test
ce95b0e is described below

commit ce95b0ebddd600ea34200d7b6738a7ab4a0e4cdd
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Wed Nov 28 21:07:25 2018 +0300

    IGNITE-9542 Critical failures covered by test
---
 .../ci/teamcity/ignited/fatbuild/FatBuildCompacted.java   | 15 +++++++++++----
 .../ci/teamcity/ignited/fatbuild/ProblemCompacted.java    |  9 +++++++++
 .../ci/teamcity/ignited/runhist/InvocationData.java       |  2 +-
 .../ignite/ci/tcbot/chain/PrChainsProcessorTest.java      | 12 ++++++++++--
 .../ignited/IgnitedTcInMemoryIntegrationTest.java         |  1 +
 5 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
index 79e1226..e1b1041 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/FatBuildCompacted.java
@@ -473,15 +473,22 @@ public class FatBuildCompacted extends BuildRefCompacted implements IVersionedEn
 
         final int failCode ;
 
-        if(success)
+        if (success)
             failCode = InvocationData.OK;
         else {
-            failCode = InvocationData.FAILURE;
-
+            if (problems()
+                .stream().anyMatch(occurrence ->
+                    occurrence.isExecutionTimeout(compactor)
+                        || occurrence.isJvmCrash(compactor)
+                        || occurrence.isBuildFailureOnMetric(compactor)
+                        || occurrence.isCompilationError(compactor)))
+                failCode = InvocationData.CRITICAL_FAILURE;
+            else
+                failCode = InvocationData.FAILURE;
 
         }
 
-        invocation.status((byte) failCode);
+        invocation.status((byte)failCode);
         invocation.startDate(getStartDateTs());
         invocation.changesPresent(changes().length > 0 ? 1 : 0);
         return invocation;
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java
index 7a800e3..c1942e0 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/fatbuild/ProblemCompacted.java
@@ -124,6 +124,15 @@ public class ProblemCompacted {
         return compactor.getStringId(ProblemOccurrence.TC_COMPILATION_ERROR) == type;
     }
 
+
+    /** */
+    public boolean isBuildFailureOnMetric(IStringCompactor compactor) {
+        return compactor.getStringId(ProblemOccurrence.BUILD_FAILURE_ON_METRIC) == type;
+    }
+
+    /**
+     * @param compactor Compactor.
+     */
     public boolean isExecutionTimeout(IStringCompactor compactor) {
         return compactor.getStringId(ProblemOccurrence.TC_EXECUTION_TIMEOUT) == type;
     }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java
index ad0336c..bb0e6af 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/runhist/InvocationData.java
@@ -139,7 +139,7 @@ public class InvocationData {
      *
      */
     public int failuresCount() {
-        return (int)invocations().filter(inv -> inv.status == FAILURE).count();
+        return (int)invocations().filter(inv -> inv.status == FAILURE || inv.status == CRITICAL_FAILURE).count();
     }
 
     /** {@inheritDoc} */
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
index 741c7f6..963533e 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessorTest.java
@@ -201,13 +201,21 @@ public class PrChainsProcessorTest {
         addBuilds(cancelledBuild);
 
         for (int i = 0; i < NUM_OF_TESTS_IN_MASTER; i++) {
-            addBuilds(createFailedBuild(c, CACHE_1,
+            FatBuildCompacted cache1InMaster = createFailedBuild(c, CACHE_1,
                 ITeamcity.DEFAULT, 500 + i, 100000 + (i * 10000))
                 .addTests(c, Lists.newArrayList(
                     createFailedTest(2L, TEST_WITH_HISTORY_FAILING_IN_MASTER),
                     createPassingTest(3L, TEST_WITH_HISTORY_PASSING_IN_MASTER),
                     createTest(50L, TEST_FLAKY_IN_MASTER, i % 2 == 0),
-                    createPassingTest(400L, TEST_WAS_FIXED_IN_MASTER))));
+                    createPassingTest(400L, TEST_WAS_FIXED_IN_MASTER)));
+
+            if (i % 7 == 1) {
+                ProblemOccurrence timeout = new ProblemOccurrence();
+                timeout.setType(ProblemOccurrence.TC_EXECUTION_TIMEOUT);
+                cache1InMaster.addProblems(c, Collections.singletonList(timeout));
+            }
+
+            addBuilds(cache1InMaster);
         }
 
         long ageMs = TimeUnit.DAYS.toMillis(InvocationData.MAX_DAYS);
diff --git a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
index 718aad8..632a6aa 100644
--- a/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
+++ b/ignite-tc-helper-web/src/test/java/org/apache/ignite/ci/teamcity/ignited/IgnitedTcInMemoryIntegrationTest.java
@@ -374,6 +374,7 @@ public class IgnitedTcInMemoryIntegrationTest {
 
         assertNotNull(cache1Hist);
         assertEquals(1.0, cache1Hist.getFailRate(), 0.1);
+        assertEquals(0.18, cache1Hist.getCriticalFailRate(), 0.05);
     }