Paul Hammant <p...@hammant.org> writes: > Hey Philip, starting from scratch, I can reproduce "Can't find a temporary > directory" errors in /var/log/apache2/error.log for PUT when the boot drive > is pretty much full, and the repository's drive has 3 spare terabytes.
Ah, it's not running out of space in tmp, rather it is failing to find tmp. There is a behaviour difference between Subversion 1.9 and 1.10 here: each Apache child process using 1.9 will create two zero-length files in tmp, the first is APR finding tmp the second is Subversion getting the default file permissions. 1.10 doesn't use tmp for this purpose and the file is created in the repository. Note: the files created in tmp by 1.9 are zero length so should not affect performance of the PUT. APR should detect most tmp dirs automatically via apr_temp_dir_get: http://svn.apache.org/repos/asf/apr/apr/branches/1.5.x/file_io/unix/tempdir.c Your system must have some more exotic tmp dir setup, a per-user tmp perhaps? If you tell us what your tmp looks like then perhaps we can fix APR to detect it automatically. Do other commands such as 'mktemp' locate your tmp dir? If you want to trace the file IO of Apache you can use strace -f -p NNN where NNN is the process ID of an Apache child process. (Apache has a top level process listening on the socket and child processes handling the requests.) You may want to trace every child process, or configure Apache to use only one child process, or repeat the operation until the chosen child is triggered. strace show all system calls by default you can restrict it with things like: strace -f -etrace=open,write,close,rename -p NNN -- Philip