2012-06-07 20 views
11

जब मैं निम्नलिखित स्टैक ट्रेस प्राप्त एक दूरस्थ सर्वर पर एक कपड़ा कार्य चल रहा:फैब्रिक फेंक क्यों देता है 'TypeError: तर्क एक int होना चाहिए, या एक fileno() विधि' होना चाहिए?

[x.x.x.x] run: git fetch && git reset --hard origin/develop 
Exception in thread Thread-2: 
Traceback (most recent call last): 
    File "/usr/lib/python2.6/threading.py", line 532, in __bootstrap_inner 
    self.run() 
    File "/var/lib/jenkins/jobs/deploy/workspace/.pyenv/lib/python2.6/site-packages/ssh/agent.py", line 115, in run 
    self._communicate() 
    File "/var/lib/jenkins/jobs/deploy/workspace/.pyenv/lib/python2.6/site-packages/ssh/agent.py", line 125, in _communicate 
    events = select([self._agent._conn, self.__inr], [], [], 0.5) 
TypeError: argument must be an int, or have a fileno() method. 

तथ्य यह है कि कपड़ा कार्य ssh में उठाया जाता है कि और एक Git लाने प्रदर्शन करने के लिए कोशिश कर रहा है अपवाद/एजेंट .py मुझे लगता है कि एसएसएच प्रमाणीकरण के साथ कुछ गलत है।

वही उपयोगकर्ता फैब्रिक के बाहर चला सकता है, और यह कार्य मेरे लैपटॉप पर ठीक चलता है।

यहां क्या हो रहा है? मैं इस समस्या को कैसे हल कर सकता हूं?

उत्तर

17

An issue फैब्रिक के मुद्दे ट्रैकर पर उठाए गए उल्लेखों का उल्लेख है कि होस्ट पर एसएसएच एजेंट चलने से त्रुटि उत्पन्न हो सकती है।

मैं एक ssh-एजेंट शुरू करने और उपयोगकर्ता की कुंजी जोड़कर समस्या हल:

$> eval `ssh-agent` 
$> ssh-add ~/.ssh/id_rsa 

सफलता!

0
ऑटो शुरू ssh-एजेंट जब आप पहली बार लॉगिन, आपका ~/.bashrc को यह जोड़ने के लिए

:

if [ ! -S ~/.ssh/ssh_auth_sock ]; then 
    eval `ssh-agent` 
    ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock 
    ssh-add 
fi 
export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock 
0

पायथन/Django के साथ कपड़ा का उपयोग करते समय जब मैं हाथ से कार्य निष्पादित करने के लिए कोशिश कर रहा था कि मैं इस त्रुटि का सामना किया ./manage.py shell_plus के भीतर।

यह पता चला है (मेरे लिए) कि त्रुटि इस तथ्य के कारण हुई थी कि मेरा shell_plus ipython के बजाय bpython का उपयोग करने के लिए स्थापित किया गया था।

जब मैं ./manage.py shell_plus --ipython चलाता था, तो सब कुछ पूरी तरह से काम करता था।

मुझे एहसास है कि यह शायद आपकी समस्या का सीधा जवाब नहीं था, लेकिन मुझे लगता है कि मैं किसी भी अन्य व्यक्ति के लिए यहां एक नोट छोड़ सकता हूं जो मैंने किया था।

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