namarecoサーバ切断原因調査

  • 観測された症状
    1. 録画スレッドでのEOFError
    2. 録画スレッドでのECONNRESET
    3. アラートスレッドでのETIMEDOUTおよびReConnectAlertError
  • どちらも単体動作は問題がない模様
  • どちらかのスレッドが実行権を離さずにいるのが問題か?
    • 録画スレッドもアラートスレッドも主要な構造は従来のコードとほとんど変更していないはずなのだが
    • 従来コードは今のところ順調に動いているように見える
  • 関係ありそうな項目

C レベルで停止してしまう (Threadの切替えが発生しない)処理

      • とあるが具体的にはどの処理がCレベルで停止してまう処理なのだろうか?
      • アラートスレッドの中ではgetsを録画スレッド中ではreadpartialをそれぞれ利用しているのだが
    • http://www.ruby-lang.org/ja/man/html/trap_Thread.html
      • スレッド中では読まれるだけの変数は単に引数として渡してしまってよいのだろうか?
      • foo = Hash.new; Thread.new{Hoge.new(foo)}
      • こんなコードは許されるのだろうか?
    • http://i.loveruby.net/ja/rhg/book/thread.html