2009年1月3日土曜日

Subversionでクライアントが固まる障害

年末から、Subversionでクライアントがupdate中にハングアップしたり、redMine側のレポジトリブラウザを開くとredMine自体が応答しなくなる、といった症状に悩まされていました。

色々調べてみたんですが、Subversionのデータベースが壊れた場合の方法しか出てこない。うちもこれなのかなぁ・・・と思ってレポジトリを直接覗いて調べていたら・・・

% ls -hl .../db/revs/
:
:
:
-rw-r--r-- 1 apache apache 1.4G 12月 23 04:49 5665
:
:
:

なぬ? 1.4Gの差分ってなんだよー・・・orz
ってことで、原因は大量ファイルの一括commitでした。さらに調べると、この時commitされたファイルのうち1つが650MBちかくある。・・・こいつが原因か!! むぅ・・・もう少し考えてcommitして欲しいなぁorz よくよく見るとcommitしてあるファイルを日にち付けてtar.gzで固めただけっぽいし。バージョン管理してるんだから、そういうの不要じゃん。

原因に気づき、update中のクライアントをtcpdumpで追いかけてやると、確かにハング中もHTTPで大量データのやりとりを続けてたorz 仕方ないので「でかすぎて有害なので消すよ」とコメントを付けてtrunkからremoveしました。これでredMineのレポジトリブラウザも生き返るかなぁ・・・。途中経過を内部で持ってたらアウトかもなぁ。最初のアクセスに凄く時間がかかった記憶があるので、内部で差分を変換してデータベース化してそうな予感なんだけど・・・。

0 件のコメント: