Почему Fabric отображает сообщение об отключении от сервера почти 2 минуты? - PullRequest
5 голосов
/ 21 апреля 2010

Fabric отображает Disconnecting from username@server... done. в течение почти 2 минут перед отображением новой командной строки всякий раз, когда я запускаю команду fab.

Эта проблема возникает при использовании команд Fabric, выданных как внутреннему серверу, так и облачному серверу Rackspace. Ниже я включил auth.log с сервера и ничего не увидел в журналах на моем MacBook.

Есть мысли о том, в чем проблема?

SSH auth.log сервера с LogLevel VERBOSE

Apr 21 13:30:52 qsandbox01 sshd[19503]: Accepted password for mrankin from 10.10.100.106 port 52854 ssh2
Apr 21 13:30:52 qsandbox01 sshd[19503]: pam_unix(sshd:session): session opened for user mrankin by (uid=0)
Apr 21 13:30:52 qsandbox01 sudo:  mrankin : TTY=unknown ; PWD=/home/mrankin ; USER=root ; COMMAND=/bin/bash -l -c apache2ctl graceful
Apr 21 13:30:53 qsandbox01 sshd[19503]: pam_unix(sshd:session): session closed for user mrankin

Конфигурация сервера

  • ОС: Ubuntu 9.10 и Ubuntu 6.10 (протестировано 4 сервера с этими ОС)
  • OpenSSH: версия пакета Ubuntu 1.5.1p1-6ubuntu2

Конфигурация клиента

  • ОС: Mac OS X 10.6.3
  • Ткань вер. 0,9
  • Vritualenv ver 1.4.7
  • pip ver 0.7

Simple fabfile.py Используется для тестирования

Проблема сохраняется, даже когда я просто запускаю fab -H server_ip host_type со следующим файлом.

from fabric.api import run

def host_type():
    run('uname -s')

Мысли о причине проблемы

Я не уверен, как долго эта проблема сохраняется, но ниже приведены некоторые вещи, которые изменились с тех пор, как я начал замечать медленное отключение сервера с помощью Fabric.

  1. Я пересоздал использование моего virtualenv с помощью virtualenv 1.4.7, virtualenvwrapper 2.1 и pip 0.7. Не уверен, что это связано, но это мысль, так как я запускаю свои файлы изнутри virtualenv.
  2. Я включил брандмауэр OS X. Я отключил брандмауэр OS X, и проблема осталась, поэтому проблема не в этом.

Ответы [ 2 ]

6 голосов
/ 23 апреля 2010

Решение

Проблема больше не сохраняется после того, как я ввел следующую команду в моем virtualenv:

pip install -U paramiko

Это установленные paramiko-1.7.6 и pycrypto-2.0.1. Раньше у меня были paramiko-1.7.4 и pycrypto-2.0.1.

Похоже, что paramiko был виновником, учитывая, что версия pycrypto не изменилась. Как минимум, существует взаимодействие между paramiko 1.7.4 и Fabric 0.9, которое исправляется путем обновления paramiko до 1.7.6.

Примечание: Я обновился до paramiko-1.7.6 за один день и подтвердил, что проблема исчезла. Затем я активировал другой virtualenv, у которого все еще был paramiko-1.7.4, и подтвердил, что проблема все еще сохраняется, что и произошло. Затем я обновил paramiko с 1.7.4 до 1.7.6 и подтвердил, что проблема исчезла и в этом virtualenv.

2 голосов
/ 23 апреля 2010

Спасибо за отслеживание этого здесь.Я просто хочу отметить для любых читателей, что ранее было известно, что Paramiko 1.7.4 стабильно работает с Fabric 0.9, но на прошлой неделе или двух несколько пользователей начали проявлять эту или аналогичные проблемы (тайм-ауты отключения), поэтому я предполагаю, что некоторыеВ игру вступает другой компонент (обновление Python, обновление пакета удаленного сервера или что-то еще), сообщающий об ошибке в 1.7.4.

Я буду проверять журналы изменений для Paramiko 1.7.5 / 1.7.6 и сбор дополнительной информации о платформах людей / версиях Python / и т. Д., Чтобы попытаться выяснить, появляется ли шаблон.

РЕДАКТИРОВАТЬ: недавно созданный билет Redmine для этой проблемы находится здесь: http://code.fabfile.org/issues/show/158

...