2

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

私はこのエラーを調査しています...

4

0 に答える 0