SonarQube 5.1 в Solaris не показывает исходные файлы

Я пытался перейти с устаревшей установки гидролокатора на более новую версию SonarQube 5.1.2. Приложение работает на платформе Solaris и поддерживается базой данных Oracle.

Почти все работает нормально, за исключением того, что исходный код не отображается ни для какого исходного файла, ни в каком контексте.

Любой запрос к */api/sources/lines? Uuid=...&from=1&to=1000 приводит к 404 с объектом json, содержащим следующее сообщение:

"File '...' has no sources"

Я попытался запустить анализ с нашего сервера Hudson и Maven, с теми же результатами. Пройдя несколько часов в Интернете и не обнаружив вопросов с такими же симптомами, я обращаюсь к SO за помощью. Во всех темах, которые я прочитал, либо анализ не запускается (например, Невозможно запустить анализ в SonarQube 5.1), либо код показан для некоторых проблем, а не для других (например, Sonarqube Javascript Coverage не показывает исходные файлы),

Из-за усталости я попытался установить точно такую ​​же версию SonarQube (5.1.2, тот же zip-файл, что и на Solaris), с такой же конфигурацией на моем локальном компьютере (под управлением Linux). Единственные различия:

  • поддерживающая ОС (Solaris / Linux)
  • база данных (Oracle / H2)
  • JDK (хотя оба являются оракулом 1.8.0_45)

К моему ужасу, он прекрасно работает.

Я включил журналы DEBUG на сервере и не смог получить дополнительную информацию о том, как / почему индекс эластичного поиска не находит источник для наших проектов.

Любая информация о том, как я могу продолжить расследование по этому вопросу, будет приветствоваться.

2 ответа

Проекты должны быть проанализированы снова при обновлении с (очень) старых версий, таких как 3.2. Это должно вернуть отображение источников назад.

Я смог обойти свою проблему, следуя совету Саймона.

Я

  1. перед обновлением с 3.2.1 до 5.1.2 восстановил резервную копию из базы данных
  2. произвел обновление до версии 4.5.6 LTS
  3. Проведите несколько анализов в течение нескольких дней в версии 4.5.6, убедившись, что все работает правильно
  4. создал резервную копию базы данных для версии 4.5.6
  5. произвел обновление до версии 5.1.2

Во время перехода на 5.1.2 IndexSynchronizer столкнулся с некоторой проблемой (из-за упругости поиска, очевидно, перегружающей ЦП хоста):

 2015.11.03 13:21:23 INFO  web[o.s.s.s.IndexSynchronizer] Index source lines
 2015.11.03 13:22:10 INFO   es[o.e.monitor.jvm]  [sonar-1446552525578] [gc][young][766][38] duration [784ms], collections [1]/[1s], total [784ms]/[6.6s], memory [194mb]->[126.7mb]/[989.8mb], all_pools {[young] [58.6mb]->[2.1kb]/[273mb]}{[survivor] [8.5mb]->[8.5mb]/[34.1mb]}{[old] [126.8mb]->[118.2mb]/[682.6mb]}
 2015.11.03 13:22:23 INFO  web[o.s.s.es.BulkIndexer] 110525 requests processed (1842 items/sec)
 2015.11.03 13:22:30 WARN   es[o.e.monitor.jvm]  [sonar-1446552525578] [gc][young][784][51] duration [2.1s], collections [2]/[2.9s], total [2.1s]/[10.7s], memory [175.6mb]->[148.3mb]/[989.8mb], all_pools {[young] [42.2mb]->[37.3kb]/[273mb]}{[survivor] [8.5mb]->[8.5mb]/[34.1mb]}{[old] [124.9mb]->[139.7mb]/[682.6mb]}
 2015.11.03 13:23:23 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (269 items/sec)
 2015.11.03 13:24:23 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:25:23 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:26:23 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:27:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:28:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:29:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:30:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:31:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:32:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:33:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:34:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:35:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:36:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:37:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:38:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:39:24 INFO  web[o.s.s.es.BulkIndexer] 126712 requests processed (0 items/sec)
 2015.11.03 13:40:07 INFO  web[o.e.client.transport] [sonar-1446552525578] failed to get node info for [#transport#-1][localhost][inet[/127.0.0.1:9001]], disconnecting...
 org.elasticsearch.transport.ReceiveTimeoutTransportException: [][inet[/127.0.0.1:9001]][cluster:monitor/nodes/info] request_id [3417] timed out after [5834ms]
    at org.elasticsearch.transport.TransportService$TimeoutHandler.run(TransportService.java:366) ~[elasticsearch-1.4.4.jar:na]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_45]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
 2015.11.03 13:40:07 WARN   es[o.e.monitor.jvm]  [sonar-1446552525578] [gc][young][788][54] duration [17.5m], collections [1]/[17.5m], total [17.5m]/[17.7m], memory [101mb]->[104.3mb]/[989.8mb], all_pools {[young] [7.8mb]->[380.8kb]/[273mb]}{[survivor] [8.5mb]->[8.5mb]/[34.1mb]}{[old] [84.7mb]->[95.5mb]/[682.6mb]}
 Wrapper Process has not received any CPU time for 978 seconds.  Extending timeouts.
 2015.11.03 13:40:07 ERROR web[o.s.s.ui.JRubyFacade] Fail to upgrade database
 java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Fail to execute ES search request '{"size":100,"query":{"filtered":{"query":{"match_all":{}},"filter":{"bool":{"must":[{"term":{"fileUuid":"3d674506-5a64-4b1e-a849-2c051e736e55","_cache":false}},{"range":{"line":{"from":250,"to":null,"include_lower":false,"include_upper":true},"_cache":false}}],"_cache":false}}}},"_source":false}' on indices '[sourcelines]' on types '[sourceline]'
    com.google.common.base.Throwables.propagate(Throwables.java:156)
    org.sonar.server.es.BaseIndexer.index(BaseIndexer.java:77)
    org.sonar.server.search.IndexSynchronizer.execute(IndexSynchronizer.java:90)

После этого он просто зависал и не продолжал ни обновление, ни показ страницы индекса (оба / перенаправлены в /maintenance и /setup показали сообщение об ошибке). После остановки и перезапуска сонара он в конечном итоге завершил миграцию индекса исходных файлов, и с этого момента он, кажется, работает как ожидалось.

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