Sometimes Subversion ends in an unterminated loop when checking out to a full device. Looking at the Windows and OS/2 code, the unix code seems to be missing a line which changes the loop termination variable rv.
I promissed Karl Fogel a reproduction recipe, but didn't succeed in creating one. OTOH, I think it's clear the line needs changing... bye, Erik. PS: it's a patch against trunk. I can supply one for all branches, because I would very much like it to be backported to 0.9.x, but the change is so trivial I think using merge is faster.... Index: file_io/unix/readwrite.c =================================================================== --- file_io/unix/readwrite.c (revision 233542) +++ file_io/unix/readwrite.c (working copy) @@ -170,7 +170,7 @@ rv = 0; while (rv == 0 && size > 0) { if (thefile->bufpos == APR_FILE_BUFSIZE) /* write buffer is full*/ - apr_file_flush(thefile); + rv = apr_file_flush(thefile); blocksize = size > APR_FILE_BUFSIZE - thefile->bufpos ? APR_FILE_BUFSIZE - thefile->bufpos : size;