On 10.06.2013 17:29, Konstantin Kolinko wrote: > 2013/6/10 David Gubler <d...@doodle.com>: >> Hi list, >> >> We have recently upgraded our Apache servers from Debian Squeeze to Wheezy >> (from Apache 2.2.16 with mod_jk 1.2.30 to Apache 2.2.22 with mod_jk 1.2.37). >> The Tomcat version hasn't changed (7.0.37). >> >> We often do rolling releases by disabling (DIS) some worker in jkmanager, >> waiting for a few minutes for most sessions to go away (we use sticky >> sessions but not forced), upgrading it, and re-enabling it. This worked >> perfectly with mod_jk 1.2.30. The server is rather busy (order of 100-200 >> req/s going to tomcat). >> >> However, with mod_jk 1.2.37, the activation state behaves erratically. Say I >> disable worker1 on all apache servers via jkmanager. When I go back to the >> jkmanager overview screen, it still shows as active. I hit reload, now it >> shows as disabled. I can wait for a few seconds or minutes, reload, and >> suddenly it shows up as active again! It keeps switching back and forth >> between active and disabled if I reload often enough. Afterwards I usually >> have to set it to active a few times to make it stick there. This happens on >> all apache servers independently. >> >> And more worringly, the load on the worker does not decrease, not even after >> waiting for half an hour or longer (with 1.2.30, the load on a worker >> decreased to about 5% after 5-10 minutes). >> >> When I set a worker to stopped, the activation state also switches between >> active and stopped, the load on the worker goes down slowly, but the >> requests do not cease completely. With 1.2.30, I could set a worker to >> stopped and it instantaneously received no more requests. >> >> Other than that, mod_jk behaves as expected (e.g. if I shut down one of the >> tomcats, the requests go to the other; load balancing works fine in normal >> operation). >> >> I have stripped down our workers.properties to the bare minimum that we >> need, and the problem is still there: >> >> ps=/ >> worker.list=loadbalancer,jkstatus >> worker.jkstatus.type=status >> >> worker.loadbalancer.type=lb >> worker.loadbalancer.sticky_session=true >> worker.loadbalancer.balance_workers=worker1,worker2 >> >> worker.worker1.type=ajp13 >> worker.worker1.host=WW.XX.YY.ZZ >> worker.worker1.port=8009 >> worker.worker1.connect_timeout=70000 >> worker.worker1.prepost_timeout=70000 >> worker.worker1.socket_timeout=70 >> worker.worker1.connection_pool_timeout=70 >> worker.worker1.connection_pool_size=200 >> worker.worker1.retry_interval=1000 >> worker.worker1.lbfactor=1 >> >> [same for worker2, only difference is the IP address] >> >> Rest of the configuration is Debian standard. Apache uses JkAutoAlias, >> JkMount and a bunch of JkUnMounts, but nothing fancy. >> >> The changelog does not really give me any clues as to what change could >> cause this, and neither does the workers.properties documentation :( >> >> Does anyone have an idea what I could be doing wrong? >> > > Looking at the current changelog, > <section name="Changes between 1.2.37 and 1.2.38"> > ... > <fix> > Fix status worker not updating parameters for all members. (mturk) > </fix> > > That is > http://svn.apache.org/viewvc?view=revision&revision=1354021
Yes that should be it. If the OP compiles himself, just add the tiny patch http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_status.c?r1=1354021&r2=1354020&pathrev=1354021 to your mod_jk source before compiling. Regards, Rainer --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org