Commit Graph

156 Commits

Author SHA1 Message Date
38f3c64c2f Re-instate balancer merge (for the time being) but force
persistence if the top-level server has it defined....


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1387684 13f79535-47bb-0310-9956-ffa450edef68
2012-09-19 17:21:55 +00:00
1c55455c36 Use identifying server_rec info when we know we have
unique and useful data :)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1387444 13f79535-47bb-0310-9956-ffa450edef68
2012-09-19 03:51:25 +00:00
664dd95af2 Persist local balancer-manager changes across restart/graceful.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1387110 13f79535-47bb-0310-9956-ffa450edef68
2012-09-18 12:15:50 +00:00
ba90b1969f No rv here.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1374157 13f79535-47bb-0310-9956-ffa450edef68
2012-08-17 06:30:21 +00:00
94b3a2b552 mod_proxy_balancer: Restore balancing after a failed worker has
recovered when using lbmethod_bybusyness.

PR: 48735

Markus Stoll and Adam C both submitted patches against 2.2.x
to bug 48735.  Compared with those two, this solution

1. resets the busy field in the error-ed worker at the end of
   the request instead of at recovery time
2. leaves the lbstatus field alone
3. covers all possible scenarios where the busy field in the
   error-ed worker needs to be adjusted, since a cleanup to
   perform the decrement is registered at the point of the
   increment


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1366344 13f79535-47bb-0310-9956-ffa450edef68
2012-07-27 11:50:25 +00:00
e948002f96 * Add the forcerecovery balancer parameter that determines if recovery for
balancer workers without considering the retry value of workers is enforced.
  There might be cases where an already overloaded backend can get into deeper
  trouble if the recovery of all workers is enforced without considering the
  retry parameter of each worker


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1306409 13f79535-47bb-0310-9956-ffa450edef68
2012-03-28 15:22:40 +00:00
b0a64838ac Stray/confusing "recovery" in this failonstatus=XXX error message seems
to be a copy/paste error.



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1299738 13f79535-47bb-0310-9956-ffa450edef68
2012-03-12 17:03:39 +00:00
9f1045e8b5 Fix PR52402. Check if the shared memory was already created for this proxy_server_conf
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1240181 13f79535-47bb-0310-9956-ffa450edef68
2012-02-03 14:13:23 +00:00
a631bc9edb oops, this got forgotten when copy/paste from dev branch
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1240171 13f79535-47bb-0310-9956-ffa450edef68
2012-02-03 13:53:20 +00:00
7fac08440e C/C++ 101 on how to traverse the array of pointers ;). Fix core
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1240164 13f79535-47bb-0310-9956-ffa450edef68
2012-02-03 13:47:59 +00:00
76f782e188 Various code cleanup to avoid compiler, cppcheck, or clang warnings:
modules/debugging/mod_firehose.c: Make some internal functions static
                                  (to do: logs_cleanup() is unused)

modules/filters/mod_charset_lite.c: Remove dead assignments

modules/filters/mod_include.c: likewise

modules/metadata/mod_usertrack.c: likewise

modules/proxy/mod_proxy_ftp.c: likewise

modules/ssl/ssl_engine_pphrase.c: likewise

modules/proxy/mod_proxy_balancer.c: likewise;
                                    Remove NULL check that can never happen

modules/proxy/proxy_util.c: Axe NULL-check that can never happen and if it
                            would, it would just mask another bug

os/unix/unixd.c: likewise

modules/http/http_filters.c: Remove sub-condition that is always true

modules/lua/mod_lua.c: Add default cases to switch statements

modules/generators/mod_autoindex.c: Unsigned value can never be < 0

server/util_expr_eval.c: Fix compiler warnings with VC and on OS2



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1220493 13f79535-47bb-0310-9956-ffa450edef68
2011-12-18 17:52:59 +00:00
26d5fb7164 Add some more log message tags
Remove some log message tags from ap_log_* calls that log lots of
different error messages, in particular the config parsing errors.
Not sure how we should handle those.

