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

Bug #256209 reported by TN ex on 2008-08-08
2
Affects Status Importance Assigned to Milestone
bbs2chreader
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 に切り替えるとかした方が無難ではないかと思います。

TN ex (tn-ex) wrote :
Nazo (lovesyao) wrote :

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

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

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

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  Edit
Everyone can see this information.

Other bug subscribers