Apache HTTP Server Version 1.3

Known Bugs in Apache

The most up-to-date resource for bug tracking and information is the Apache bug database. Significant bugs at release time will also be noted there. If you are running a 1.2 beta release or version 1.1.3 or earlier and think you have found a bug, please upgrade to 1.2. Many bugs in early versions have been fixed in 1.2. It is also appreciated if you could check the latest 1.3 beta releases, or at least review the CHANGES file for it and ensure that your problem has not already been corrected.

This document is not a complete list of known bugs, but simply a list of some of the more common ones. Be sure to check the bug database before assuming that if it isn't listed here it isn't reported or fixed.

See Also: Compatibility notes, and our list of known client problems.

Apache 1.3b5 Bugs

  1. Certain mod_rewrite configurations do not work correctly. Apply this patch to fix the problem. See PR#1847 for more details.
  2. Using multiple arguments to UserDir does not work correctly. Apply this patch to fix the problem. See PR#1850 for more details.
  3. absoluteURI parsing is broken, so the proxy won't work. Apply this patch to fix the problem. See PR#1889 for more details
  4. Win32 only Use of #! at the start of a CGI script file does not work unless the interpreter filename includes the extension (e.g. use #!c:/bin/perl.exe instead of #!c:/bin/perl).
  5. NT only When installed as a service, Apache expects to find its ServerRoot at \Apache on the system disk. See PR#1489.
  6. Win32 only The Alias directive does not work if the target is a root directory, e.g. D:/. See PR#1558.
  7. Win32 only Repeated concurrent requests to a CGI program can cause Apache to lock-up. See PR#1129 and PR#1607.

Apache 1.3b3 Bugs

  1. The error_log may contain "(0)Unknown error: mmap_handler: mmap failed" errors. Ignore them, it is a logic error and does not indicate any problem. This will be corrected in a later beta.
  2. Servers operating in inetd mode will not properly implement timeouts. (Neither do servers operating with the -X command line switch for debugging.) This will be corrected in a later beta. A workaround for now is to edit src/main/httpd.h and remove the definition of OPTIMIZE_TIMEOUTS near the bottom.
  3. Win32 only: Building from source may fail because the buildmark.obj file does not exist. Edit Makefile.nt and replace the line del CoreR\buildmark.obj with -del CoreR\buildmark.obj (and similarly for del CoreD\buildmark.obj). See PR#1473.
  4. Solaris 2.6 users may have troubles compiling the server with gcc. As is frequently the case with gcc compilation troubles, this is the result of an improperly built gcc. The gcc for solaris 2.6 found at www.sunfreeware.com is now built with the release version of solaris 2.6. The release version of solaris 2.6 changed a few header files enough that the beta-built gcc won't work with it. There are two workarounds mentioned in PR#1336. This is not an Apache bug, and no code will be changed to deal with it.
  5. NT only When installed as a service, Apache expects to find its ServerRoot at \Apache on the system disk. See PR#1489.
  6. Win32 only The Alias directive does not work if the target is a root directory, e.g. D:/. See PR#1558.
  7. Win32 only Repeated concurrent requests to a CGI program can cause Apache to lock-up. See PR#1129 and PR#1607.
  8. Win32 only Apache requires the file MSVCRT.DLL to run. This is a Microsoft redistributable file required for all C programs compiled by MSVC++. Many other programs will require it, so it is already installed on most systems. If Apache will not start because this file is missing you can download it from ftp://ftp.microsoft.com/Softlib/MSLFILES/msvcrt.exe. See PR#1736.

Apache 1.3b2 Bugs

Win32 only

  1. CGI scripts that are called with information appended to the script name that does not have an "=" in it do not work. See PR#1030
  2. Passwords stored in htpasswd files need to be stored in plain text, since we do not yet have a crypt() under Win32.
  3. On Windows 95, DirectoryIndex does not work. See PR#1266
  4. On some versions of Windows 95, CGI scripts fail and paths given with "#!" must contains \ instead of /.
  5. When a CGI starts with "#!" to indicate an interpreter there must be no space between the #! and the path. See PR#1101
  6. If the CGI program cannot be run Apache logs a "premature end-of-headers" error instead of an error about running the program. See PR#1257

