2013-06-03 4 views
11

は私がトンにこれらのエラーの今日を実行し始めた:ネット::ヘッドレスのFirefoxワチール-webdriverをするcukes上ReadTimeout

Net::ReadTimeout (Net::ReadTimeout) 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/protocol.rb:158:in `rescue in rbuf_fill' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/protocol.rb:152:in `rbuf_fill' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/protocol.rb:134:in `readuntil' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/protocol.rb:144:in `readline' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:39:in `read_status_line' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http/response.rb:28:in `read_new' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1405:in `block in transport_request' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1402:in `catch' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1402:in `transport_request' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1375:in `request' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1368:in `block in request' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:851:in `start' 
     /usr/local/rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/net/http.rb:1366:in `request' 

私は(ヘッドレス宝石経由)のFirefox 21にワチール-webdriverをするcukesをヘッドレスを実行していますよ、Ubuntuサーバー。アクティブな宝石の束は次のとおりです:

Gems included by the bundle: 
    * builder (3.2.2) 
    * bundler (1.3.5) 
    * childprocess (0.3.9) 
    * cucumber (1.3.2) 
    * cwtestgen (0.1.6) 
    * data_magic (0.14) 
    * diff-lcs (1.2.4) 
    * faker (1.1.2) 
    * ffi (1.8.1) 
    * gherkin (2.12.0) 
    * headless (1.0.1) 
    * i18n (0.6.4) 
    * multi_json (1.7.5) 
    * page-object (0.8.10) 
    * page_navigation (0.9) 
    * require_all (1.2.1) 
    * rspec (2.13.0) 
    * rspec-core (2.13.1) 
    * rspec-expectations (2.13.0) 
    * rspec-mocks (2.13.1) 
    * rubyzip (0.9.9) 
    * selenium-webdriver (2.33.0) 
    * syntax (1.0.0) 
    * thor (0.18.1) 
    * watir-webdriver (0.6.4) 
    * watir-webdriver-performance (0.2.2) 
    * websocket (1.0.7) 
    * yml_reader (0.2) 

私はこの問題をどこから解決するべきか分かりません。タイムアウトはランダムです。 OS XのFirefox 21でこれらのテストを実行したとき(ヘッドレスではない)は発生しません。誰もこれを経験したことがありますか?すべてのアイデア多くありがとう - ありがとう!

+3

この問題の原因はわかりませんが、結局それはなくなりました。私は数日でこのエラーを見たことはありません。次回はsysadminと協力して問題を解決しようとしていますが、問題の根本を見つけたらこのスレッドを更新します。 –

+0

ねえ、これはまだ何らかの理由がありますか?私は同じ問題を抱えています。 – user1120134

+0

前にIveにこの問題がありました。私の問題はタイムアウトの問題でした。私はISPとの接続に問題がありました。私のISPからの修正後、彼らは去った。私はライン上に静的だったと思う。 – Duck1337

答えて

0

私はこれを他の人のマシンで見たことがあり、それを診断するのに少し時間を費やしました。

このような状況では、問題はRubyのバージョンマネージャーと混乱しているように見えました。これは古いバージョンのRuby用にコンパイルされた宝石の一部が回収されたことを意味します。

私たちは宝石を吹き飛ばし、宝石を再インストールしました。

これはあなたの問題ではないかもしれませんが、他の人には気づく価値があります。 Rubyのバージョン管理はgetting easier nowadaysですが、それでもやりにくいです。

1

この問題が発生しました。私はなぜそれが起こるのかわからないが、私はそれに解決策を見つけた。私はウォーターブラウザとヘッドレスを終了してから、再試行します。問題は、ワイアがブラウザとの接続を緩めて終了できないことです。私はそれが最初の問題の一部だと思う。 watirブラウザを終了するには、ブラウザオブジェクトをYAMLでダンプし、その結果を解析して、エミュレートされたブラウザのPIDを探します。それが終わったら、killコマンドが正しいpidに送られます。最後に、ブラウザとヘッドレスは再初期化されます。

tryLeft = 3 
begin 
    @watir.goto url 
rescue => error 
    tryLeft -= 1 

    if tryLeft >= 0 
    sleep 1 
    retry 
    end 

    begin 
    Timeout::timeout(2) { @watir.close } 
    rescue 
    File.open(@tmpDumpFile, 'w') { |file| file << YAML::dump(@watir) } 
    `awk '/pid:/ {print $2;}' "#{@tmpDumpFile}" | xargs -rt kill 2>&1` 
    FileUtils.rm_f(@tmpDumpFile) 
    end 

    @headless.stop 
    `killall Xvfb 2>&1` 

    # Reinitialize @watir/@headless then retry 
end 
関連する問題