Unable to connect to Bitbucket Server
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
症状
The following appears when trying to clone the repository in Bitbucket Server:
fatal: http://user@example.com:7990/scm/PROJECT/repo.git/info/refs not valid: is this a git repository?
診断
Certain combinations of git and libcurl don't cope with the response body Bitbucket Server used to return up to version 2.0.3.
GIT Version | Curl version | Works? |
---|---|---|
<= 1.7.12.2 | 7.19.7 | |
1.7.12.3 | 7.19.7 | |
1.8.0.2 | 7.19.7 | |
1.7.12.3 | 7.28.1 | |
1.8.0.2 | 7.28.1 |
This seems to particularly affect CentOS which ships with somewhat old versions of libcurl. E.g. CentOS 6.3 with curl-devel-7.19.7; CentOS 5.8 with curl-devel-7.15.5.
Workaround: Preferred: upgrade to Bitbucket Server 2.0.3 or 2.1 or higher. If that isn't possible, please use a version of git that is known to work or compile git against a more recent version of libcurl.
Libcurl:
curl -OL http://curl.haxx.se/download/curl-7.28.1.tar.gz
tar xfz curl-7.28.1.tar.gz
cd curl-7.28.1
./configure --enable-http --prefix=/opt/curl-7.28.1
make
sudo make install
git:
make configure
./configure --prefix=/opt/git-1.8.0.2 --with-curl=/opt/curl-7.28.1
make
sudo make install
原因
This is a combination of behaviour in Bitbucket Server BSERV-2966 - Shouldn't supply a response body to Git clients when returning 401 response with certain combinations of git and curl.
回避策
Use Git Client version 1.7.12.2 or lower to connect to Bitbucket Server.
ソリューション
Upgrade to Bitbucket Server 2.0.3+ that has fixed the bug.