2008/05/21

家svnサーバにコミットできない問題

updateとかはできるけど、コミットだけうんともすんとも行かない。
straceとかで見たら、以下の部分でsvnserveが固まっている。

close(5) = 0
open("/home/svn/db/transactions/242-19.txn/node.0.0", O_RDONLY|O_LARGEFILE) = 5
read(5, "id: 0.0.t242-19\ntype: dir\npred: "..., 4096) = 92
close(5) = 0
open("/home/svn/db/revs/242", O_RDONLY|O_LARGEFILE) = 5
_llseek(5, 651744, [651744], SEEK_SET) = 0
read(5, "id: 0.0.r242/651744\ntype: dir\npr"..., 4096) = 227
close(5) = 0
lstat64("/home/svn/db/write-lock", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
open("/home/svn/db/write-lock", O_RDWR|O_LARGEFILE) = 5
fcntl64(5, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}
write-lock ってファイルに対してやったfcntl64が帰ってこないみたい。
実は、このsvnのリポジトリはNFS上にある。自分も忘れてた。
で、Goolgleで「svn write-lock fcntl64」 って検索。


http://subversion.tigris.org/faq.html#nfs

オレ訳:"もしBerkeley DB Back endを使っているのであれば、remote filesystem上でのリポジトリ保存はしないほうがいいよ。FSFS repository backendを使ったほうがぜったいいいって。"

そんなの聞いてないっすよ。ということなので、fsfsへ移行。

$svnadmin dump /home/svn/ > svn.dump
$svnadmin create --fs-type=fsfs /home/svn
$svnadmin load /home/svn < ~/svn.dump
すんなり移行できた。

0 件のコメント: