httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Kraemer <>
Subject Flame bait: Apache-2.0 on Unix is almost unusable.
Date Thu, 25 Jan 2001 20:43:10 GMT
Hi everyone,

A bit frustrating it is to me that so much time has been spent on
Apache 2.0, rearranging, writing, discussing, patching to and fro,
but the basic and most important problems have not been addressed
in quite a while. To me, that code is definitely NOT Beta quality.

On the computer fair "SYSTEMS 2000" last october, we had an apache booth,
and on the machine we had there, I tried to compile apache-2.0a7 on Linux.
No problem, but when I ran it, and did some tests, it failed so miserably
that I decided not to show it to any of the Apache "customers".

Now I spent an evening on re-checking the current status (2 Alpha versions
have been published in the meantime), but the obvious errors I noticed
back then have not changed a bit!

a) fatal protocol errors, leading to the browser hanging and waiting
b) extra header output, leading to a garbled "It works" page which shows
   everyone at the first glance that this is ALPHA code.
c) Intolerable behavior when trying to stop or restart the server to
   have it reread its configuration files.

Even though (almost) all discussions on new-httpd circle on the philosophies
behind the next incompatible API change for Apache-2.0, nobody apparently
even noticed these bugs, which I observed on Linux just as well as on FreeBSD
after minutes of using Apache 2.0.
The STATUS file does mumble a bit about mod_negotiation, but does not
list the fatal behavior as a SHOWSTOPPER, which -to me, at least- it is.


Here's my observations:

== Result of Apache-2.0b1-dev tests on 25-jan-2001, (platform FreeBSD4.2) ==

* When I access Apache/2.0b1-dev, I see duplicate header lines, like in:
  % echo GET HTTP/1.0\\n | nc localhost 8007
  HTTP/1.1 200 OK
  Date: Thu, 25 Jan 2001 19:29:35 GMT
  Server: Apache/2.0b1-dev (Unix)
  Content-Location: index.html.en
  Vary: negotiate,accept-language,accept-charset
  TCN: choice
  Last-Modified: Sat, 20 Jan 2001 02:01:20 GMT
  ETag: "1588a-51f-ce0b3c00;ecb9dd00"
  Accept-Ranges: bytes
  Content-Length: 1311
  Connection: close
  Content-Type: Accept-Ranges: bytes
  Content-Length: 1311                 <---------?!??!!
  Connection: close                    <---------?!??!!
  Content-Language: en                 <---------?!??!!
  Expires: ngth: 1311	               <---------!??!?!!!!!!!!!!!
  Connection: close                    <---------?!??!!
  Content-Type: Accept-Ranges: bytes   <---------?!??!!
  Content-Length: 1311                 <---------?!??!!
  Connection: close                    <---------?!??!!
  Content-Language: en                 <---------?!??!!
    <TITLE>Test Page for Apache Installation</TITLE>

* Interestingly, this mangled header does NOT appear when mod_negotiation
  is bypassed: retrieving "/" works, but "/" does not. So this
  is a problem caused by mod_negotiation.

* When trying to gracefully restart the server, something hangs.
  A subsequent "apachectl stop" says "httpd stopped", yet the monitor process
  keeps respawning client processes. Even a "kill -TERM" does not help.
  The only way to recover is a manual "kill -9".

* The processes do not even react on -HUP, -TERM, -SEGV
  -- what the f§$! is going on?

* When retrieving /manual/mod/core.html (97kB), I notice that the file
  looks truncated.  However, when doing:
  % echo GET \
     sed -n '/^</,$p' | tail +2 > tmp.html
  % cmp tmp.html manual/mod/core.html
  tmp.html manual/mod/core.html differ: char 16385, line 438  <--------!!!!

  Astonishing that a difference should occur so close to a 16kB boundary...
  And a diff gives me:

  % diff tmp.html core.html | head -20
  < of that director<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
  < <HTML>
  < <HEAD>
  < <TITLE>Apache Core Features</TITLE>
  < </HEAD>
  < <!-- Background white, links blue (unvisited), navy (visited), red (active) -->
  < <BODY
  <  TEXT="#000000"
  <  LINK="#0000FF"
  <  VLINK="#000080"
  <  ALINK="#FF0000"
  < >
  < <!--#include virtual="header.html" -->
  > of that directory. Any directive which is allowed in a directory
  > context may be used. <EM>Directory</EM> is either the full path to a directory,
  > or a wild-card string. In a wild-card string, `?' matches any single character

  Look at the garbled file, repeating part of the beginning.
<>    |       Fujitsu Siemens
       <>              |   81730  Munich,  Germany

View raw message