2
0
記事投稿キャンペーン 「2024年!初アウトプットをしよう」

サーバー移行後、GitLab接続が遅くなってwarningが出たときの対処法

Posted at

先に結論を述べるとgit config --global credential.https://(new hostname).provider gitlabを実行して解決した。
当初の原因の考察では、サーバー側に設定漏れがあるのではないかと考えていた。
しかし実際は、Gitクライアント側の設定追加が必要だった。

事象

オンプレミス上でホスティングしているGitLabを、別の物理サーバーへ移行した。
クライアント側では、リモートのURLを新サーバーに変更する作業のみ行った。

この状態でリモートリポジトリに接続可能だったため、移行は成功したと思いきや
プルやプッシュの際、サーバーに接続するまでに数秒かかり(遅くなり)、下記の警告が出力されるようになった。

warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.

調査

前出のwarningで見ろと言われているページを見に行くと
GCM(git credencial manager)のドキュメントに行き着いた。

GCMとは、gitの資格情報を管理するツールである。
GCMが働くことで、Gitクライアントからサーバへアクセス(pull,pushなど)する時に
username・password・MFAなどの認証を省略できている。
ドキュメントにはGCMのホストプロバイダを自動検出する機能について書かれていた。

ページを読み進めると最後のほうに、問題が起きている場合は
git config --globalで手動設定するように書かれていた。
ページをひととおり読んで、いまのgit configが間違っていそうなことが分かった。
現在の設定がどうなっているのかを確認してみた。

$ git config --global --list
...
credential.https://(old hostname).provider=generic
...

現在のconfigを確認したところ、新しいホストに対するproviderの設定が無かった。
ドキュメントにも書いてあったとおりcredential.https://(new hostname).providerを設定すればよさそうだと判断した。

解決方法

git configで設定する値はgenericでもよさそうだが、ドキュメントに倣ってgitlabを指定した。

$ git config --global credential.https://(new hostname).provider gitlab

この状態でプルを試して、冒頭のwarningが出現しないこと、それに伴いプルに時間がかからなくなったことを確認し、問題解決した。

また、調査中にGCMのdocs内にGitLab supportのページを発見した。
このページに載っているコマンドで、移行前のホストのcredencialに関する設定を削除した。

$ git config --global --unset-all credential.https://(old hostname)

このページでは「Using on another instance」として別のインスタンスを使う時の手順が丁寧に説明されていた。
移行の際は、最初からこのページを参照することをお勧めする。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0