Hi,
Remove mod_disk_cache temporary files when rename() fails, otherwise
they may accumulate in excess.
--
Davi Arnaut
Index: modules/cache/mod_disk_cache.c
===
--- modules/cache/mod_disk_cache.c (revision 409900)
+++ modules/cache/mod_disk_cache.c (working copy)
@@ -165,7 +165,10 @@
*/
rv = apr_file_rename(dobj->tempfile, dobj->datafile, r->pool);
if (rv != APR_SUCCESS) {
-/* XXX log */
+ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, r->server,
+ "disk_cache: rename tempfile to datafile failed: %s
-> %s",
+ dobj->tempfile, dobj->datafile);
+apr_file_remove(dobj->tempfile, r->pool);
}
dobj->tfd = NULL;
@@ -854,6 +857,7 @@
ap_log_error(APLOG_MARK, APLOG_DEBUG, rv, r->server,
"disk_cache: rename tempfile to varyfile failed: %s -> %s",
dobj->tempfile, dobj->hdrsfile);
+apr_file_remove(dobj->tempfile, r->pool);
return rv;
}
@@ -946,6 +950,7 @@
ap_log_error(APLOG_MARK, APLOG_ERR, rv, r->server,
"disk_cache: rename tempfile to hdrsfile failed: %s ->
%s",
dobj->tempfile, dobj->hdrsfile);
+apr_file_remove(dobj->tempfile, r->pool);
return rv;
}