namarecoエラー
久しぶりにnamarecoが落ちていたのでそのときのエラーをメモ
% start 4: http://live.nicovideo.jp/watch/lv***** (2) /home/ciel/work/stable/namareco/scripts/live.rb:198:in `rename': No such file or directory - (cache/lv*****.xml, cache/lv*****.xml.19239) (Errno::ENOENT) from /home/ciel/work/stable/namareco/scripts/live.rb:198:in `adjust_vpos' from /home/ciel/work/stable/namareco/scripts/live.rb:190:in `block in adjust_vposes' from /home/ciel/work/stable/namareco/scripts/live.rb:180:in `each' from /home/ciel/work/stable/namareco/scripts/live.rb:180:in `adjust_vposes' from /home/ciel/work/stable/namareco/scripts/live.rb:45:in `start' from /home/ciel/work/stable/namareco/scripts/scheduler.rb:87:in `block in command_lvurl'
namarecoはOSの制限を越えたファイル名となるような場合lv数字のみの短いファイル名でファイルを生成する
renameに渡されているファイル名が短いファイル名のバージョンなので
長いファイル名のファイルが見つからなかったと判定されたようだ
該当するコードは以下
xml = @stinfo.filename(add + COMMENT_EXT) if !FileTest.exist?(xml) xml = @stinfo.short_filename(add + COMMENT_EXT) end
実際には長いファイル名のファイルが生成されていた
FileTest.exist?で判定するのではなく長いファイル名が使われたか短いファイル名が使われたかを記録しておいて
それによって判定したほうがよいか?でもなんでファイルが存在しないと判定されたんだろう