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

Reply via email to