Hi, I'm not familiar with the bucket, brigade at all. It seems that the chunk will be sent via bucket brigade. I found the stuck happen when the length of the bucket is "0" and the next length of the bucket is "5" (0\r\n\r\n, is this the last chunk?).
Why isn't the last chunk inserted in the bucket with web data? Why the last two buckets with zero and five length aren't sent out? Thanks Best regards, honercek On Wed, May 26, 2010 at 9:24 PM, Chen Chien-Yu <honer...@gmail.com> wrote: > Hi, > > I encountered a problem after upgrading Apache to 2.2.15. > The client will be stuck and load infinitely via the HTTP protocol, but it > worked correctly in 2.0.55 before I upgraded. > > I tried to sniffer the packet, and found > 1. If the page size is larger, most of the page and http header will be > received in the client but the last chunk won't be sent out from the Apache. > 2. If the page size is small, the client only can see the http header. > > It seems that some packets are queued in the Apache, ..?! > I describe the process as below, > 1. Client send http request to the server, http://myhost/web.cgi, the cgi > is implemented in GNU CGI which has been dead since 2002. > 2. web.cgi fetches the login.html file and sends back to the client. > 3. The client gets stuck... > > There are some things weird: > 1. When I remove the directive "Listen 443" or "Keepalive On", then the > HTTP can work correctly via "Listen 80" without stall. > 2. If both the "Listen 443" and "Listen 80" are enabled, only the HTTPS can > work. HTTP will have the problem I just mentioned. > > Do you guys have any idea about my problem? > Why the behavior of dealing with output file is different between HTTP and > HTTPS protocol? > > > > My Apache configuration > > ServerRoot "/usr/local/apache" > ServerName localhost > PidFile /var/run/httpd.pid > Timeout 300 > KeepAlive On > MaxKeepAliveRequests 100 > KeepAliveTimeout 15 > <IfModule prefork.c> > StartServers 5 > MinSpareServers 5 > MaxSpareServers 20 > ServerLimit 20000 > MaxClients 41 > MaxRequestsPerChild 10000 > </IfModule> > <IfModule perchild.c> > NumServers 5 > StartThreads 5 > MinSpareThreads 5 > MaxSpareThreads 10 > MaxThreadsPerChild 20 > </IfModule> > Listen 80 > User www > Group www > ServerAdmin y...@example.com > UseCanonicalName Off > DocumentRoot "/usr/local/apache/htdocs" > <Directory "/usr/local/apache/htdocs>" > Options FollowSymLinks ExecCGI > AllowOverride none > Order allow,deny > Allow from all > </Directory> > UserDir diabled > ErrorLog /var/log/error_log > LogLevel warn > <Directory "/usr/local/apache/cgi-bin>" > AllowOverride None > Options None > Order allow,deny > Allow from all > </Directory> > TypesConfig conf/mime.types > DefaultType text/plain > <IfModule mod_mime_magic.c> > MIMEMagicFile conf/magic > </IfModule> > DirectoryIndex web.cgi > > AddHandler cgi-script .cgi > HostnameLookups Off > > ServerTokens Full > ServerSignature On > ReadmeName README.html > HeaderName HEADER.html > IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t > > BrowserMatch "Mozilla/2" nokeepalive > BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 > BrowserMatch "RealPlayer 4\.0" force-response-1.0 > BrowserMatch "Java/1\.0" force-response-1.0 > BrowserMatch "JDK/1\.0" force-response-1.0 > BrowserMatch "Microsoft Data Access Internet Publishing Provider" > redirect-caref > BrowserMatch "^WebDrive" redirect-carefully > BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully > BrowserMatch "^gnome-vfs" redirect-carefully > > Listen 443 > <IfDefine SSL> > AddType application/x-x509-ca-cert .crt > AddType application/x-pkcs7-crl .crl > SSLPassPhraseDialog builtin > SSLSessionCache dbm:/var/log/ssl_scache > SSLSessionCacheTimeout 300 > SSLMutex file:/var/log/ssl_mutex > SSLRandomSeed startup builtin > SSLRandomSeed connect builtin > SSLCryptoDevice cryptodev > <VirtualHost _default_:443> > DocumentRoot "/usr/local/apache/htdocs" > ServerName www.example.com > ServerAdmin y...@example.com > ErrorLog /var/log/error_log > TransferLog /var/log/access_log > SSLEngine on > SSLCipherSuite > ALL:!ADH:!EXPORT56:-RC4:+AES:+DES:+3DES:+RSA:-RC2:-IDEA:+HIGH:+ME > SSLCertificateFile /etc/cert/default > SSLCertificateKeyFile /etc/cert/default.prv > <Files ~ "\.(cgi|shtml|phtml|php3?)$"> > SSLOptions +StdEnvVars > </Files> > <Directory "/usr/local/apache"> > SSLOptions +StdEnvVars > </Directory> > SetEnvIf User-Agent ".*MSIE.*" \ > nokeepalive ssl-unclean-shutdown \ > downgrade-1.0 force-response-1.0 > </VirtualHost> > </IfDefine> > > > Thanks in advance. > > Best regards > honercek > >