ssl_util.c: Downgrade some dynamic locking messages from level DEBUG
to TRACE1-3



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1210252 13f79535-47bb-0310-9956-ffa450edef68
2011-12-04 22:09:24 +00:00
6f6ecbeae7 Change the provider names to match the module names:
mod_slotmem_shm: shared -> shm
mod_socache_memcache: mc -> memcache


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1210221 13f79535-47bb-0310-9956-ffa450edef68
2011-12-04 21:03:34 +00:00
92e366007c Add lots of unique tags to error log messages
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1209766 13f79535-47bb-0310-9956-ffa450edef68
2011-12-02 23:02:04 +00:00
0182b1654f mod_proxy: Make ap_proxy_retry_worker() into an optional function. Allows
mod_lbmethod_bybusyness, mod_lbmethod_byrequests, mod_lbmethod_bytraffic
and mod_lbmethod_heartbeat to be loaded without mod_proxy yet being present,
which happens when modules are loaded in alphabetical order.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1209754 13f79535-47bb-0310-9956-ffa450edef68
2011-12-02 22:42:39 +00:00
9846e4bac9 use a style sheet... ideally we would pull one off the filesystem,
but for now...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1208411 13f79535-47bb-0310-9956-ffa450edef68
2011-11-30 13:15:24 +00:00
d2e320f509 Logic which makes the balancer "active" or not... so we can turn them
off and on as needed.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1207926 13f79535-47bb-0310-9956-ffa450edef68
2011-11-29 15:36:11 +00:00
71f487a7b9 Expose the path that the balancer handles...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1207582 13f79535-47bb-0310-9956-ffa450edef68
2011-11-28 20:46:53 +00:00
984c3a345c Move useful and shared balancer stuff to the shm slot...
Provide hooks for post-config/runtime addition of
balancers.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1206286 13f79535-47bb-0310-9956-ffa450edef68
2011-11-25 19:28:14 +00:00
fa862b3f7e Allow compile time changes of field sizes and be more
"clear" regarding the diff between balancer and worker slots...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1206268 13f79535-47bb-0310-9956-ffa450edef68
2011-11-25 17:32:03 +00:00
8ec7f5c5bf great proxy logging cleanup:
* remove "proxy:", "FCGI", etc. prefixes and pid which are now
    included in the error log format

  * propagate frontend request's logconfig to backend request
    
  * use ap_log_rerror where possible
    
  * remove obsolete APLOG_NOERRNO


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1203859 13f79535-47bb-0310-9956-ffa450edef68
2011-11-18 21:41:09 +00:00
427c85bd23 Cleanup effort in prep for GA push:
Trim trailing whitespace... no func change



