この問題を解決し、再発を防ぐために実施した対応は以下の通りです。
このコミットは 3 つの課題を同時に解決する「3-in-1」の内容です。これらがバグの原因となっており、根本原因の特定を妨げていました。
-
ユーザーアカウントが削除されても「メールログ」が削除されないようにしました。削除されたユーザーのメールログがあれば、送信されたすべての拒否メールをすぐに確認できたはずです。
-
コード内でユーザーを削除するすべての箇所で、「コンテキスト」を適切に設定するようにしました。これにより、ユーザーがいつ、なぜ削除されたかを明確に特定できます。以前はコンテキストが設定されていない箇所が複数あり、なぜユーザーが削除されたのか不明で、原因を特定するためにコードを詳しく調査する必要がありました。
-
実際のバグを修正し、自動削除されたレビュー対象ユーザーに対して拒否メールを送信しないようにしました。
これらの変更にはすべてテストが追加されており、回帰を防ぐことが確実です。