Issue Details (XML | Word | Printable)

Key: MODPYTHON-76
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Graham Dumpleton
Reporter: Martijn Faassen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
mod_python

input filter hangs in combination with mod_proxy

Created: 01/Sep/05 08:06 PM   Updated: 10/Mar/06 05:20 PM
Return to search
Component/s: core
Affects Version/s: 3.1.4, 3.2.7
Fix Version/s: None

Time Tracking:
Not Specified

Environment: Linux, Apache 2.024 and unreleased Apache 2.0.x svn version.


 Description  « Hide
Input filters hang when mod_proxy is in use. Other behavior seen is infinite calls of the input filter function even though the data has already
been processed.

In Apache 2.0.24, this problem seems to be fundamental; I have no way to get rid of the hang, except perhaps in the case of an input filter that
does not change the size of the passed-through data.

In svn Apache, the problem goes away as soon as I remove the filter.flush() in apache.py's FilterDispatch handler. svn Apache does according to its changelog contain a fix to mod_proxy's handling of input filters.

For my application, use of mod_proxy is essential, as mod_python is essentially proxying another web server process.

Output filters do not seem to be affected by the presence of filter.flush(), and in fact filter.flush() is important to make sure memory use remains small when handling large amounts of data being outputted by the server.

All of this is rather hairy and I don't know quite what to blame; part of this seems indeed due to Apache itself, but perhaps not everything.


 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Repository Revision Date User Message
ASF #383834 Tue Mar 07 09:58:19 UTC 2006 grahamd The FilterDispatch callback should not flush the filter if it has already been
closed. (MODPYTHON-76)
Files Changed
MODIFY /httpd/mod_python/trunk/Doc/appendixc.tex
MODIFY /httpd/mod_python/trunk/lib/python/mod_python/apache.py