> A simple SSI file with two #include file directives > will coredump due the fact that we are copying the > filter chain *pointers* from the main request to > the subrequest in make_sub_request. When we add > the subreq_core_filter this corrupts the main > filter chain.
There should be no reason to copy the entire chain to the sub-request. In fact, if we do have to do so, then there is a bigger problem. I think the actual problem is that we no longer really need the previous pointer that I added. That pointer is causing more problems that it solves, and we have to walk the filter chain anyway in add_any_filter_handle. The other thing is that we actually want to use the exact same filters. That is one of the goals of subrequests, so I believe that this is the wrong solution. I will remove the previous filter ASAP and see if it still works. > We need to copy the filter chain, not just the > pointers. Attached is a patch to do this. I will > commit if there are no objections. > > There is also at least one remaining bug in > add_any_filter handle due to the fact that > r->output_filters and/or r->proto_output_filters > are not getting updated when filters are added. > I'm still looking into that one if no-one beats > me to it. Can you provide a config that causes this bug? Ryan
