VM(最新のarchlinuxを実行)でgit 1.8.4.2を使用しています。マシンAと呼びましょう。リモートオリジンはローカルネットワーク上にあり、認証を使用してhttpsを介して機能します。問題なくプッシュできますが、フェッチまたはクローンは通常ハングアップします。
ネットワーク(マシンB)上に別のVM(Ubuntu LTS 12.04を実行)があり、git 1.7.9.5を実行しており、問題なくフェッチできます。
たまたまマシン A からマシン B に ssh できましたが、リモートのオリジンにはできませんでした。そのため、現在の回避策は、一時リポジトリでリモートのオリジンからマシン B にフェッチし、ssh を介して git を使用してフェッチすることです。 B to A. しかし、それは明らかに満足のいくものではありません。
GIT_CURL_VERBOSE=1 (変更された IP アドレスとホスト名) を使用した出力を次に示します。
== マシン A (試行の失敗):
$ GIT_CURL_VERBOSE=1 git fetch
* Couldn't find host remote.localdomain in the .netrc file; using defaults
* Adding handle: conn: 0x1d60460
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1d60460) send_pipe: 1, recv_pipe: 0
* About to connect() to remote.localdomain port 443 (#0)
* Trying XX.XX.XXX.XX...
* Connected to remote.localdomain (XX.XX.XXX.XX) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: none
* SSL connection using DHE-RSA-AES256-GCM-SHA384
* Server certificate:
* subject: C=XX; ST=XXX; L=Xxxxxxx; O=Xxxxx; OU=Xxxxx; CN=remote.localdomain; name=remote; emailAddress=someone@somewhere.com
* start date: 2013-01-10 14:30:42 GMT
* expire date: 2023-01-08 14:30:42 GMT
* issuer: C=XX; ST=XXX; L=Xxxxxxx; O=Xxxxx; OU=Xxxxx; CN=dev.localdomain; name=Pince; emailAddress=someone@somewhere.com
* SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
> GET /repository/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.8.4.2
Host: remote.localdomain
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Date: Fri, 08 Nov 2013 09:21:45 GMT
* Server Apache is not blacklisted
< Server: Apache
< WWW-Authenticate: Basic realm="LDAP Company.org"
< Vary: Accept-Encoding
< Content-Encoding: gzip
< Content-Length: 290
< Content-Type: text/html; charset=iso-8859-1
<
* Connection #0 to host remote.localdomain left intact
* Couldn't find host remote.localdomain in the .netrc file; using defaults
* Found bundle for host remote.localdomain: 0x1d60e20
* Re-using existing connection! (#0) with host remote.localdomain
* Connected to remote.localdomain (XX.XX.XXX.XX) port 443 (#0)
* Adding handle: conn: 0x1d60460
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1d60460) send_pipe: 1, recv_pipe: 0
> GET /repository/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.8.4.2
Host: remote.localdomain
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Date: Fri, 08 Nov 2013 09:21:45 GMT
* Server Apache is not blacklisted
< Server: Apache
< WWW-Authenticate: Basic realm="LDAP Company.org"
< Vary: Accept-Encoding
< Content-Encoding: gzip
< Content-Length: 290
< Content-Type: text/html; charset=iso-8859-1
<
* Ignoring the response-body
* Connection #0 to host remote.localdomain left intact
* Issue another request to this URL: 'https://remote.localdomain/repository/info/refs?service=git-upload-pack'
* Couldn't find host remote.localdomain in the .netrc file; using defaults
* Found bundle for host remote.localdomain: 0x1d60e20
* Re-using existing connection! (#0) with host remote.localdomain
* Connected to remote.localdomain (XX.XX.XXX.XX) port 443 (#0)
* Adding handle: conn: 0x1d60460
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x1d60460) send_pipe: 1, recv_pipe: 0
* Server auth using Basic with user 'user'
> GET /repository/info/refs?service=git-upload-pack HTTP/1.1
Authorization: Basic VDAxMzY4NDU6cGFyaXM3MjI=
User-Agent: git/1.8.4.2
Host: remote.localdomain
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 200 OK
< Date: Fri, 08 Nov 2013 09:21:45 GMT
* Server Apache is not blacklisted
< Server: Apache
< Expires: Fri, 01 Jan 1980 00:00:00 GMT
< Pragma: no-cache
< Cache-Control: no-cache, max-age=0, must-revalidate
< Transfer-Encoding: chunked
< Content-Type: application/x-git-upload-pack-advertisement
<
(その後、ここで立ち往生します)
== マシン B (成功した試行) :
$ GIT_CURL_VERBOSE=1 git fetch
* Couldn't find host remote.localdomain in the .netrc file; using defaults
* About to connect() to remote.localdomain port 443 (#0)
* Trying XX.XX.XXX.XX... * Connected to remote.localdomain (XX.XX.XXX.XX) port 443 (#0)
* found 153 certificates in /etc/ssl/certs/ca-certificates.crt
* server certificate verification SKIPPED
* compression: NULL
* cipher: AES-128-CBC
* MAC: SHA1
> GET /repository/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.7.9.5
Host: remote.localdomain
Accept: */*
Pragma: no-cache
* The requested URL returned error: 401
* Closing connection #0
* Couldn't find host remote.localdomain in the .netrc file; using defaults
* About to connect() to remote.localdomain port 443 (#0)
* Trying XX.XX.XXX.XX... * Connected to remote.localdomain (XX.XX.XXX.XX) port 443 (#0)
* found 153 certificates in /etc/ssl/certs/ca-certificates.crt
* SSL re-using session ID
* server certificate verification SKIPPED
* compression: NULL
* cipher: AES-128-CBC
* MAC: SHA1
> GET /repository/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/1.7.9.5
Host: remote.localdomain
Accept: */*
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Date: Fri, 08 Nov 2013 09:33:06 GMT
< Server: Apache
< WWW-Authenticate: Basic realm="LDAP Company.org"
< Vary: Accept-Encoding
< Content-Length: 401
< Content-Type: text/html; charset=iso-8859-1
<
* Ignoring the response-body
* Connection #0 to host remote.localdomain left intact
* Issue another request to this URL: 'https://remote.localdomain/repository/info/refs?service=git-upload-pack'
* Couldn't find host remote.localdomain in the .netrc file; using defaults
* Re-using existing connection! (#0) with host remote.localdomain
* Connected to remote.localdomain (XX.XX.XXX.XX) port 443 (#0)
* Server auth using Basic with user 'user'
> GET /repository/info/refs?service=git-upload-pack HTTP/1.1
Authorization: Basic VDAxMzY4NDU6cGFyaXM3MjI=
User-Agent: git/1.7.9.5
Host: remote.localdomain
Accept: */*
Pragma: no-cache
< HTTP/1.1 200 OK
< Date: Fri, 08 Nov 2013 09:33:06 GMT
< Server: Apache
< Expires: Fri, 01 Jan 1980 00:00:00 GMT
< Pragma: no-cache
< Cache-Control: no-cache, max-age=0, must-revalidate
< Transfer-Encoding: chunked
< Content-Type: application/x-git-upload-pack-advertisement
<
* Connection #0 to host remote.localdomain left intact
(その後、コマンドはエラーなしで単純に戻ります)。
誰が問題が何であるか知っていますか?
編集: さらなるテストでは、マシン A で v1.7.9.5 をコンパイルしてもまだ機能しないことが示されています (v1.8.4.2 とまったく同じ動作)。
つまり、これは Archlinux 固有のものか、git の依存関係の 1 つの別のバージョンが原因です... curl と openssl が最有力候補だと思います。
コマンドを数回実行した後、新しいエラーが発生しました:
fatal: unable to access 'https://remote.localdomain/repository/': transfer closed with outstanding read data remaining
私はこのエラーを調査しています...