मैं कुछ बदलावों को धक्का देने की कोशिश कर रहा हूं, लेकिन git push
लटकता है। जब मैं git push
चलाता हूं, तो मुझे कोई आउटपुट दिखाई नहीं देता है, और कुछ भी नहीं हो रहा है। top
में कोई गतिविधि नहीं है, और कुछ भी होने का कोई संकेत नहीं है।गिट पुश (डंब) https पर है, HTTP/1.1 100 जारी रखें
मैं गिट होस्टिंग सेवा को नियंत्रित नहीं करता हूं। मैं एक HTTPS यूआरएल का उपयोग कर रहा हूँ। मेरा मानना है कि होस्टिंग सेवा गूंगा HTTPS का उपयोग कर रही है, न कि गिट के "स्मार्ट-HTTP" प्रोटोकॉल। क्लाइंट साइड पर, मैं मैक ओएस एक्स का उपयोग करता हूं, और मुझे होमब्री के माध्यम से गिट 1.8.1.1 इंस्टॉल किया गया है (लेकिन एक्सकोड के कमांड लाइन टूल में शामिल गिट के संस्करण का उपयोग करने से कोई फर्क नहीं पड़ता)। लॉग आउट करना और वापस लॉग इन करना प्रतीत नहीं होता है। मैं एक अलग लिनक्स बॉक्स से इस होस्टिंग सेवा/भंडार को खींच और धक्का दे सकता हूं।
नीचे कुछ डिबगिंग आउटपुट कि git push
फांसी से पता चलता बाद ग्राहक एक PROPFIND अनुरोध जारी करता है, सर्वर से एक HTTP/1.1 100 Continue
प्रतिक्रिया मिलती है, और फिर कुछ नहीं होता है: यह सिर्फ अटक है।
मैं यह कैसे काम कर सकता हूं? क्या कोई समस्या निवारण चरण है जिसे मैं कोशिश कर सकता हूं?
$ GIT_CURL_VERBOSE=1 git push -v
Pushing to https://secure2.svnrepository.com/redacted/redacted/
* About to connect() to secure2.svnrepository.com port 443 (#0)
* Trying 67.228.18.88...
* Connected to secure2.svnrepository.com (67.228.18.88) port 443 (#0)
* Connected to secure2.svnrepository.com (67.228.18.88) port 443 (#0)
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
* subject: C=US; OU=Domain Control Validated; CN=secure2.svnrepository.com
* start date: 2012-01-09 16:16:59 GMT
* expire date: 2015-02-09 02:52:45 GMT
* subjectAltName: secure2.svnrepository.com matched
* issuer: O=AlphaSSL; CN=AlphaSSL CA - G2
* SSL certificate verify ok.
> GET /redacted/redacted/info/refs?service=git-receive-pack HTTP/1.1
User-Agent: git/1.8.1.1
Host: secure2.svnrepository.com
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 401 Authorization Required
< Date: Wed, 23 Jan 2013 03:29:36 GMT
< Server: Apache/2.2.3 (Red Hat)
< WWW-Authenticate: Basic realm="redacted"
< Content-Length: 493
< Content-Type: text/html; charset=iso-8859-1
<
* Ignoring the response-body
* Connection #0 to host secure2.svnrepository.com left intact
* Issue another request to this URL: 'https://secure2.svnrepository.com/redacted/redacted/info/refs?service=git-receive-pack'
* Re-using existing connection! (#0) with host (nil)
* Connected to (nil) (67.228.18.88) port 443 (#0)
* Server auth using Basic with user 'redacted'
> GET /redacted/redacted/info/refs?service=git-receive-pack HTTP/1.1
Authorization: Basic redacted=
User-Agent: git/1.8.1.1
Host: secure2.svnrepository.com
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 200 OK
< Date: Wed, 23 Jan 2013 03:29:36 GMT
< Server: Apache/2.2.3 (Red Hat)
< Last-Modified: Wed, 23 Jan 2013 03:00:40 GMT
< ETag: "143802e-3b-e6374600"
< Accept-Ranges: bytes
< Content-Length: 59
< Content-Type: text/plain; charset=UTF-8
<
* Connection #0 to host (nil) left intact
* Re-using existing connection! (#0) with host (nil)
* Connected to (nil) (67.228.18.88) port 443 (#0)
* Server auth using Basic with user 'redacted'
> GET /redacted/redacted/HEAD HTTP/1.1
Authorization: Basic redacted=
User-Agent: git/1.8.1.1
Host: secure2.svnrepository.com
Accept: */*
Accept-Encoding: gzip
Pragma: no-cache
< HTTP/1.1 200 OK
< Date: Wed, 23 Jan 2013 03:29:36 GMT
< Server: Apache/2.2.3 (Red Hat)
< Last-Modified: Wed, 16 Jan 2013 21:05:31 GMT
< ETag: "d1802c-17-3d0d7cc0"
< Accept-Ranges: bytes
< Content-Length: 23
< Content-Type: text/plain; charset=UTF-8
<
* Connection #0 to host (nil) left intact
* About to connect() to secure2.svnrepository.com port 443 (#0)
* Trying 67.228.18.88...
* Connected to secure2.svnrepository.com (67.228.18.88) port 443 (#0)
* Connected to secure2.svnrepository.com (67.228.18.88) port 443 (#0)
* SSL connection using DHE-RSA-AES256-SHA
* Server certificate:
* subject: C=US; OU=Domain Control Validated; CN=secure2.svnrepository.com
* start date: 2012-01-09 16:16:59 GMT
* expire date: 2015-02-09 02:52:45 GMT
* subjectAltName: secure2.svnrepository.com matched
* issuer: O=AlphaSSL; CN=AlphaSSL CA - G2
* SSL certificate verify ok.
> PROPFIND /redacted/redacted/ HTTP/1.1
User-Agent: git/1.8.1.1
Host: secure2.svnrepository.com
Accept: */*
Depth: 0
Content-Type: text/xml
Content-Length: 181
Expect: 100-continue
< HTTP/1.1 100 Continue
* We are completely uploaded and fine
< HTTP/1.1 401 Authorization Required
< Date: Wed, 23 Jan 2013 03:29:37 GMT
< Server: Apache/2.2.3 (Red Hat)
< WWW-Authenticate: Basic realm="redacted"
< Content-Length: 493
< Content-Type: text/html; charset=iso-8859-1
* the ioctl callback returned 0
<
* Ignoring the response-body
* Connection #0 to host secure2.svnrepository.com left intact
* Issue another request to this URL: 'https://secure2.svnrepository.com/redacted/redacted/'
* Re-using existing connection! (#0) with host (nil)
* Connected to (nil) (67.228.18.88) port 443 (#0)
* Server auth using Basic with user 'redacted'
> PROPFIND /redacted/redacted/ HTTP/1.1
Authorization: Basic redacted=
User-Agent: git/1.8.1.1
Host: secure2.svnrepository.com
Accept: */*
Depth: 0
Content-Type: text/xml
Content-Length: 181
Expect: 100-continue
< HTTP/1.1 100 Continue
मैं अपने मैक ओएस एक्स मशीन पर strace
की जरूरत नहीं है, और मैं समझ नहीं dtruss
उपयोग करने के लिए कैसे क्या प्रणाली कॉल उस पर व्यतीत कर रहा है देखने के लिए क्योंकि dtruss
मुझे आवश्यकता है जड़ होने के लिए, और उसके बाद गिट पुश अलग-अलग काम करेगा।
अद्यतन: मैंने इसे लिनक्स मशीन पर 1.8.1.4 के साथ और स्ट्रेस के साथ पुन: उत्पन्न किया है। रनिंग strace निम्नलिखित की तरह कुछ पता चलता इससे पहले कि यह लटकी हुई है:
sendto(4, <redacted>..., 314, 0, NULL, 0) = 314
recvfrom(4, "\27\3\1\0000", 5, 0, NULL, NULL) = 5
recvfrom(4, "E\202\271\21\236p\200\346\374\3641\355\t\275\rLi\202T)\326\271l/\351\f\357\2769Jb\22"..., 48, 0, NULL, NULL) = 48
select(5, [4], [4], [], {0, 729000}) = 1 (out [4], left {0, 728997})
poll([{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=4, events=POLLOUT|POLLWRNORM}], 2, 0) = 1 ([{fd=4, revents=POLLOUT|POLLWRNORM}])
select(5, [4], [], [], {0, 729000}) = 0 (Timeout)
poll([{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 1, 0) = 0 (Timeout)
...last 2 lines repeat infinitely...
तो यह सर्वर से कुछ प्राप्त करने की उम्मीद फांसी जा रहा है।
इसके अलावा, मैंने पुराने लिनक्स बॉक्स पर गिट 1.7.4.4 पर GIT_CURL_VERBOSE=1 git push -v
के साथ एक समान ट्रेस की कोशिश की, और यह उसी उपसर्ग के साथ शुरू होता है और फिर वहां से जारी रहता है।
$ grep '^> [A-Z]' git-1.8.1.1-trace.stderr
> GET /redacted/redacted/info/refs?service=git-receive-pack HTTP/1.1
> GET /redacted/redacted/info/refs?service=git-receive-pack HTTP/1.1
> GET /redacted/redacted/HEAD HTTP/1.1
> PROPFIND /redacted/redacted/ HTTP/1.1
> PROPFIND /redacted/redacted/ HTTP/1.1
पुराने मशीन पर बड़े Git, जहां यह सब काम कर रहा है के साथ: नए Git के साथ टूटी हुई मशीन पर
$ grep '^> [A-Z]' git-1.7.4.4-trace.stderr
> GET /g_wagner/c79-s13/info/refs?service=git-receive-pack HTTP/1.1
> GET /g_wagner/c79-s13/info/refs?service=git-receive-pack HTTP/1.1
> GET /g_wagner/c79-s13/HEAD HTTP/1.1
> PROPFIND /g_wagner/c79-s13/ HTTP/1.1
> PROPFIND /g_wagner/c79-s13/ HTTP/1.1
> HEAD /g_wagner/c79-s13/info/refs HTTP/1.1
> HEAD /g_wagner/c79-s13/objects/info/packs HTTP/1.1
> MKCOL /g_wagner/c79-s13/info/ HTTP/1.1
> LOCK /g_wagner/c79-s13/info/refs HTTP/1.1
> GET /g_wagner/c79-s13/objects/info/packs HTTP/1.1
...
> UNLOCK /g_wagner/c79-s13/info/refs HTTP/1.1
दोनों मशीनों पर पूरा पता लगाने को देखते हुए, मैं नहीं कर सकता समस्याग्रस्त PROPFIND अनुरोध (दूसरा PROPFIND) में क्या भेजा गया है में कोई अंतर देखें: User-Agent:
शीर्षलेख को छोड़कर दोनों अनुरोध समान दिखते हैं।
'
cjc343
धन्यवाद, @ cjc343। आगे की समस्या निवारण के तरीके पर कोई सुझाव? मैं प्रमाणीकरण के लिए '~/.netrc' का उपयोग कर रहा हूं, और मैंने पुष्टि की है कि मेरा' ~/.netrc' किसी अन्य (लिनक्स) मशीन पर इसके मूल्य के समान है जहां मुझे कोई समस्या नहीं है। इसके अलावा मैं इस मशीन से सफलतापूर्वक खींचने में सक्षम हूं, जिसके लिए प्रमाणीकरण प्रमाण-पत्रों की भी आवश्यकता होगी - इसलिए यह सब बहुत परेशान है। –
यह निश्चित रूप से अजीब है ... दुर्भाग्य से मैं http/s पर गिट से बहुत परिचित नहीं हूं क्योंकि मैंने हमेशा प्रमाणीकरण के लिए एसएसएच का उपयोग किया है। जब तक कि पुल अनुमतियों को गलती से नहीं छोड़ा जाता है, तब तक यह कोई समझ नहीं आता है कि आप धक्का नहीं दे सकते हैं, और अधिकांश संभावनाओं को फेंक देते हैं, जैसे '.netrc 'के लिए अनुमतियां खुली हैं या रिमोट में शामिल उपयोगकर्ता नाम (जो मुझे लगता है कि दिखाएगा अगर यह मामला था) ऊपर, खिड़की से बाहर। यदि आप एक रिमोट जोड़ते हैं जिसमें उपयोगकर्ता नाम शामिल है, तो क्या आपको दबाए जाने पर गिट आपको पासवर्ड के लिए संकेत देता है (इसे चाहिए)? उम्मीद है कि किसी और के पास गलत क्या हो रहा है इसका बेहतर विचार है ... – cjc343