正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Zoektのトラブルシューティング

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed
  • ステータス: ベータ

Zoektを使用しているときに、以下の問題が発生する可能性があります。予備的なデバッグ:

ネームスペースがインデックスされていません

設定を有効にすると、新しいネームスペースは自動的にインデックスされます。ネームスペースが自動的にインデックスされない場合は、Sidekiqログを調べて、ジョブが処理されているかどうかを確認します。Search::Zoekt::SchedulingWorkerは、ネームスペースのインデックス作成を担当します。

Railsコンソールセッションで、以下を確認できます:

  • Zoektが有効になっていないネームスペース:

    Namespace.group_namespaces.root_namespaces_without_zoekt_enabled_namespace
  • Zoektインデックスのステータス:

    Search::Zoekt::Index.all.pluck(:state, :namespace_id)

ネームスペースを手動でインデックス作成するには、設定アップを参照してください。

エラー: SilentModeBlockedError

完全一致コードの検索を実行しようとすると、SilentModeBlockedErrorが表示されることがあります。このイシューは、サイレントモードがGitLabインスタンスで有効になっている場合に発生します。

このイシューを解決するには、サイレントモードが無効になっていることを確認してください。

エラー: connections to all backends failing

application_json.logで、次のエラーが発生する可能性があります:

connections to all backends failing; last error: UNKNOWN: ipv4:1.2.3.4:5678: Trying to connect an http1.x server

このイシューを解決するには、プロキシを使用しているかどうかを確認してください。使用している場合は、GitLabサーバーのIPアドレスをno_proxyに設定します:

gitlab_rails['env'] = {
  "http_proxy" => "http://proxy.domain.com:1234",
  "https_proxy" => "http://proxy.domain.com:1234",
  "no_proxy" => ".domain.com,IP_OF_GITLAB_INSTANCE,127.0.0.1,localhost"
}

proxy.domain.com:1234は、プロキシインスタンスのドメインとポートです。IP_OF_GITLAB_INSTANCEは、GitLabインスタンスのパブリックIPアドレスを指します。

この情報を取得するには、ip aを実行して、次のいずれかを確認します:

  • 適切なネットワークインターフェースのIPアドレス
  • 使用しているロードバランサーのパブリックIPアドレス

Zoektノード接続を確認する

Zoektノードが適切に構成され、接続されていることを確認するには、Railsコンソールセッションで、以下を実行します:

  • 構成されているZoektノードの総数を確認します:

    Search::Zoekt::Node.count
  • オンラインのノード数を確認します:

    Search::Zoekt::Node.online.count

または、gitlab:zoekt:info Rakeタスクを使用することもできます。

オンラインノードの数が、構成されているノードの数より少ない場合、またはノードが構成されている場合にゼロである場合は、GitLabとZoektノードの間に接続の問題がある可能性があります。

エラー: TaskRequest responded with [401]

Zoekt Indexerログに、TaskRequest responded with [401]が表示されることがあります。このエラーは、Zoekt IndexerがGitLabでの認証に失敗していることを示しています。

このイシューを解決するには、gitlab-shell-secretが正しく構成され、GitLabインスタンスとZoekt Indexerの間で一致することを確認します。たとえば、次のコマンドの出力は、gitlab.rbgitlab-shell-secretと一致する必要があります:

kubectl get secret gitlab-shell-secret -o jsonpath='{.data.secret}' -n your_zoekt_namespace | base64 -d