The problem here is that we are getting some zero-length buckets at the head
of our brigade - which are in isolation okay. In this situation, they must be removed by the call to APR_BRIGADE_NORMALIZE. The way we partition the buckets means that we will never remove the zero-length bucket from the head - causing an infinite loop. We read only a single bucket now - previously partition with the blocking reads would read multiple buckets - but it forced having a defined length which we agreed was bogus. Therefore, if we have a zero-length bucket at the head, we would then try to partition and split at the zero-point of the brigade. That combination doesn't actually remove the zero-length bucket - it is still there - causing an infinite loop because we'll never go past the zero-length bucket. This call was originally present in core_input_filter. I think it might be better to fix partition/split/etc to eliminate a zero-length bucket and skip it. But, I'm not 100% sure that needs to happen. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91412 13f79535-47bb-0310-9956-ffa450edef68
Loading
Please register or sign in to comment