リポジトリに謎の障害

rmindを公開しているリポジトリでおかしな現象が発生しました。

環境、構成

リポジトリのサーバは、Xen + drbd + OpenVPNという仮想だらけの環境ですが、数十日間連続稼動しており、他には特に問題がないので、この件には関係ないと思います。

予兆

しばらく前から、commitの時に以下のようなエラーが出ていました

  • general server errorというようなメッセージで異常終了
  • checksum errorというようなメッセージで異常終了

出るタイミングは不定で、再度(そのまま)、commitをするとそのまま直る場合と、何度やっても同じエラーが出る場合がありました。

この時は次の手順で復旧しました。

  1. ソースを退避
  2. 問題のソースを含むディレクトリを削除
  3. svn update
  4. 退避したソースを上書き
  5. svn commit

本来はここでしっかり調査すべきでしたが、この手順で復旧できていたので、リポジトリでなくワークファイル側の問題だと判断していました。

現象の確認

本日、リポジトリ(内の特定のソース)が完全におかしくなっていることに気がつきました。

  1. svn checkout
  2. ソースを修正 commit
  3. ディレクトリにcheckout
  4. 2の内容が反映されていない

問題となっているソースは、rmind/app/model/user.rb です。

原因

今の所、全く不明です。

対策

現状のリポジトリを保存後、新しいリポジトリを作成し、最新のソースをチェックインします。