プロジェクトのトラブルシューティングとエクスポート
インポートまたはエクスポートで問題が発生した場合は、Rakeタスクを使用してデバッグモードを有効にします:
# Import
IMPORT_DEBUG=true gitlab-rake "gitlab:import_export:import[root, group/subgroup, testingprojectimport, /path/to/file_to_import.tar.gz]"
# Export
EXPORT_DEBUG=true gitlab-rake "gitlab:import_export:export[root, group/subgroup, projectnametoexport, /tmp/export_file.tar.gz]"次に、特定のエラーメッセージの詳細を確認します。
Exception: undefined method 'name' for nil:NilClass
usernameが有効ではありません。
Exception: undefined method 'full_path' for nil:NilClass
namespace_pathが存在しません。たとえば、グループまたはサブグループのいずれかがタイプミスであるか、見つからないか、パスにプロジェクト名が指定されています。
このタスクはプロジェクトのみを作成します。新しいグループまたはサブグループにインポートする場合は、最初に作成します。
Exception: No such file or directory @ rb_sysopen - (filename)
archive_pathで指定されたプロジェクトエクスポートファイルが見つかりません。
Exception: Permission denied @ rb_sysopen - (filename)
指定されたプロジェクトエクスポートファイルに、gitユーザーがアクセスできません。
この問題を解決するには:
- ファイルオーナーを
git:gitに設定します。 - ファイルの権限を
0400に変更します。 - ファイルをパブリックフォルダー(
/tmp/など)に移動します。
Name can contain only letters, digits, emoji ...
Name can contain only letters, digits, emoji, '_', '.', '+', dashes, or spaces. It must start with a letter,
digit, emoji, or '_', and Path can contain only letters, digits, '_', '-', or '.'. It cannot start
with '-', end in '.git', or end in '.atom'.project_pathで指定されたプロジェクト名は、指定された理由のいずれかでは無効です。
project_pathにはプロジェクト名のみを入力してください。たとえば、サブグループのパスを指定すると、プロジェクト名に/が有効な文字ではないため、このエラーが発生します。
Name has already been taken and Path has already been taken
その名前のプロジェクトはすでに存在します。
Exception: Error importing repository into (namespace) - No space left on device
ディスクの容量が不足しているため、インポートを完了できません。
インポート中、tarballは構成済みのshared_pathディレクトリにキャッシュされます。ディスクに、キャッシュされたtarballと展開されたプロジェクトファイルの両方を格納するのに十分な空き容量があることを確認します。
インポートがTotal number of not imported relations: XXメッセージで成功しました
Total number of not imported relations: XXメッセージが表示され、インポート中にイシューが作成されない場合は、exceptions_json.logを確認してください。N is out of range for ActiveModel::Type::Integer with limit 4 bytesのようなエラーが表示されることがあります。ここで、Nは、4バイトの整数制限を超える整数です。その場合は、イシューのrelative_positionフィールドの再分散で問題が発生している可能性があります。
# Check the current maximum value of relative_position
Issue.where(project_id: Project.find(ID).root_namespace.all_projects).maximum(:relative_position)
# Run the rebalancing process and check if the maximum value of relative_position has changed
Issues::RelativePositionRebalancingService.new(Project.find(ID).root_namespace.all_projects).execute
Issue.where(project_id: Project.find(ID).root_namespace.all_projects).maximum(:relative_position)インポートの試行を繰り返し、イシューが正常にインポートされるかどうかを確認します。
インポート時にGitaly呼び出しエラーが発生しました
大規模なプロジェクトを開発環境にインポートしようとすると、Gitalyが呼び出しまたは起動が多すぎるというエラーをスローする可能性があります。例:
Error importing repository into qa-perf-testing/gitlabhq - GitalyClient#call called 31 times from single request. Potential n+1?このエラーは、開発環境のn+1呼び出し制限が原因です。このエラーを解決するには、GITALY_DISABLE_REQUEST_LIMITS=1を環境変数として設定します。次に、開発環境を再起動して、もう一度インポートします。