0

SonarQubeの設定ではかなり厄介な問題があります。我々は、実行中のSQ 4.5.5をインストールしているサーバでSonarQube eclipseプラグイン:問題を同期させる際のタイムアウト

セットアップ

。 SonarQube eclipseプラグインを使用してSonarの機能をIDEに統合します。現在、SQ eclipseプラグインのバージョン3.4を使用しています。

問題

我々はEclipseプラグインのいずれかのソナーの問題をsnychronizeしようとすると、それは数分かかり、screeshot中のダイアログが下に表示されます。

enter image description here

問題についてSonarQubeサーバーを照会するときEclipseワークスペース内.logファイルには、タイムアウトを示しています。ブラウザでURLを開くと、ページが読み込まれるまでにかなりの時間がかかりますが、最終的にJSON形式のソナーの問題に関するデータが表示されます。だから明らかにサーバーの問題のように思えます。私たちのサーバーは、時間内にデータを取得するのが遅いだけです。

!ENTRY org.sonar.ide.eclipse.core 4 4 2016-04-01 08:24:35.561 
!MESSAGE Error during issue query [email protected] 
!STACK 0 
org.sonar.ide.eclipse.wsclient.SonarWSClientException: Error during issue query [email protected] 
    at org.sonar.ide.eclipse.wsclient.internal.SonarWSClientFacade.findIssues(SonarWSClientFacade.java:199) 
    at org.sonar.ide.eclipse.wsclient.internal.SonarWSClientFacade.getUnresolvedRemoteIssuesRecursively(SonarWSClientFacade.java:174) 
    at org.sonar.ide.eclipse.core.internal.remote.RemoteSourceCode.getRemoteIssuesRecursively(RemoteSourceCode.java:102) 
    at org.sonar.ide.eclipse.core.internal.jobs.SynchronizeAllIssuesJob.doRefreshIssues(SynchronizeAllIssuesJob.java:138) 
    at org.sonar.ide.eclipse.core.internal.jobs.SynchronizeAllIssuesJob.fetchRemoteIssues(SynchronizeAllIssuesJob.java:127) 
    at org.sonar.ide.eclipse.core.internal.jobs.SynchronizeAllIssuesJob.run(SynchronizeAllIssuesJob.java:78) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) 
Caused by: java.lang.IllegalStateException: Fail to request http://AcmeSonarServer:8080/sonar/api/issues/search?resolved=false&pageSize=-1&componentRoots=ACME.Test.All:acmeTests&pageIndex=1 
    at org.sonar.wsclient.internal.HttpRequestFactory.execute(HttpRequestFactory.java:156) 
    at org.sonar.wsclient.internal.HttpRequestFactory.get(HttpRequestFactory.java:129) 
    at org.sonar.wsclient.issue.internal.DefaultIssueClient.find(DefaultIssueClient.java:49) 
    at org.sonar.ide.eclipse.wsclient.internal.SonarWSClientFacade.findIssues(SonarWSClientFacade.java:195) 
    ... 6 more 
Caused by: java.net.SocketTimeoutException: Read timed out 
    at java.net.SocketInputStream.socketRead0(Native Method) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    at sun.net.www.http.HttpClient.parseHTTPHeader(Unknown Source) 
    at sun.net.www.http.HttpClient.parseHTTP(Unknown Source) 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 
    at java.net.HttpURLConnection.getResponseCode(Unknown Source) 
    at org.sonar.wsclient.kevinsawicki.HttpRequest.code(HttpRequest.java:1481) 
    at org.sonar.wsclient.internal.HttpRequestFactory.isSuccess(HttpRequestFactory.java:161) 
    at org.sonar.wsclient.internal.HttpRequestFactory.execute(HttpRequestFactory.java:149) 
    ... 9 more 

この問題は、私たちがテストした任意のバージョンのEclipse(Indigo、Luna、Mars)でも存続します。唯一の回避策は、バージョン3.5でSonarQubeプラグインをインストールし、オプションを確認することでした。インクリメンタル解析の代わりにフルプレビューを実行してください。しかし、Eclipseプラグインのバージョン3.4のオプションをチェックすることは役に立ちません。

enter image description here

なぜあなただ​​けのプラグインをアップグレードしませんか?

私たちのEclipseプラグインを再び稼働環境にアップデートするだけで、Java 1.7が必要なバージョン3.5のアップデートが必要であることは明らかです。現時点では、私たちはまだ古い1.6を採用しており、現在の環境ではそれを簡単にアップグレードすることはできません。

インクリメンタル解析の代わりにフルプレビューを実行すると、この問題はまだプラグイン3.5に関係します。はチェックされていません。つまり、エラーは複数のEclipseバージョンと複数のプラグインバージョンで再現可能です。

SQ 4.5.5とeclipseプラグイン3.4を数ヶ月使用していたのですが、上記のタイムアウト動作の原因が何であるか分かりません。

  • Sonar Cubeサーバーを最新のバージョンに更新するのに役立ちますか?
  • データベースメンテナンスアクション(インデックスの再編成など)はここで役立ちますか?
  • 時間内に回答を送信できるようにサーバーを設定するにはどうすればよいですか?

更新:

下記の私の答えで述べたように、日常的にデータベースのインデックスの再構築は、最初に助けました。しかし、数日後、SonarQubeを使った局所ソナー解析を引き起こす指標を再構築した直後でさえも失敗するでしょう。

SonarQube 4.5.7へのアップデートは役に立ちませんでした。 基本的に、私たちは正方形に戻っています。

  • 私たちのソナープロジェクトは大きすぎますか?私たちは、> 500k LOCのソナープロジェクトでソフトウェア開発を追跡しています。
  • SonarQube 5.xへのアップグレードをお勧めしますか?

答えて

0

更新

再構築データベースのインデックスは、この問題を解決しませんでした。元の質問の更新を確認してください。我々は最終的に問題を突き止め

オリジナル回答

だから、それは断片化されたデータベース・テーブル・インデックスによって引き起こされました。インデックスを再構築した後、元の質問のStacktraceに含まれているURLをクエリするのにわずか3秒かかります。数分ではなく、

これは、ソナー解析が実行され、データがデータベースにインポートされるたびに発生します。これはセットアップで1日に1回発生しますので、今からインデックスをもう一度更新します。

これはeclipseプラグインを更新するよりも良い回避策ですが、私の意見でもこれは回避策に過ぎません。 SonarCube分析では、問題のリストが取得されるまでに数分かかる状態にサーバーを置くべきではありません。

誰かがこの問題の解決策を見つけた場合は、ぜひご連絡ください。

関連する問題