Bug 102931

Summary: mod_throttle does not work
Product: [Retired] Red Hat Linux Reporter: Fred Rogers <adam>
Component: mod_throttleAssignee: Nalin Dahyabhai <nalin>
Status: CLOSED CANTFIX QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 7.3CC: mattdm
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-10-18 16:22:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Fred Rogers 2003-08-22 18:56:22 UTC
Description of problem:

mod throttle does not throttle bandwidth for user accounts on a stock 7.3
system(plus updates).

Version-Release number of selected component (if applicable):
mod_throttle-3.1.2-5.i386.rpm

How reproducible:
every time

Steps to Reproduce:
1.install a 7.3 system plus updates, including apache and mod_throttle rpms
2.make a simple throttle configuration file for one user with a low throttle for
testing:

# mod_throttle configurations

ThrottleMaxDelay 25

ThrottleIndicator green 50
ThrottleIndicator yellow 80
ThrottleIndicator red 95

ThrottleRefresh 300

ThrottleRuntimeFile /var/run/throttle.state

<Location /throttle-status>
    SetHandler throttle-status
    Order deny,allow
    Allow from all
    Allow from internal.webquarry.com ns.webquarry.com
</Location>

<Location /throttle-me>
    SetHandler throttle-me
</Location>

<Location /~*/throttle-me>
    SetHandler throttle-me
</Location>

ThrottleUser useracct Volume 10M 30d

3.include throttle.conf in httpd.conf make sure httpd.conf loads the throttle
modules as verified by server-info

4.populate the public_html directory of useracct's account with some sample html
docs.

5.send some traffic to http://yourserver/~useracct

6.observe their throttles at http://yourserver/throttle-status and
http://yourserver/~useracct/throttle-me
    
Actual results:once the user's traffic goes over hte throttle limits set in
throttle.conf, throttle should stop honoring requests for users files, it keeps
on serving files even though the throttle-status clearly shows that the user is
over quota.  Interestingly enough, mod_throttle will stop serving requests for
the throttle-me file when the user is over quota, but not any other file.  This
is exactly backwards of its intended operation, its supposed to stop serving all
files but the throttle-me file so that the user can see when they are over quota


Expected results: see above


Additional info:

Comment 1 Fred Rogers 2003-08-29 23:30:03 UTC
I have some new info.

I downloaded and built apache, mod_ssl, php and mod_throttle from scratch and it works fine.  I 
built everything as closely to how redhat does as possible.  I tore apart their rpm spec files and did 
the layout exactly how they have it.

The key difference is this: 
There are a bunch of patches that redhat does to the apache source according to the spec file-

Patch0: mod_ssl-%{mod_ssl_ver}/pkg.sslcfg/sslcfg.patch
Patch1: apache_1.3.23-config.patch
Patch2: apache_%{version}-eapi-%{mod_ssl_ver}.patch
Patch3: apache-1.3.11-apxs.patch
Patch4: apache_1.3.14-mkstemp.patch
Patch5: apache_1.3.14-redhat.patch
Patch6: apache_1.3.20-apachectl-init.patch
Patch7: mod_ssl-%{mod_ssl_ver}/pkg.sslsup/sslsup.patch
Patch8: apache_1.3.23-dbmdb.patch
Patch9: apache_1.3.27-db.patch

I'm not a programmer and have no idea what these do but it will compile without them.  I have a 
feeling that something in one of these patches is what is causing mod_throttle to operate 
backwards.  Most of the patches appear to be for prior versions of apache and don't get applied as 
far as I can tell.

The ones that do apply appear to be:

apache_1.3.27-db.patch
----------------------
The "ndbm" Perl links with (the dbmmanage script is written in Perl) is actually
Berkeley DB, so force DBM to be Berkeley DB for httpd, too.

apache_1.3.27-eapi-2.8.12.patch
-------------------------------
*I strongly suspect this patch is the culprit*
No description but appears to patch the following files
apache_1.3.27/src/ap/ap_ctx.c
apache_1.3.27/src/ap/ap_hook.c
apache_1.3.27/src/ap/ap.mak
apache_1.3.27/src/ap/ap_mm.c
apache_1.3.27/src/ap/Makefile.tmpl
apache_1.3.27/src/ApacheCore.def
apache_1.3.27/src/Configuration.tmpl
apache_1.3.27/src/Configure
apache_1.3.27/src/include/ap_alloc.h
apache_1.3.27/src/include/ap_ctx.h
apache_1.3.27/src/include/ap_hook.h
apache_1.3.27/src/include/ap_mm.h
apache_1.3.27/src/include/ap_mmn.h
apache_1.3.27/src/include/buff.h 
apache_1.3.27/src/include/http_conf_globals.h
apache_1.3.27/src/include/http_config.h
apache_1.3.27/src/include/httpd.h
apache_1.3.27/src/main/alloc.c
apache_1.3.27/src/main/buff.c
apache_1.3.27/src/main/http_config.c
apache_1.3.27/src/main/http_main.c
apache_1.3.27/src/main/http_protocol.c
apache_1.3.27/src/main/http_request.c
apache_1.3.27/src/modules/proxy/mod_proxy.c
apache_1.3.27/src/modules/proxy/proxy_http.c
apache_1.3.27/src/modules/standard/mod_log_config.c
apache_1.3.27/src/modules/standard/mod_rewrite.c
apache_1.3.27/src/modules/standard/mod_so.c
apache_1.3.27/src/modules/standard/mod_status.c
apache_1.3.27/src/README.EAPI
apache_1.3.27/src/support/apxs.pl
apache_1.3.27/src/support/httpd.exp

Comment 2 Bill Nottingham 2006-08-05 04:04:15 UTC
Red Hat apologizes that these issues have not been resolved yet. We do want to
make sure that no important bugs slip through the cracks.

Red Hat Linux 7.3 and Red Hat Linux 9 are no longer supported by Red Hat, Inc.
They are maintained by the Fedora Legacy project (http://www.fedoralegacy.org/)
for security updates only. If this is a security issue, please reassign to the
'Fedora Legacy' product in bugzilla. Please note that Legacy security update
support for these products will stop on December 31st, 2006.

If this is not a security issue, please check if this issue is still present
in a current Fedora Core release. If so, please change the product and version
to match, and check the box indicating that the requested information has been
provided.

If you are currently still running Red Hat Linux 7.3 or 9, please note that
Fedora Legacy security update support for these products will stop on December
31st, 2006. You are strongly advised to upgrade to a current Fedora Core release
or Red Hat Enterprise Linux or comparable. Some information on which option may
be right for you is available at http://www.redhat.com/rhel/migrate/redhatlinux/.

Any bug still open against Red Hat Linux 7.3 or 9 at the end of 2006 will be
closed 'CANTFIX'. Again, if this bug still exists in a current release, or is a
security issue, please change the product as necessary. We thank you for your
help, and apologize again that we haven't handled these issues to this point.


Comment 3 Bill Nottingham 2006-10-18 16:22:28 UTC
Red Hat Linux is no longer supported by Red Hat, Inc. If you are still
running Red Hat Linux, you are strongly advised to upgrade to a
current Fedora Core release or Red Hat Enterprise Linux or comparable.
Some information on which option may be right for you is available at
http://www.redhat.com/rhel/migrate/redhatlinux/.

Closing as CANTFIX.