2013-03-13 2 views
6

मैं Git के साथ किसी समस्या का सामना कर रहा हूँ जहाँ मैं निम्नलिखित संदेश मिल रहा है:क्यों Git धक्का पर असफल/"बहुत अधिक फ़ाइलें खुली" के साथ लाने करता

> git fetch 
error: cannot create pipe for ssh: Too many open files 
fatal: unable to fork 

सिस्टम प्रशासक मेरी फ़ाइल सीमा में वृद्धि हुई है , लेकिन इसने इस मुद्दे को सही नहीं किया है। इसके अतिरिक्त, मुझे vi के साथ नई फाइलें बनाने में कोई समस्या नहीं है।

git push origin test_this_broken_git error: cannot create pipe: Too many open files fatal: send-pack: unable to fork off sideband demultiplexer

किसी का जवाब कर सकते हैं वास्तव में क्यों यह हो रहा है:

जब एक नई शाखा पुश करने के लिए कोशिश कर रहा है, मैं एक ऐसी ही संदेश मिलता है? मैंने अपने गिट कॉन्फ़िगरेशन में हालिया बदलाव नहीं किए हैं और मैन्युअल रूप से सत्यापित किया है।

उत्तर

9

इसी तरह के दो त्रुटि संदेश नहीं है:

 
EMFILE: Too many open files 
ENFILE: Too many open files in system 

ऐसा लगता है कि आप EMFILE हो रही है, जिसका अर्थ है कि एक व्यक्ति की प्रक्रिया के लिए फ़ाइलों की संख्या पार की जा रही है। तो, जांच कर रहे हैं कि vi फ़ाइलों को खोल सकता है अप्रासंगिक है- vi अपनी स्वयं की, अलग फ़ाइल तालिका का उपयोग करेगा। साथ अपनी सीमा की जाँच करें:

 
$ ulimit -n 
1024 
अपने सिस्टम पर

तो, वहाँ एक भी प्रक्रिया में 1024 खुली फ़ाइलों की एक सीमा होती है। आपको अपने सिस्टम प्रशासक से पूछने की आवश्यकता नहीं है (कृपया संक्षिप्त नाम एसए का उपयोग न करें, यह बहुत अपारदर्शी है; यदि आपको संक्षेप में संक्षिप्त करना है, तो "sysadmin" का उपयोग करें) सीमा बढ़ाने के लिए।

आप यह जांचना चाहेंगे कि गिट को strace के तहत गिट चलाकर कौन सी फाइलें खुलती हैं।

यह गिट या लाइब्रेरी में एक बग हो सकता है, या हो सकता है कि आप किसी पुराने संस्करण का उपयोग कर रहे हों, या यह कुछ और विचित्र हो सकता है। strace पहले यह देखने के लिए कि कौन सी फाइलें खुलती हैं, और जांचें कि गिट उन फ़ाइलों को बंद कर देता है या नहीं। Hazok से

अद्यतन:

ऊपर सिफारिशों इस्तेमाल करने के बाद, यह पता चला है त्रुटि भी कई ढीली वस्तुओं के कारण किया गया था। बहुत सारी ढीली वस्तुएं थीं क्योंकि git gc अक्सर पर्याप्त नहीं चल रहा था।

+0

स्पष्टीकरण और सुझावों के लिए धन्यवाद। मैंने एसएएस से अनुरोध नहीं किया, वे अभी भी मूल कारण को समझने की कोशिश कर रहे हैं और यह बहुत लंबा रहा है इसलिए मैं देखना चाहता था कि स्टैक ओवरफ्लो पर गुरु क्या सुझाव देते हैं: डी मैंने स्ट्रेस की कोशिश की और यह एक टन डंप कर रहा है स्टेट, lstat, खुला, पढ़ना, पढ़ना, आदेशों को बंद करें जहां से मैं प्रत्येक आदेश से बाहर निकला, जहां से मैं आदेश से बाहर तोड़ दिया। – Hazok

+0

क्या आपको दिमाग होगा यदि मैंने अंतिम कारण और संकल्प प्रदान करने के लिए अपना उत्तर संपादित किया है? मैं आपको इस के लिए पूर्ण क्रेडिट देना चाहता हूं क्योंकि यह एक गिट मुद्दा था और चलने वाली स्ट्रेस ने एक टन की मदद की। – Hazok

+0

यह एक अच्छा विचार है, आगे बढ़ें और पोस्ट को संपादित करें। –

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