Unix only

  1. The USE_FLOCK_SERIALIZED_ACCEPT define is completely broken and does not work at all. It has been this way since birth. A fix is pending.

Apache 1.3a1 Bugs

  1. The Listen directive does not work when running under Windows.
  2. For some reason, mod_isapi does not work (with Windows) when compiled using the Release setting; it will crash the server whenever you access an ISA DLL. It works fine when the server is compiled with Debug.

Apache 1.2 Bugs

Bugs still present in 1.2.4

  1. On some architectures if your configuration uses multiple Listen directives then it is possible that the server will starve one of the sockets while serving hits on another. The work-around is to add -DUSE_FLOCK_SERIALIZED_ACCEPT to the EXTRA_CFLAGS line in your Configuration and rebuild. (If you encounter problems with that, you can also try -DUSE_FCNTL_SERIALIZED_ACCEPT.) This affects any architecture that doesn't use one of the USE_xxxxx_SERIALIZED_ACCEPT definitions, see the source file conf.h for your architecture. This is being tracked as PR#467.

    To resolve this problem, we are adding one of the above settings to the default settings for platforms as we discover which is appropriate for them. New as of 1.3b3: the server will issue a warning when your architecture/config are subject to this bug. The fixes and such are described in the PORTING file. We are closing out this bug.

  2. The PATH_INFO part of a request URI cannot include the sequence %2f. This will be tracked as PR#543.
  3. Users of early 1.2 betas reported problems with many connections stuck in the FIN_WAIT_2 state due to server timeouts. Several changes were made during the beta testing of 1.2 to reduce this problem as much as possible, although you may still see sockets in FIN_WAIT_2 state due to network or operating system issues outside the control of Apache. See our FIN_WAIT_2 page for more details.

    SunOS4 has a kernel bug in the allocation of memory for the mbuf table. When it fills up, the result is a Panic the next time any routine tries to set something in an imaginary mbuf beyond the range of the table. Due to buggy browser behavior and the lack of a FIN_WAIT_2 timeout on SunOS4, "KeepAlive Off" is necessary to avoid filling up the mbuf table on busy sites.

  4. Compiling on Solaris 2 with SunSoft's C compiler gives the warning "mod_include.c", line 1123: warning: end-of-loop code not reached. This is a bogus warning and can be ignored. See PR#681.
  5. If compilation fails complaining about "unknown symbol __inet_ntoa()" then you have probably installed version 8 of bind. You will need to explicitly link with the bind library by adding -lbind to EXTRA_LDFLAGS in Configuration. See PR#616 and the Apache FAQ. This is not a bug in Apache.
  6. The message "created shared memory segment #730499" in error_log is not an error and should be ignored. See PR#696.

Fixed in 1.2.4:

  1. On Solaris 2.x the server will stop running after receiving a SIGHUP. Four workarounds exist (choose one):

    This problem was tracked as PR#832.

  2. (Exists in 1.2.0 and in 1.2.1 after either of the NO_SLACK or patch provided by the previous bug are applied.) Solaris 2.5.1 (and probably other versions of Solaris) appear to have a race condition completely unrelated to all the others. It is possible during a SIGHUP that the server will fail to start because it will not be able to re-open its sockets. To our knowledge this has only shown up during testing when we pummel the server with as many SIGHUP requests per second as we can. This appears unrelated to the similar sounding bug described in PR#832.

Fixed in 1.2.1

  1. Workaround added There appears to be a problem on BSDI 2.1 with large numbers of virtual hosts. This appears similar to a file-descriptor limit but BSDI should not have this problem. This will be tracked as PR#611. See also the Apache FAQ.
  2. Workaround added. Solaris 2 has problems with large numbers of virtual hosts. This is because of an operating system limit of 256 file pointers, not due to Apache. See also the Apache FAQ.
  3. Apache's Content Negotiation should pick the smallest variant if there are several that are equally acceptable. A bug in 1.2 means it no longer does this unless all the variants have character sets. This patch fixes this problem. It also fixes the problem which makes Apache pick the last equally acceptable variant instead of the first. This will be tracked as PR#94.
  4. Compilation fails on SCO3 when using gcc instead of cc, complaining with "gcc: noinline: No such file or directory". Fix is given in PR#695.

Apache HTTP Server Version 1.3

Index Home