You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mod_python-commits@quetz.apache.org by gr...@apache.org on 2006/03/24 12:26:07 UTC

svn commit: r388492 - /httpd/mod_python/trunk/src/mod_python.c

Author: grahamd
Date: Fri Mar 24 03:26:05 2006
New Revision: 388492

URL: http://svn.apache.org/viewcvs?rev=388492&view=rev
Log:
When python_filter couldn't find an actual mod_python filter handler it was
returning DECLINED, but not releasing the interpreter. By rights this
scenario should never have happened, but issues caused by use of the
ap_internal_fast_redirect() function by Apache to implement DirectoryIndex
directive was causing it, as details of filters weren't being copied from
sub request object to parent. End result was further requests against that
interpreter in that process would hang as lock for interpreter couldn't be
acquired. Would also cause shutdown to hang with child processes needing to
be killed off forcibly by parent Apache process. (MODPYTHON-146)

Modified:
    httpd/mod_python/trunk/src/mod_python.c

Modified: httpd/mod_python/trunk/src/mod_python.c
URL: http://svn.apache.org/viewcvs/httpd/mod_python/trunk/src/mod_python.c?rev=388492&r1=388491&r2=388492&view=diff
==============================================================================
--- httpd/mod_python/trunk/src/mod_python.c (original)
+++ httpd/mod_python/trunk/src/mod_python.c Fri Mar 24 03:26:05 2006
@@ -1486,8 +1486,10 @@
             fh = apr_hash_get(conf->out_filters, f->frec->name, APR_HASH_KEY_STRING);
     }
 
-    if (!fh)
+    if (!fh) {
+        release_interpreter();
         return DECLINED;
+    }
 
     /* create filter */
     filter = (filterobject *)MpFilter_FromFilter(f, bb, is_input, mode, readbytes,