WebDAV transparent write-through proxyでMKACTIVITYとか怒られた

感想おまちしてます!

WebDAV transparent write-through proxyの実験中、Slaveでコミットしたときにwrite-throughしてくれない・・・。なーぜーだー。コミットすると以下のエラーが出る。

 コミットに失敗しました (詳しい理由は以下のとおりです):
サーバが、リクエストへのレスポンスとして予想外の戻り値 (500 Internal Server Error) を送信してきました (リクエスト:
MKACTIVITY, URL: '/svn/repo01/!svn/act/fe44baef-2017-234b-bb48-d0f067379dc9')

SVNMasterURIが間違っているときのエラーらしいけど。
SVNParentPathがまずいかと思ったけど、開発者のブログ?では以下のように解説されていた。

I believe you can use SVNParentPath so long as your repository locations on the master and server end with the same basename, and your SVNMasterURI configuration doesn’t carry that basename. I think the proxy code is going to use SVNParentPath + /basename to find the repository on the slave, and SVNMasterURI + /basename to address the repository on the master. (There’s a mailing list post which corroborates this at: http://svn.haxx.se/users/archive-2008-02/0326.shtml)

SVNParentPathの場合、SVNParentPath + リポジトリ名でやってくれるはずとのこと。
Slave側のログには下のようなのが。

[Sun Dec 14 23:02:17 2008] [warn] proxy: No protocol handler was valid for the URL /svn/repo01/!svn/act/e0927d48-9592-c24d-b2a1-f593788876d3. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

調べてみると、 oranblueさんのところに同じようなエラーがでていた。
mod_proxy.soとmod_proxy_http.soはセットでLoadModuleらしい。
Subversion関係の資料を調べたけどLoadModuleについては書いてないなー。「Apache側の問題でしょ!」という意味かな。
ためしにSlaveのhttpd.confを以下に変更。

 LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

うまくいった。