引き続きテスト

  • 開発中のnamarecoをしばらく動かしてみた
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `EOFError' at ./scripts/rtmp.rb:85 - end of file reached
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
./scripts/live.rb:113:in `new': StopThreadException (StopThreadException)
        from ./scripts/live.rb:94:in `fetch'
        from ./scripts/live.rb:93:in `initialize'
        from ./scripts/live.rb:93:in `new'
        from ./scripts/live.rb:93:in `fetch'
        from ./scripts/live.rb:78:in `fetch_files'
        from ./scripts/live.rb:27:in `initialize'
        from ./scripts/scheduler.rb:87:in `new'
        from ./scripts/scheduler.rb:87:in `command_lvurl'
        from ./scripts/scheduler.rb:86:in `initialize'
        from ./scripts/scheduler.rb:86:in `new'
        from ./scripts/scheduler.rb:86:in `command_lvurl'
        from ./scripts/scheduler.rb:50:in `issue'
        from ./scripts/scheduler.rb:19:in `loop'
        from ./scripts/scheduler.rb:19:in `issue'
        from ./scripts/scheduler.rb:15:in `initialize'
        from ./scripts/main.rb:33:in `new'
        from ./scripts/main.rb:33:in `namareco_main'
        from ./scripts/main.rb:33:in `initialize'
        from ./scripts/main.rb:33:in `new'
        from ./scripts/main.rb:33:in `namareco_main'
        from namareco.rb:15
        from /usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open'
        from /usr/lib/ruby/1.8/open-uri.rb:32:in `open'
        from namareco.rb:11
Exception `IOError' at /usr/lib/ruby/1.8/logger.rb:504 - closed stream
Exception `StopThreadException' at ./scripts/live.rb:113 - StopThreadException
Exception `IOError' at /usr/lib/ruby/1.8/logger.rb:504 - closed stream
Exception `IOError' at /usr/lib/ruby/1.8/logger.rb:504 - closed stream
Exception `IOError' at /usr/lib/ruby/1.8/logger.rb:504 - closed stream
    • 相変わらず大量のEOFErrorが出るようだ
      • 最終的にはStopThreadExceptionをrescueできずにおちている(?)模様
      • これはプログラミングバグだと思うがraiseやらrescueやらは制御の流れがさっぱり分からずどう対処していいのか分からない
    • EOFErrorなのでサーバから切断されていることも考えられる
  • 一方従来版のnamarecoも動かしてみた
Exception `Errno::ECONNRESET' at ./scripts/rtmp.rb:83 - Connection reset by peer
./scripts/rtmp.rb:83:in `readpartial': Connection reset by peer (Errno::ECONNRESET)
        from ./scripts/rtmp.rb:83:in `read'
        from ./scripts/rtmp.rb:148:in `process_packet'
        from ./scripts/reco.rb:23:in `initialize'
        from ./scripts/reco.rb:22:in `loop'
        from ./scripts/reco.rb:22:in `initialize'
        from ./scripts/live.rb:92:in `new'
        from ./scripts/live.rb:92:in `fetch'
        from ./scripts/live.rb:91:in `initialize'
        from ./scripts/live.rb:91:in `new'
        from ./scripts/live.rb:91:in `fetch'
        from ./scripts/live.rb:76:in `fetch_files'
        from ./scripts/live.rb:26:in `initialize'
        from ./scripts/scheduler.rb:89:in `new'
        from ./scripts/scheduler.rb:89:in `command_lvurl'
        from ./scripts/scheduler.rb:88:in `initialize'
        from ./scripts/scheduler.rb:88:in `new'
        from ./scripts/scheduler.rb:88:in `command_lvurl'
        from ./scripts/scheduler.rb:52:in `issue'
        from ./scripts/scheduler.rb:21:in `loop'
        from ./scripts/scheduler.rb:21:in `issue'
        from ./scripts/scheduler.rb:17:in `initialize'
        from ./scripts/main.rb:30:in `new'
        from ./scripts/main.rb:30:in `namareco_main'
        from ./scripts/main.rb:30:in `initialize'
        from ./scripts/main.rb:30:in `new'
        from ./scripts/main.rb:30:in `namareco_main'
        from ./namareco.rb:10
    • こちらも時にはエラーで落ちることがあったようだ
      • あまり自分のツールを使っていないせいかこの現象に気づいていなかった
      • とりあえず新版ではErrno::ECONNRESETとErrno::EPIPEはrescueして再接続するようにした
    • こちらはどちらかというとThreadが回らずにサーバとの接続が切れているのか?
  • まとめ
    • 従来版にも途中で接続が切れるバグがあったようだ
    • しかし開発版の方が接続が切れる確率が格段に高くなっているようだ
    • ちらほらと新サーバでの配信も混ざっているようだがまだリリースはできなさそうだ
      • 今測ってみたら旧116放送に対して新6放送
      • 別件で新サーバ配信についてはブラウザでも再生できないことが多々あるような気がする
      • ブラウザを変えたりしばらく待つと再生できたりするが