日記第三版


Mar 22, 2009 (Sun)

# 僕もさくらインターネットでtDiaryをruby1.9.1-p0で動かす、その2

僕もさくらインターネットでtDiaryをruby1.9.1-p0で動かすから1日。大きな目立つエラーはないのだが、トラックバックが効いてないかもしれない。自分で自分宛にTrackback Pingを送ってみたが変化がない。エラーもなしに素通りしている感じがする。どうも設定が悪いのかもしれない(僕にとってtDiaryでのトラックバックの設定は面倒なのよ)。1.8.6系では正常にトラックバックの送受信はできていたはずなので、1.8.6系の環境を別途用意して、1.9系との切り分けられるようにしておけば良いかな。

ともかく、素通りはトラックバックを使う人には困るだろう。解決できないかとソースを眺めてみた。

。plugin/trackback/tb.rbのソースを見ると、

BEGIN { $defout.binmode }
$KCODE = 'n'

とある。$defoutは1.9では削除されてしまったので、$defoutを$stdoutに修正した。$KCODEも1.9から削除されたが、warningなので無視してくれるかもと思い、とりあえず放置する。

このtb.rbで試したところ、応答が返ってこなくなり、10秒後くらいに、こんなエラーが表示された。

500 Internal Server Error

when sending TrackBack Ping: execution expired   (TDiary::TDiaryTrackBackError)

(plugin/tb-send.rb):132:in `rescue in block in tb_send_trackback'
(plugin/tb-send.rb):119:in `block in tb_send_trackback'
(plugin/tb-send.rb):105:in `each'
(plugin/tb-send.rb):105:in `tb_send_trackback'
(plugin/tb-send.rb):58:in `block (2 levels) in load_plugin'

うーむ。タイムアウトしたみたい。別の箇所も修正しないとダメみたい。

ちょっとの修正で動作するなら、もうすでに修正されているよなぁとも思う。とにかく、トラックバック機能を無効にしてしのぐことにする。下手にトラックバックを受信できるようにしておくと、トラックバックを送るサイトにも迷惑をかけるので。

Tags: tDiary ruby