[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#216242: apache: other modules re-ordering problems.



Package: apache
Version: 1.3.28-4
Severity: normal
Followup-For: Bug #216242

I checked my apache configuration today and found that all of my virtual
hosts were broken.  I think the problem was related to this poster's,
in that resolving '/' on all of them was breaking due to directory
index problems.  A typical problem was this:

[Fri Oct 17 14:05:29 2003] [error] [client 66.30.195.189] Directory index forbidden by rule: /usr/cananian/ACME/COMPLETE/www.acme-corp.com

and other sites had directory listings instead of home pages, etc.

I isolated the problem to modules.conf: the existing one caused these
problems, but replacing it with the "modules.conf.old" backup sitting
in /etc/apache fixed all of the problems.  I extracted the LoadModules
lines from the httpd.conf.old backup I had and used that for modules.conf,
and that worked as well.

The only differences between these three files was the order of the
LoadModules directive.  I've included all three below, as
'modules.conf.new' (broken), 'modules.conf.old' (backup, timestampped
Oct 16 3:25am), and 'modules.conf.test' (extracted from my httpd.conf).
I verified that removing comments and sorting yields identical contents.

There are two bugs, as far as I can tell:
  a) apache 1.3.28-4 re-orders the LoadModule directives compared to
     earlier versions of the apache package (modules.conf.old).
     In particular, it seems to emit them in reverse order.
  b) Earlier versions of apache (the one that generated modules.conf.old
     from my original httpd.conf file) seem to have re-ordered
     modules definitions during the conversion as well, but in a more
     benign manner: only the position of digest_auth_module was
     changed.

If reordering LoadModules directives can cause system breakage, then
the apache package should *never* re-order them.  This means that
when it converts a httpd.conf file to debconf it should respect the
order of the httpd.conf *exactly*, and it should certainly always
emit the debconf'd modules exactly.

I'd be willing to believe that this is, rather, a bug in apache
in that the order of LoadModule "shouldn't" matter... but the
debconf changes aren't safe as long as the order of LoadModule
does matter.
  --scott

============== modules.conf.old ====================
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
LoadModule digest_auth_module /usr/lib/apache/1.3/mod_auth_digest.so
====================================================

============= modules.conf.new =====================
# Autogenerated file - do not edit!
# This file is maintained by the apache package.
# To update it, run the command:
#    /usr/sbin/modules-config apache
LoadModule digest_auth_module /usr/lib/apache/1.3/mod_auth_digest.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
====================================================

====================== modules.conf.test ==================
LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so
LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so
LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so
LoadModule status_module /usr/lib/apache/1.3/mod_status.so
LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so
LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so
LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so
LoadModule access_module /usr/lib/apache/1.3/mod_access.so
LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so
LoadModule digest_auth_module /usr/lib/apache/1.3/mod_auth_digest.so
LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so
LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so
LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so
===========================================================

-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux sincerity-forever 2.4.16-686-smp #1 SMP Wed Nov 28 10:00:01 EST 2001 i686
Locale: LANG=C, LC_CTYPE=C

Versions of packages apache depends on:
ii  apache-common                 1.3.28-4   Support files for all Apache webse
ii  debconf                       1.3.15     Debian configuration management sy
ii  dpkg                          1.10.15    Package maintenance system for Deb
ii  libc6                         2.3.2-8    GNU C Library: Shared libraries an
ii  libdb4.1                      4.1.25-9   Berkeley v4.1 Database Libraries [
ii  libexpat1                     1.95.6-6   XML parsing C library - runtime li
ii  libmagic1                     4.04-1     File type determination library us
ii  logrotate                     3.6.5-2    Log rotation utility
ii  mime-support                  3.23-1     MIME files 'mime.types' & 'mailcap
ii  perl [perl5]                  5.8.1-2    Larry Wall's Practical Extraction 

-- debconf information:
  apache/server-port: 80
  apache/init: true
* apache/enable-suexec: true
  apache/document-root: /var/www
  apache/server-admin: webmaster@sincerity-forever.lcs.mit.edu
  apache/server-name: sincerity-forever.lcs.mit.edu




Reply to: