Сонарная задача SonarQube 5.3 завершается неудачно без входа в панель управления

Я знаю, что это похоже на фоновые задачи sonarqube 5.2, иногда без сбоев без журнала - однако я не могу комментировать (из-за недостатка репутации), чтобы добавить дополнительную информацию, поэтому попытался добавить это сообщение как ответ, но модераторы удалили его...

У меня были проблемы с SonarQube 5.2, а теперь 5.3 после обновления вчера. Я попытался поднять журналирование до TRACE на сервере и включить sonar.verbose=true в самом проекте.

Однако в выводе сборки maven нет дополнительной информации - только обычная:

АНАЛИЗ УСПЕШНЫЙ, вы можете просматривать ххх в журналах сборки.

Я вижу ПОЧТУ /api/ce/submit?projectKey=xxxx&projectName=yyyy | time=757ms в лог файлах сервера - но больше ничего.

Я также вижу почтовый файл в data\ce\reports с именем совпадает с идентификатором в журнале сборки (например: AVI19fDPpe3MLWoccJn9.zip)

Однако, я получаю периодические сбои на экране фоновых задач - без ссылки на журнал на экране фоновых задач и без входа в систему data\ce\logs\reports каталог создан.

Я прибегнул к пересозданию базы данных sonarqube с нуля для 5.3 (поскольку у нас не было истории в любом случае) - и ошибка все еще происходила.

Я использую:

  • БД Oracle на свежем sonarqube 5.3 устанавливать
  • Плагины:
    • Сонар-Java-плагин-3,9
    • Сонар-плагин с LDAP-1.5.1
    • sonar-scm-Perforce-Plugin-1.3 (хотя в настоящее время sonar.scm.disabled=true как у нас были проблемы в предыдущей версии)
    • sonar-csharp-plugin-4.3 (не относится к этому анализу Java)
    • sonar-scm-git-plugin-1.1 (не относится к данному анализу)
    • sonar-scm-svn-plugin-1.2 (не относится к данному анализу)
  • Я строю проект Maven, используя sonar-jacoco-listeners v 3.2 (также пробовал 2.9.1)

1 ответ

Вы столкнулись с очень странной проблемой.

Подвести итог:

  • время от времени
  • фоновая задача обрабатывается без входа в sonar.log или журнала задач в data/ce/logs каталог
  • задача не выполнена (как видно в пользовательском интерфейсе SQ)
  • это бежало в течение очень короткого времени
  • zip-файл отчета по-прежнему присутствует в каталоге данных

Единственный раз, когда мы столкнулись с таким сценарием, оказалось, что два экземпляра SonarQube работают в одной базе данных, и вот что происходит:

  • SQ A (тот, кого вы знаете и отслеживаете) получает отчет, сохраняет zip-файл в своем каталоге данных и добавляет запись (фоновую задачу) в БД
  • SQ A и SQ B регулярно опрашивают DB для обработки элементов, ожидающих обработки. Иногда SQ B будет первым, кто выберет запись из БД и начнет ее обрабатывать. Поскольку отчет не находится в каталоге данных, обработка очень быстро завершается неудачно, и запись помечается как неудачная в БД.
  • SQ A никогда не пытается обработать запись, потому что с ее точки зрения она либо ОБРАБАТЫВАЕТСЯ (когда над ней работает SQ B), либо НЕУДАЧИВАЕТСЯ (когда с ней завершается SQ B). Могут быть обработаны только предметы, ожидающие рассмотрения. Таким образом, в sonar.log SQ A никогда не появляется ни одного журнала, и журнал задач тоже не создается. Тем не менее, в пользовательском интерфейсе фоновая задача отображается как невыполненная, поскольку пользовательский интерфейс отображает информацию из БД.

Хороший намек на то, что обработка (т.е. изменение состояния записи в БД) не была выполнена SQ A, заключается в том, что zip-файл отчета все еще присутствует в каталоге данных. Изменение состояния записи на FAIL или SUCCESS тесно связано с удалением zip-файла.

Это всего лишь подсказка, поскольку удаление также могло завершиться неудачно, но в этом случае в журналах будет ОШИБКА.

Другие вопросы по тегам