У нас есть около 10 различных приложений, которые являются проектами Spring Boot с Groovy.
Все наши проекты построены правильно на всех рабочих станциях разработчиков, и они работали правильно до вчерашнего дня, однако внезапно все они перестали работать сегодня только в наших конвейерах GitLab CI с ошибкой ниже:
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:37 min
[INFO] Finished at: 2018-10-31T17:49:11Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.21.0:test (default-test) on project ctg-oms-component: There are test failures.
[ERROR]
[ERROR] Please refer to /builds/ctg-integrations/ctg-oms-component/target/surefire-reports for the individual test results.
[ERROR] Please refer to dump files (if any exist) [date]-jvmRun[N].dump, [date].dumpstream and [date]-jvmRun[N].dumpstream.
[ERROR] ExecutionException The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
Я вытащил тот же образ докера, который использует наш конвейер GitLab CI, протестировал сборку проекта и все работает правильно. Однако ошибка возникает только в GitLab CI.
После того, как расследование похоже, что верный огонь создает форк, который приводит к сбою док-станции GitLab CI. Чтобы исправить это, я добавил ниже явную конфигурацию, чтобы избежать разветвленной виртуальной машины, и это избавило от вышеуказанной ошибки.
<!-- Needed only for GitLab CI -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<forkCount>0</forkCount>
</configuration>
</plugin>
Знаете ли вы, почему это происходит? Есть ли другой способ исправить GitLab CI, чтобы избежать этой проблемы? Мне не очень нравится этот обходной путь, так как это просто способ избежать взрыва GitLab CI, но я не знаю, как Docker обрабатывается за кулисами в Gitlab.