第11回 東方Project 人気投票

開催期間  ~ 

データ消失に関する報告と今後の対応について

このたびは昨年に引き続き、多大なるご心配・ご迷惑をおかけしたことを心よりお詫び申し上げます。
またあわせまして、そのような中であっても応援、投票呼びかけにご協力いただきました方々に深く御礼申し上げます。以下、不具合にかかわる経緯と今後の対策につきまして、順を追ってご説明いたします。

■投票開始まで
前回の件を受けまして、今回、人気投票実行委員会に新たなメンバーを迎え入れ、新体制で臨むことといたしました。
一方、これまで人気投票のスクリプトを担当していたメンバーが多忙につき交代することなり、これを機に、集計作業円滑化等を目的としたスクリプトの全面的な差し替えを行うことといたしました。
公開前には有志によるテストを行い、問題が起こらないことも確認しておりました。

■5/24(投票開始初日)
投票開始後、大量の投票キー発行がリクエストされるなど、過剰な負荷が発生(最終的に初日で22,740件の投票キー発行がありました)。
こちらが想定していた以上の投稿が集中したことから処理の遅延が発生し、対応を開始しました。またこの際、スクリプトの一部差替えを行ったことによりデグレードが発生、投票者名データが記録されないバグが生じました。

■5/24の夜まで
「投稿が出来ない」というお問い合わせが届いていたため、何度か投票状況の確認を行っていたところ、データが初期化されていることが分かりました(バックアップデータも上書きされていました)。
データ更新時のロックは正常に機能しており、この時点では初期化された原因は不明でしたが、告知を急ぐべきとの判断から音楽部門初期化の件について告知いたしました。

■5/25昼頃
引き続き原因の調査を行っているところで、アンケート部門についても何度か初期化されていたことが確認されました。
何らかのエラーによりファイルが破損・初期化する可能性を考慮して、疑わしきコードの削除、および出力系統の多重化を実施しました。なお、これ以降初期化は発生しておりません。

■5/26
参加者に不安を与えていることから、投票状況の確認と修正受付が必要と判断し、フォームを作成、テストを行いました。
また、このとき5/24に発生したバグを確認し、合わせてリプレースしました。

■5/31
新規投票キーの発行が終了したことから、不正投票の洗い出しを開始しました。

■6/1
投票受付を終了し、有志のご協力も得ながら不適切コメントの洗い出しを開始しました。
これまでは順次行っていましたが、今回は終了直前まで修正を受け付けていた関係上、終了後に一斉精査を行うことになりました。
そのため、予定より時間がかかる見通しとなったため、やむを得ずコメントのない速報版の公開へ切り替えることといたしました。

■6/12
最終集計結果の確認とともに、初期化発生原因の調査を進めましたが、最終的な再現・特定にはいたりませんでした。
(サーバの過負荷によりファイルエラーが発生し、初期展開プロセスが実行されてしまった可能性が最も高いと考えております)

また、「妖々跋扈 ? Speed Fox!」が「妖々跋扈」としてカウントされていたことから、「妖々跋扈 ? Who done it!」として集計し直しました。この結果、妖々跋扈は121位から133位、妖々跋扈 ? Who done it!は141位から131位となり、この間にあった曲の順位も変動いたしました。

■6/13
以上を報告するとともに、最終集計・詳細集計結果を発表いたしました。

■次回への対策
このようなことが起こらないよう、投票プロセスの見直し、データファイルの分散、データ保存系統の二重化、サーバの変更などを実施する予定です。
次回開催につきましては、2016年の開催を目指しつつ、いただきました意見を参考にして取り組みたいと考えております。
ご意見ご要望などありましたら、東方人気投票実行委員会まで遠慮なくお寄せいただければと思いますで、今後ともよろしくお願い申し上げます。
(リンク:お問い合わせ