Kaihatsu

twitter の userstream が突然調子悪くなる案件

node.js から twitter の userstream を扱うのには、ntwitter は挙動がバギーなので user-stream を使っている。

https://github.com/aivis/user-stream

ログを見てみると garbage イベントを吐きまくっていた。当該部分を読んでみると

https://github.com/aivis/user-stream/blob/master/lib/user-stream.js#L131

try {
    //try parse & emit
    buffer = JSON.parse(buffer);
    parsed = true;
} catch(e) {
    stream.emit('garbage', buffer);
}

という感じで、JSON.parse に失敗したら garbage を吐くようになってる。catch 節で buffer をダンプしてみると確かにjsonデータがぶつ切れになっていて、そりゃあパースに失敗するよなあ、という感じ。

今は小康状態で時々出るぐらいなんだけど、困ったなー。いっちょフォークして直してやるか!...とおもったら、そういう時に限ってなかなか garbage が発火しなくて泣ける。

一旦様子見で。