Hello,

I think you found a real bug. Could you please try the following patch:

Index: jk_status.c
===================================================================
--- jk_status.c (revision 418136)
+++ jk_status.c (working copy)
@@ -755,13 +755,9 @@
         i = status_bool("wd", s->query_string);
         j = status_bool("ws", s->query_string);
         if (wr->s->is_disabled!=i || wr->s->is_stopped!=j) {
-            /* lock shared memory */
-            jk_shm_lock();
             wr->s->is_disabled = i;
             wr->s->is_stopped = j;
             reset_lb_values(lb, l);
-            /* unlock the shared memory */
-            jk_shm_unlock();
             if (i+j==0) {
                 jk_log(l, JK_LOG_INFO,
                        "worker %s restarted in status worker"
@@ -771,12 +767,8 @@
         }
         i = status_int("wx", s->query_string, wr->s->distance);
         if (wr->s->distance!=i) {
-            /* lock shared memory */
-            jk_shm_lock();
             wr->s->distance = i;
             reset_lb_values(lb, l);
-            /* unlock the shared memory */
-            jk_shm_unlock();
         }
         i = status_int("wf", s->query_string, wr->s->lb_factor);
         if (i > 0 && wr->s->lb_factor != i) {

In case you never saw a diff: the lines beginning with "-" need to be
deleted in the file jk/common/jk_status.c.

It would be great, if you could test this and report, if this fixes the
problem.

Rainer

Mohan2005 schrieb:
> Dear Sir:
> 
> Issue:
> 
> 'Update Worker' does not respond/is hung when trying to use Disabled/Stopped
> options.
> 
> workers.properties file as follows...
> 
> #
> # workers.properties
> #
> # In Unix, we use forward slashes:
> ps=/
> 
> # list the workers by name
> #worker.list=lab2a, lab2b, lab2c, lab2d, lab2e, lab2e, loadbalancer
> worker.list=loadbalancer, jkstatus
> 
> # ------------------------
> # First JBoss server
> # ------------------------
> worker.lab2a.port=8009
> worker.lab2a.host=10.0.0.111
> worker.lab2a.type=ajp13
> 
> # Specify the size of the open connection cache.
> worker.lab2a.connection_pool_size=1
> worker.lab2a.retries=0
> worker.lab2a.stopped=0
> worker.lab2a.connection_pool_timeout=300
> worker.lab2a.socket_timeout=60
> worker.lab2a.domain=www-jbosslab2Adomain-com
> #
> # Specifies the load balance factor when used with
> # a load balancing worker.
> # Note:
> #  ----> lbfactor must be > 0
> #  ----> Low lbfactor means less work done by the worker.
> worker.lab2a.lbfactor=1
> 
> 
> # ------------------------
> # Second JBoss server
> # ------------------------
> ...
> ...
> 
> ...
> ...
> ...
> # ------------------------
> # Load Balancer worker
> # ------------------------
> #
> # The loadbalancer (type lb) worker performs weighted round-robin
> # load balancing with sticky sessions.
> # Note:
> #  ----> If a worker dies, the load balancer will check its state
> #        once in a while. Until then all work is redirected to peer
> #        worker.
> 
> worker.loadbalancer.type=lb
> worker.loadbalancer.balance_workers=lab2a, lab2b, lab2c, lab2d, lab2e, lab2f
> worker.loadbalancer.local_worker_only=1
> worker.sticky_session=1
> worker.loadbalancer.lock=P
> 
> worker.jkstatus.type=status
> #
> # END workers.properties
> #
> 
> 
> jkmanager web client output....
> 
> 
> 
> JK Status Manager for jbosslab2.roomstest.com
> Server Version: Apache/2.0.53 (Unix) mod_ssl/2.0.53 OpenSSL/0.9.7e PHP/5.0.3
> mod_jk/1.2.16 
> JK Version: 1.2.16 
> 
> --------------------------------------------------------------------------------
> 
> Worker Status for loadbalancer
> Type Sticky session Force Sticky session Retries Method Lock 
> lb True False 3 Request Pessimistic 
> 
> Name Type jvmRoute Host Addr Stat D F M V Acc Err Wr Rd Busy Max RR Cd 
> lab2a ajp13 lab2a 10.0.0.111:8009 10.0.0.111:8009 OK 0 1 1 0 0 0 0  0  0 0  
> www-jbosslab2Adomain-com 
> 
> 
> ---------------------------------------------------------------------------------------------------------------------------------
> 
> 
> mod_jk log at startup....
> 
> 
> [EMAIL PROTECTED] conf]# /data/apache2/bin/apachectl start
> [EMAIL PROTECTED] conf]# tail -f 
> /data/apache2/logs/mod_jk.log.2006-07-05.16\:23\:GMT
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 5 out of 5
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 9 out of 9
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 5 out of 5
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 11 out of 11
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 9 out of 9
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 59 out of 59
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug]
> wc_get_worker_for_name::jk_worker.c (111): found a worker jkstatus
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 891 out of 891
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] ws_write::mod_jk.c (412):
> written 16 out of 16
> [Wed Jul 05 22:23:29 2006] [32186:59616] [debug] jk_handler::mod_jk.c
> (1962): Service finished with status=200 for worker=jkstatus
> 
> mod_jk log when 'Update Worker' is pressed...
> 
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> map_uri_to_worker::jk_uri_worker_map.c (487): Attempting to map URI
> '/jklab2manager/' from 36 maps
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> map_uri_to_worker::jk_uri_worker_map.c (499): Attempting to map context URI
> '/RoomsnetAdmin/*'
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> map_uri_to_worker::jk_uri_worker_map.c (499): Attempting to map context URI
> '/jklab2manager/*'
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> map_uri_to_worker::jk_uri_worker_map.c (513): Found a wildchar match
> jkstatus -> /jklab2manager/*
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug] jk_handler::mod_jk.c
> (1832): Into handler jakarta-servlet worker=jkstatus r->proxyreq=0
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> wc_get_worker_for_name::jk_worker.c (111): found a worker jkstatus
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug] wc_maintain::jk_worker.c
> (301): Maintaining worker loadbalancer
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2217): reached pool min size 0 from 1 cache
> slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2225): recycled 0 sockets in 0 seconds from 1
> pool slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2217): reached pool min size 0 from 1 cache
> slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2225): recycled 0 sockets in 0 seconds from 1
> pool slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2217): reached pool min size 0 from 1 cache
> slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2225): recycled 0 sockets in 0 seconds from 1
> pool slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2217): reached pool min size 0 from 1 cache
> slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2225): recycled 0 sockets in 0 seconds from 1
> pool slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2217): reached pool min size 0 from 1 cache
> slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2225): recycled 0 sockets in 0 seconds from 1
> pool slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2217): reached pool min size 0 from 1 cache
> slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> ajp_maintain::jk_ajp_common.c (2225): recycled 0 sockets in 0 seconds from 1
> pool slots
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> maintain_workers::jk_lb_worker.c (316): decay with 2^1
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug] init_ws_service::mod_jk.c
> (531): Service protocol=HTTP/1.1 method=GET host=(null) addrr=147.120.1.1
> name=jbosslab2.roomstest.com port=80 auth=(null) user=(null)
> laddr=147.120.147.2 raddr=147.120.1.1
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> wc_get_worker_for_name::jk_worker.c (111): did not find a worker lab2d
> [Wed Jul 05 22:29:03 2006] [24473:59616] [debug]
> wc_get_worker_for_name::jk_worker.c (111): found a worker loadbalancer
> 
> 
> And this request hangs.
> 
> 
> IMAGES ATTACHED:
> 
> 
> Thanks in advance.
> 
> 

---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to