thanks maxim!<div><font class="Apple-style-span" face="arial, sans-serif" size="6"><span class="Apple-style-span" style="font-size: 24px;"><span class="Apple-style-span" style="font-size: small;"><br></span></span></font></div>

<div><font class="Apple-style-span" face="arial, sans-serif" size="6"><span class="Apple-style-span" style="font-size: 24px;"><span class="Apple-style-span" style="font-size: small;"> I agree your perspective , sub filter must deal with this situation(in is NULL) .</span></span></font></div>

<div><span class="Apple-style-span" style="font-family: arial, sans-serif; "><br></span></div><div><font class="Apple-style-span" face="arial, sans-serif" size="6"><span class="Apple-style-span" style="font-size: 24px;"><span class="Apple-style-span" style="font-size: small;"></span></span></font><span class="Apple-style-span" style="font-family: arial, sans-serif; ">and as you say , this is sub filter&#39;s bug?</span></div>

<div><span class="Apple-style-span" style="font-family: arial, sans-serif; "><br></span></div><meta http-equiv="content-type" content="text/html; charset=utf-8"><div><div class="gmail_quote">On Tue, Sep 21, 2010 at 10:19 PM, Maxim Dounin <span dir="ltr">&lt;<a href="mailto:mdounin@mdounin.ru">mdounin@mdounin.ru</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Hello!<br>
<div class="im"><br>
On Tue, Sep 21, 2010 at 08:36:11PM +0800, Simon Liu wrote:<br>
<br>
&gt; thanks Maxim!<br>
&gt;<br>
&gt; my patch is mistake.<br>
&gt;<br>
&gt; but when remove http_ssi_module , sub filter module may  log  alert:<br>
&gt;<br>
&gt;  &quot;the http output chain is empty while sending response to client.&quot;<br>
&gt;<br>
&gt; because sub filter module need ngx_http_postpone_filter&#39;s code :<br>
&gt;<br>
&gt;  if (r-&gt;postponed == NULL) {<br>
&gt;<br>
&gt;         if (in || c-&gt;buffered) {<br>
&gt;             return ngx_http_next_filter(r-&gt;main, in);<br>
&gt;         }<br>
&gt;<br>
&gt;         return NGX_OK;<br>
&gt;     }<br>
&gt;<br>
&gt; this code is needed by subrequest only?  i think sub filter is needed too.<br>
<br>
</div>It is believed that empty chains shouldn&#39;t appear in output.  They<br>
doesn&#39;t make sense unless used to flush various buffers, and<br>
writer rightfully complains when it sees empty chain while there<br>
are no buffered data.<br>
<br>
The code in postpone filter obviously hides some of &quot;empty chain&quot;<br>
problems.  But it doesn&#39;t mean that sub module needs it.  It means<br>
that sub module have to be fixed (and the problem is usually<br>
hidden by postpone filter).<br>
<div><div></div><div class="h5"><br>
Maxim Dounin<br>
<br>
_______________________________________________<br>
nginx mailing list<br>
<a href="mailto:nginx@nginx.org">nginx@nginx.org</a><br>
<a href="http://nginx.org/mailman/listinfo/nginx" target="_blank">http://nginx.org/mailman/listinfo/nginx</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>博观约取<br><br>豆瓣:<a href="http://www.douban.com/people/mustang/" target="_blank">www.douban.com/people/mustang/</a><br><br>blog: <a href="http://www.pagefault.info" target="_blank">www.pagefault.info</a><br>

<br>twitter: <a href="http://www.twitter.com/minibobo" target="_blank">www.twitter.com/minibobo</a><br>
</div>