5

Disconnecting from username@server... done.fab コマンドを発行するたびに、新しいコマンド プロンプトが表示される前に、Fabricがほぼ 2 分間表示されます。

この問題は、内部サーバーと Rackspace クラウド サーバーの両方に発行された Fabric コマンドを使用する場合に発生します。以下に、サーバーからの auth.log を含めましたが、MacBook のログには何も表示されませんでした。

問題が何であるかについて何か考えはありますか?

LogLevel VERBOSE のサーバーの SSH auth.log

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

サーバー構成

  • OS: Ubuntu 9.10 および Ubuntu 6.10 (これらの OS で 4 台のサーバーをテスト済み)
  • OpenSSH: Ubuntu パッケージ バージョン 1.5.1p1-6ubuntu2

クライアント構成

  • OS: Mac OS X 10.6.3
  • ファブリック ver 0.9
  • 仮想環境 ver 1.4.7
  • ピップ版 0.7

テストに使用する単純な fabfile.py

fab -H server_ip host_type次のfabfileで実行しただけでも問題は解決しません。

from fabric.api import run

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

問題の原因についての考え

この問題がいつまで続いているかは定かではありませんが、Fabric を使用してサーバーの切断が遅いことに気付き始めてから変更された点を以下にいくつか示します。

  1. virtualenv 1.4.7、virtualenvwrapper 2.1、および pip 0.7 を使用して、virtualenv を再作成しました。これが関連しているかどうかはわかりませんが、virtualenv 内から fabfiles を実行しているので考えられます。
  2. OS X のファイアウォールを有効にしました。OS X のファイアウォールを無効にしても問題が解決しないため、これは問題ではありません。
4

2 に答える 2

6

Solution

The problem no longer persists after I issued the following command in my virtualenv:

pip install -U paramiko

This installed paramiko-1.7.6 and pycrypto-2.0.1. Previously, I had paramiko-1.7.4 and pycrypto-2.0.1.

Appears that paramiko was the culprit given that the pycrypto version didn't change. At a minimum there appears to be an interaction between paramiko 1.7.4 and Fabric 0.9 that is fixed by upgrading paramiko to 1.7.6.

Note: I upgraded to paramiko-1.7.6 in one virtualenv and confirmed that the problem went away. I then activated another virtualenv that still had paramiko-1.7.4 and confirmed that the problem still persisted, which it did. Then I upgraded paramiko from 1.7.4 to 1.7.6 and confirmed that the problem went away in that virtualenv as well.

于 2010-04-23T02:58:41.053 に答える
2

ここでこれを追跡してくれてありがとう。Paramiko 1.7.4 は Fabric 0.9 で安定していることが以前から知られていましたが、ここ 1、2 週間で何人かのユーザーがこの問題または同様の問題 (切断タイムアウト) を示し始めたことを読者の皆様にお知らせしたいと思います。他のコンポーネント (Python のアップグレード、またはリモート サーバー パッケージのアップグレードなど) が登場し、1.7.4 のバグが報告されています。

Paramiko 1.7.5/1.7.6 の変更ログを調べて、人々のプラットフォームや Python のバージョンなどに関する詳細情報を収集し、パターンが出現するかどうかを確認します。

編集: この問題に対して新しく作成された Redmine チケットはこちら: http://code.fabfile.org/issues/show/158

于 2010-04-23T13:37:25.500 に答える