スレッド一覧のデータを DB に登録中エラーになるとそれ以降(ブラウザを終了するまで)スレッド一覧のデータが登録出来なくなる

Bug #256209 reported by TN ex
2
Affects Status Importance Assigned to Milestone
bbs2chreader
Fix Committed
Undecided
Unassigned

Bug Description

http://jbbs.livedoor.jp/bbs/read.cgi/computer/41231/1214224487/74-75
で報告されていた件です。

原因は
http://pc11.2ch.net/test/read.cgi/software/1216910901/297
に書いた通り、unique を期待している thread_id が同一のものを INSERT しようとして例外が発生して、
エラーの状態がリセットされないため、以後スレッド一覧の INSERT に失敗するようです。
以下の URL を参考に修正して、添付のパッチで問題が解消することを確認致しました。

参考
http://developer.mozilla.org/en/docs/mozIStorageStatement#reset.28.29

Prepared Statement を使っている他の場所についても確認・修正が必要と思われます。
また、thread_id が同一のものを INSERT しようとした場合にどうすべきかは
別途検討する必要があると思いますが、先のパー速の例を見る限りでは
後発のものが有効なようですので、面倒ですが INSERT で失敗したら
UPDATE に切り替えるとかした方が無難ではないかと思います。

Revision history for this message
TN ex (tn-ex) wrote :
Revision history for this message
Nazo (lovesyao) wrote :

そういえば同一時刻に立てると thread_id が重複してしまうんでしたねぇ。VIP全盛期はしょっちゅう被っていた気が。

>エラーの状態がリセットされない
>Prepared Statement を使っている他の場所についても確認・修正が必要と思われます。
そのようです。

>後発のものが有効なようです
>INSERT で失敗したらUPDATE に切り替えるとかした方が無難ではないか
新スレはsubject.txtのトップに来るはずなので、今回のパー速のはsubject.txtに先に書かれたものが有効になっているのでしょう。ただ運要素がどれだけからんでるかが気になります。
あと2chはage処理をidで扱っているはずなので、スレタイ以外のパラメータは上にあるのを使うべきかと。

Revision history for this message
Nazo (lovesyao) wrote :

rev.586で修正

Changed in bbs2ch:
milestone: none → 0.5
status: New → Fix Committed
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.