git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1174751 13f79535-47bb-0310-9956-ffa450edef68
2011-09-23 13:39:32 +00:00
7eb1caed9a fix def'n of AP_SLOTMEM_PROVIDER_VERSION, use it
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1146737 13f79535-47bb-0310-9956-ffa450edef68
2011-07-14 14:47:59 +00:00
e075565180 Add in BalancerGrowth and its functionality... this lays
the framework for adding additional Balancers: post-config
by allowing for shm growth.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1125451 13f79535-47bb-0310-9956-ffa450edef68
2011-05-20 16:29:48 +00:00
2aef21903c Cleanup... most don't need apr_hooks.h at all...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1101067 13f79535-47bb-0310-9956-ffa450edef68
2011-05-09 15:36:32 +00:00
4e65550633 better error message
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1088620 13f79535-47bb-0310-9956-ffa450edef68
2011-04-04 13:37:57 +00:00
b8999572c0 Make the 'need to reset' more generic by extending its reach
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1087415 13f79535-47bb-0310-9956-ffa450edef68
2011-03-31 19:29:21 +00:00
6017c4a100 Better knowledge of when to adjust.
More info from b-m

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1087413 13f79535-47bb-0310-9956-ffa450edef68
2011-03-31 19:20:06 +00:00
5c1603996e If we change the LB method, or we take add in a new
balancermember ("enable" her), then we need to have the
LBmethod reset its params as required...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1087371 13f79535-47bb-0310-9956-ffa450edef68
2011-03-31 17:00:36 +00:00
4598f1a7d4 fix some grammar mistakes, mostly in comments
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1080821 13f79535-47bb-0310-9956-ffa450edef68
2011-03-12 00:35:39 +00:00
f0da266ae4 protect one-off boundary
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1073728 13f79535-47bb-0310-9956-ffa450edef68
2011-02-23 13:03:58 +00:00
63c7cfdf0d Be at least somewhat more RESTful... Use POST for changing stuff.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1073520 13f79535-47bb-0310-9956-ffa450edef68
2011-02-22 21:43:44 +00:00
aac783bdf5 No longer depend on how fork() works when laying out segments...
function pointers in shm are... nasty ;)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1072098 13f79535-47bb-0310-9956-ffa450edef68
2011-02-18 18:40:25 +00:00
385da96d50 Use ap_state_query() to fix many modules that were not correctly initializing
if they were not active during server startup but got enabled later during a
graceful restart (in which case they need to do all work during a single
config run).


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1070153 13f79535-47bb-0310-9956-ffa450edef68
2011-02-12 21:23:56 +00:00
1d0800cd28 move function...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1069381 13f79535-47bb-0310-9956-ffa450edef68
2011-02-10 13:29:53 +00:00
f67eea94fb Ugg... unbalanced workers *do* need a mutex as well (good catch Rüdiger!)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1068879 13f79535-47bb-0310-9956-ffa450edef68
2011-02-09 13:20:09 +00:00
efc583f6e7 typo
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1068873 13f79535-47bb-0310-9956-ffa450edef68
2011-02-09 13:00:00 +00:00
03ab1d60ca Squash error/warning about signed/unsigned comparison
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1068871 13f79535-47bb-0310-9956-ffa450edef68
2011-02-09 12:56:01 +00:00
84a5c9cd6f Remove the thread mutex from the worker... it really should be
in the balancer. Thus we have global and thread for the balancer.
Use global when updating the full, shm list of workers; use
thread when being local.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1068581 13f79535-47bb-0310-9956-ffa450edef68
2011-02-08 21:08:10 +00:00
68dcb0f789 Keep track of how many workers we've used so far... no need
to provide field to add another if no slots exist.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1068020 13f79535-47bb-0310-9956-ffa450edef68
2011-02-07 17:15:04 +00:00
96af650c42 Mutex around adding a new worker...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1067965 13f79535-47bb-0310-9956-ffa450edef68
2011-02-07 15:25:09 +00:00
2752756dd8 Lock around the time when we're mucking w/ balancers...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1067276 13f79535-47bb-0310-9956-ffa450edef68
2011-02-04 20:34:47 +00:00
55b9f8fba8 Here we go... we can now, via balancer-manager, add new
workers to existing balancers. Still work to be done,
like error checking that we aren't trying to add more
than we can (right now, it fails, but it would be nice
to handle it nicer), disabling and *deleting* workers
we don't want anymore, the actual drain method, etc...
but this is some major goodness.

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1067269 13f79535-47bb-0310-9956-ffa450edef68
2011-02-04 20:01:04 +00:00
85ac025790 might as well allow for the sticky session to be adjusted as well...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1067206 13f79535-47bb-0310-9956-ffa450edef68
2011-02-04 16:11:15 +00:00
b32eb3a6af And yet more balancer params that can be changed at runtime via
the b-m application...

next up, of course, is adding new workers ;)

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1067178 13f79535-47bb-0310-9956-ffa450edef68
2011-02-04 13:50:39 +00:00
ee5eda1b71 Optimize... create a struct to hold the worker status info
(need to align w/ set_params later on) and note when we
update timestamps

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1066607 13f79535-47bb-0310-9956-ffa450edef68
2011-02-02 20:17:22 +00:00
57a654ffe7 Instead of just enabling/disabling, we can now adjust
more useful worker status bits, such as whether hot stby, etc...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1066482 13f79535-47bb-0310-9956-ffa450edef68
2011-02-02 14:39:48 +00:00
f2c6805bc9 Again, abstract out the worker status magic to it's handled
by funcs...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1066138 13f79535-47bb-0310-9956-ffa450edef68
2011-02-01 19:07:02 +00:00
3866ae89a4 We can now change lbmethod at runtime.
Provide a stub for other balancer-related params to
be adjusted as well, like timeout, sticky, etc...

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1066076 13f79535-47bb-0310-9956-ffa450edef68
2011-02-01 16:00:01 +00:00
177e4e5f86 Move the lbmethod to also allow it to be adjusted runtime
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1065750 13f79535-47bb-0310-9956-ffa450edef68
2011-01-31 20:29:01 +00:00