トラブルシューティング
- プラン: Free、Premium、Ultimate 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLabに移行する際、次の問題が発生する可能性があります。
インポートされたリポジトリにブランチがない
インポートされたリポジトリにソースリポジトリのすべてのブランチが含まれていない場合:
- 環境変数
IMPORT_DEBUG=trueを設定します。 - 別のグループ、サブグループ、またはプロジェクト名を使用してインポートを再試行します。
- 一部のブランチがまだ見つからない場合は、
importer.log(たとえば、jqを使用)を調べます。
例外: Error Importing repository - No such file or directory @ rb_sysopen - (filename)
このエラーは、リポジトリのソースコードのtar.gzファイルダウンロードをインポートしようとすると発生します。
インポートには、単なるリポジトリのダウンロードファイルではなく、GitLabエクスポートファイルが必要です。
長期化または失敗したインポートを診断する
ファイルベースのインポート(特にS3を使用するインポート)で長期の遅延やエラーが発生している場合は、次の方法で問題の根本原因を特定できる可能性があります。
インポート状態を確認する
インポート状態を確認します。
- GitLab APIを使用して、影響を受けるプロジェクトのインポート状態を確認します。
- 特に
status値とimport_error値について、エラーメッセージまたは状態情報に対する応答をレビューします。 - 応答の
correlation_idに注意してください。これは、さらなるトラブルシューティングに不可欠です。
ログをレビューする
関連情報についてログを検索します。
GitLab Self-Managedインスタンスの場合:
- Sidekiqログと
exceptions_jsonログを確認します。 RepositoryImportWorkerに関連するエントリと、インポートステータスの確認からの相関IDを検索します。job_status、interrupted_count、exceptionなどのフィールドを探します。
GitLab.comの場合(GitLabチームメンバーのみ):
Kibanaを使用して、次のようなクエリでSidekiqログを検索します。
ターゲット:
pubsub-sidekiq-inf-gprd*json.class: "RepositoryImportWorker" AND json.correlation_id.keyword: "<CORRELATION_ID>"または
json.class: "RepositoryImportWorker" AND json.meta.project: "<project.full_path>"GitLab Self-Managedインスタンスについて言及されているのと同じフィールドを探します。
共通のイシューを特定する
レビューログで収集した情報を、以下の一般的な問題と照らし合わせて確認します:
- 中断されたジョブ: 失敗を示す高い
interrupted_countまたはjob_statusが表示された場合、インポートジョブが複数回中断され、デッドキューに配置された可能性があります。 - S3接続: S3を使用するインポートの場合は、ログでS3関連のエラーメッセージを確認してください。
- 大規模リポジトリ: リポジトリが非常に大きい場合、インポートがタイムアウトになる可能性があります。この場合は、直接転送の使用を検討してください。
サポートナレッジベース
問題が引き続き発生する場合は、GitLabサポートナレッジベースを参照してください。