You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by co...@apache.org on 2013/12/04 18:09:42 UTC

svn commit: r1547845 - in /httpd/httpd/trunk: CHANGES modules/cache/mod_cache_disk.c

Author: covener
Date: Wed Dec  4 17:09:42 2013
New Revision: 1547845

URL: http://svn.apache.org/r1547845
Log:
Only close hdrs.fd when returning non-OK from cache_select(),
because it will be read from in the very next mod_cache callback
recall_headers().  Problem masked on unix by buffering.


Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/modules/cache/mod_cache_disk.c

Modified: httpd/httpd/trunk/CHANGES
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/CHANGES?rev=1547845&r1=1547844&r2=1547845&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Wed Dec  4 17:09:42 2013
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache 2.5.0
 
+  *) mod_cache_disk: Fix potential hangs on Windows when using mod_cache_disk. 
+     PR55833. [Eric Covener]
+
   *) mod_headers: Allow the "value" parameter of Header and RequestHeader to 
      contain an ap_expr expression if prefixed with "expr=". [Eric Covener]
 

Modified: httpd/httpd/trunk/modules/cache/mod_cache_disk.c
URL: http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/cache/mod_cache_disk.c?rev=1547845&r1=1547844&r2=1547845&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/cache/mod_cache_disk.c (original)
+++ httpd/httpd/trunk/modules/cache/mod_cache_disk.c Wed Dec  4 17:09:42 2013
@@ -529,13 +529,13 @@ static int open_entity(cache_handle_t *h
         return DECLINED;
     }
 
-    apr_file_close(dobj->hdrs.fd);
 
     /* Is this a cached HEAD request? */
     if (dobj->disk_info.header_only && !r->header_only) {
         ap_log_rerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS, r, APLOGNO(00707)
                 "HEAD request cached, non-HEAD requested, ignoring: %s",
                 dobj->hdrs.file);
+        apr_file_close(dobj->hdrs.fd);
         return DECLINED;
     }
 
@@ -593,6 +593,7 @@ static int open_entity(cache_handle_t *h
             "Cached URL info header '%s' didn't match body, ignoring this entry",
             dobj->name);
 
+    apr_file_close(dobj->hdrs.fd);
     return DECLINED;
 }