2017-03-26

Vagrantでawait_response_stateエラー

vagrant upしたら以下のネットワークエラーが発生し、仮想OS自体は立ち上がるものの共有フォルダの機能が利用できなくなりました。

==> default: Configuring and enabling network interfaces...
/opt/vagrant/embedded/gems/gems/net-scp-1.1.2/lib/net/scp.rb:392:in `await_response_state': hogehoge (RuntimeError)

原因は仮想OSのvagrantユーザのホームディレクトリに.ssh/rcが置いてあって、そのファイル内でecho "hogehoge"と書いてしまっていたこと。以下のコードで、channel[:buffer].read_byteでechoした結果が読み込まれて、if c != 0でraiseされてしまっていました。

def await_response_state(channel)
    return if channel[:buffer].available == 0
    c = channel[:buffer].read_byte
    raise "#{c.chr}#{channel[:buffer].read}" if c != 0
    channel[:next], channel[:state] = nil, channel[:next]
    send("#{channel[:state]}_state", channel)
end

raiseを無理矢理コメントアウトすれば良いのかもしれないですが、おとなしく.ssh/rcのecho文をコメントアウトして解決。

このエントリーをはてなブックマークに追加