If I configure a server with an FSFS cache that uses about 50% of
available memory and then I use the server so the cache is in use I find
that hook scripts fail to run because the fork/exec cannot allocate
memory. The user sees:

$ svn mkdir -mm http://localhost:8888/obj/repo/A
svn: E165002: Failed to start 
'/home/pm/sw/subversion/obj/repo/hooks/pre-commit' hook

and the apache log contains:

[Tue Nov 13 21:14:28 2012] [error] [client ::1] Could not MERGE resource 
"/obj/repo/!svn/txn/0-1" into "/obj/repo".  [409, #0]
[Tue Nov 13 21:14:28 2012] [error] [client ::1] An error occurred while 
committing the transaction.  [409, #165002]
[Tue Nov 13 21:14:28 2012] [error] [client ::1] Failed to start 
'/home/pm/sw/subversion/obj/repo/hooks/pre-commit' hook  [409, #165002]
[Tue Nov 13 21:14:28 2012] [error] [client ::1] Can't start process 
'/home/pm/sw/subversion/obj/repo/hooks/pre-commit': Cannot allocate memory  
[409, #12]

If I increase the available memory by adding swap the hook script
starts.

Perhaps we could start up a separate hook script process before
allocating the large FSFS cache and then delegate the fork/exec to that
smaller process?

-- 
Certified & Supported Apache Subversion Downloads:
http://www.wandisco.com/subversion/download

Reply via email to