On 03/26/2012 11:46 PM, Rainer Jung wrote:
Hi Mladen,
for (i = 0; i< p->num_of_workers; i++) {
lb_sub_worker_t *w =&p->lb_workers[i];
- if (w->sequence != w->s->h.sequence) {
+ if (w->sequence< w->s->h.sequence) {
I think this one is wrong. It is inside push not pull, so it should be if (local > shared)
and not "<".
... continue from first mail
Inside lb_worker::init we have
1787: p->sequence++;
1788: jk_lb_push(p, JK_TRUE, log);
Now, this is completely wrong.
It will always set sequence to 1, so in case worker process
gets recycled we have things out of sync.
Anyhow why push at init stage?
... next inside lb_push we have
393: p->s->h.sequence = p->sequence;
Now this should actually be
p->s->h.sequence++;
The shm sequence can be generations ahead of heap sequence number.
Anyhow, like said, *->s->h.sequence should be updated
only when someone explicitly clicks on the jkstatus page.
Other then that I see no reason for its update.
All other runtime params are intrinsic and volatile should
guarantee its consistency.
Regards
--
^TM
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org