Сонарная задача 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-файла.
Это всего лишь подсказка, поскольку удаление также могло завершиться неудачно, но в этом случае в журналах будет ОШИБКА.