2011-08-08 15 views
9

से परिवर्तन प्राप्त करने पर टाइमआउट अपवाद को कैसे हल करें मैंने नेटवर्क पर किसी साझा फ़ोल्डर से गिटोलाइट चलाने वाले एसएसएच सर्वर पर एक गिट रिपोजिटरी ले जाया है। मैंने टीमसिटी के लिए एक सार्वजनिक/निजी कुंजी जोड़ दी है और उस पर वीसीएस रूट की ओर इशारा किया है। यह सब ठीक काम करता है टेस्ट कनेक्शन सफल है और मेरा निर्माण कॉन्फ़िगरेशन लंबित परिवर्तन दिखाता है।टीमसीटी एसएसएच गिट रिपॉजिटरी

हालांकि

, जब TeamCity उन लंबित परिवर्तन मैं निम्नलिखित त्रुटि मिलती है लाने के लिए प्रयास करता है:

'git fetch' command failed. 
exception: Timeout exception 

लॉगिंग मुझे लगता है कि यह 90 सेकंड के बाद का समय समाप्त हो वर्बोस पर स्विच किया - मैं सामान्य परिस्थितियों में उम्मीद करेंगे कि यह होगा इन परिवर्तनों को लाने के लिए कुछ सेकंड का मामला बनें।

चूंकि मैंने समस्या का निवारण करने का प्रयास करना शुरू कर दिया है, इसलिए मैंने अपनी वीसीएस रूट को "डिफ़ॉल्ट निजी कुंजी" में बदल दिया है और कॉन्फ़िगरेशन, id_rsa और known_hosts फ़ाइलों के साथ आवश्यक .ssh फ़ोल्डर जोड़ा है। मैंने फिंगरप्रिंट और तब पासवर्ड संदेशों को तब तक देखा जब तक कि मैं इन फ़ाइलों में आवश्यक सामग्री नहीं डालता, और अब मेरा सर्वर टाइमआउट अपवाद को फिर से देने के लिए वापस आता है जैसे कि जब मैं वीसीएस रूट में कुंजी निर्दिष्ट करता हूं।

यदि मैं कमांड लाइन से गिट चलाता हूं तो मैं किसी भी संकेत के बिना भंडार क्लोन करने में सक्षम हूं (जब मेरे पास .ssh फ़ोल्डर ऊपर जैसा स्थापित होता है)। यह एक अलग उपयोगकर्ता खाते से है क्योंकि टीसी डिफ़ॉल्ट सिस्टम खाते के तहत एक सेवा के रूप में चल रहा है, लेकिन मुझे नहीं लगता कि यह कारण है क्योंकि जैसा कि मैंने कहा था कि मैं देख सकता हूं कि टीसी ने उस के लिए .ssh फ़ोल्डर में बदलाव उठाए हैं लेखा।

क्या गलत हो सकता है?

उत्तर

2

आपने टीमसिटी सर्वर के लिए चाबियाँ सेट की हैं, लेकिन क्या आपने इसे एजेंट के लिए भी किया है? यह समझाएगा कि कॉन्फ़िगरेशन में परीक्षण कनेक्शन क्यों काम करता है, लेकिन जब एजेंट निष्पादित होता है तो यह काम नहीं करता है।

मुद्दा डिबग करने के लिए त्वरित तरीका:

VCS सेटिंग्स में, Automatically on server को VCS Checkout mode बदल सकते हैं और देखें कि क्या वह काम करता है?

अद्यतन:

आप TeamCity सर्वर पर लॉगइन और उपयोगकर्ता teamcity के रूप में अपना Git रेपो से एक manula git clone दिखा सकता हूं? इस तरह आप इसे देख सकते हैं और भरोसेमंद मेजबान आदि के रूप में भी सहेज सकते हैं

+0

मैंने सोचा था कि (डिफ़ॉल्ट रूप से) सर्वर चेकआउट किया था और भेजा निर्माण एजेंटों के लिए स्रोत। क्या यह सही नहीं है? – GraemeF

+0

@GraemeF - क्या आप 'वीसीएस चेकआउट मोड' को सत्यापित कर सकते हैं? मेरा अद्यतन उत्तर देखें। – manojlds

+0

यह पहले से ही "सर्वर पर स्वचालित रूप से" पर सेट किया गया था जो डिफ़ॉल्ट है। – GraemeF

0

मैंने टीम शहर का उपयोग नहीं किया है, लेकिन मैंने निरंतर एकीकरण के लिए गो (विचारधाराओं से) का उपयोग किया है, जहां मुझे इसी तरह की समस्या का सामना करना पड़ा।

क्या आप उपयोगकर्ता के लिए पर्यावरण चर-पथ की जांच कर सकते हैं जो बिल्ड एजेंट पर कार्य चला रहा है। यदि आप msysgit का उपयोग कर रहे हैं, तो msysgit से bin और cmd फ़ोल्डर दोनों पथ में होना चाहिए।

0

ऐसा तब होता है जब आपके पास विशाल रिपो होता है। आप अगले recommendation का पालन कर सकते हैं:

के लिए OSX या Linux उपयोगकर्ता मशीन में टाइमआउट बढ़ाएँ:

  1. बनाएं ~ /।ssh/कॉन्फ़िग फ़ाइल (अगर यह अभी तक मौजूद नहीं है)
  2. SSH ServerAliveInterval ServerAliveCountMax सेटिंग्स फ़ाइल में जोड़ें, जैसे:

Host *
 ServerAliveInterval 86400
 ServerAliveCountMax 4

संबंधित मुद्दे