www-apache-bugdb mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Franz Sedlmaier <...@camline.com>
Subject mod_rewrite/8269: RewriteMap: no dynamic handling of external rewriting programs
Date Thu, 30 Aug 2001 10:12:41 GMT

>Number:         8269
>Category:       mod_rewrite
>Synopsis:       RewriteMap: no dynamic handling of external rewriting programs
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apache
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Thu Aug 30 03:20:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     fse@camline.com
>Release:        1.3.20
>Organization:
apache
>Environment:
Linux imap 2.2.13 #1 Mon Nov 8 15:51:29 CET 1999 i686 unknown
>Description:
#Dynamic load balancing is set as following:
 MinSpareServers 5
 MaxSpareServers 10
 StartServers 5

#Following external rewriting programs are used:
 RewriteMap log-access prg:/usr/local/apache/x/count.pl
 RewriteMap check-cert prg:/usr/local/apache/x/crypt.pl
 RewriteMap check-user prg:/usr/local/apache/x/ldap.pl
 RewriteMap check-auth prg:/usr/local/apache/x/auth.pl

#check authorization of users
 RewriteCond %{REMOTE_HOST} ^([a-z]+)[0-9]?\.dummy\.com$
 RewriteCond ${check-user:%1;uid} (.+) 
 RewriteRule .* - [E=REMOTE_USER:%1,S=2]

**********************
After some time, there are 10 apache servers running, but there are
only 5 instances of each external rewriting program. The result of a ps
 root     27913     1  0 Aug29 ?        00:00:00 /usr/local/apache/bin/httpd -DSSL
 root     27919 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/count.pl
 root     27920 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/crypt.pl
 root     27921 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/ldap.pl
 root     27922 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/auth.pl
 root     27923 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/count.pl
 root     27924 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/crypt.pl
 root     27925 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/ldap.pl
 root     27926 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/auth.pl
 root     27927 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/count.pl
 root     27928 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/crypt.pl
 root     27929 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/ldap.pl
 root     27930 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/auth.pl
 root     27931 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/count.pl
 root     27932 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/crypt.pl
 root     27933 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/ldap.pl
 root     27934 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/auth.pl
 root     27935 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/count.pl
 root     27936 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/crypt.pl
 root     27937 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/ldap.pl
 root     27938 27913  0 Aug29 ?        00:00:00 perl /usr/local/apache/x/auth.pl
 wwwrun   27939 27913  0 Aug29 ?        00:00:58 /usr/local/apache/bin/httpd -DSSL
 wwwrun   27940 27913  0 Aug29 ?        00:01:18 /usr/local/apache/bin/httpd -DSSL
 wwwrun   27941 27913  0 Aug29 ?        00:01:07 /usr/local/apache/bin/httpd -DSSL
 wwwrun   27942 27913  0 Aug29 ?        00:00:54 /usr/local/apache/bin/httpd -DSSL
 wwwrun   27943 27913  0 Aug29 ?        00:01:13 /usr/local/apache/bin/httpd -DSSL
 wwwrun   27949 27913  0 Aug29 ?        00:01:06 /usr/local/apache/bin/httpd -DSSL
 wwwrun   27950 27913  0 Aug29 ?        00:01:04 /usr/local/apache/bin/httpd -DSSL
 wwwrun   27951 27913  0 Aug29 ?        00:00:59 /usr/local/apache/bin/httpd -DSSL
 wwwrun   29240 27913  0 Aug29 ?        00:00:57 /usr/local/apache/bin/httpd -DSSL
 wwwrun    2592 27913  0 Aug29 ?        00:00:54 /usr/local/apache/bin/httpd -DSSL 

The problem: Two instances of the apache server seems to call ONE instance of the
external rewriting program. If the apache servers are called exactly at the same
time, the result of the external rewriting program is exchanged sometimes!!!
e.g. the environment variable REMOTE_USER (example above) gets the false value.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
 [In order for any reply to be added to the PR database, you need]
 [to include <apbugs@Apache.Org> in the Cc line and make sure the]
 [subject line starts with the report component and number, with ]
 [or without any 'Re:' prefixes (such as "general/1098:" or      ]
 ["Re: general/1098:").  If the subject doesn't match this       ]
 [pattern, your message will be misfiled and ignored.  The       ]
 ["apbugs" address is not added to the Cc line of messages from  ]
 [the database automatically because of the potential for mail   ]
 [loops.  If you do not include this Cc, your reply may be ig-   ]
 [nored unless you are responding to an explicit request from a  ]
 [developer.  Reply only with text; DO NOT SEND ATTACHMENTS!     ]
 
 


Mime
View raw message