tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Henri Gomez <>
Subject Re: failover-problem and session mixup: jakarta-tomcat-connectors/mod_jk: jk_ajp_common.c
Date Fri, 06 Feb 2004 09:13:30 GMT
Alexander Schwartz a écrit :
> Hello Henri, hello mod_jk-Developers,
> Am Di, den 27.01.2004 schrieb Henri Gomez um 18:00:
>>>we are currently experiencing some problems with mod_jk with
>>>   (A) when a post-request fails while receiving data from tomcat, the
>>>loadbalancer tries to send the request to the other tomcat, but
>>>"forgets" the post body content (i.e. login and password submitted by
>>>the user). The size of the body content is only a few bytes (< 100), so
>>>it's not the "known" problem with bodies longer than 8k. 
>>>   (B) it seems that sometimes after a POST-failover body data from an
>>>old request is sent to the other tomcat when the first connection
>>>failed. This leads to a session mix-up & user mix-up!

Could you try with the latest code from CVS, since your patch seems
to be for an older version ?

 From what I see in the code the datas in op->post are sent to the new
tomcat so I don't see where can be the problem.

I'd like to see test case and dumps.

In fact we may have to rewrite the ajp_service():

1) Init Buffers request, post, reply.

2) Feed request buffer and if needed post buffer.

3) Iterate here :

4) Try to send request and if needed post datas to a tomcat.

5) Swith to another tomcat and retry.

A problem in such case is that if there is many POST datas
we'll have a HUGE POST buffer and that datas won't be send
to tomcat immediatly.

So a consensus should be found here :

- Make the web-server buffering the request/post, and
   then send to tomcat's.

- Keep the current behaviour, where jk feed the data to tomcat
   as soon as he get them.

I also wonder why the tomcat failed since using the
prepost_timeout ping/pong could help you there.

Questions :

- Did Tomcat failed while handling the request or was allready
   broken before ?

- Did you clients used chunked transfert ?

- You say that sometimes after a POST-failover body data from an
   old request is sent to the other tomcat when the first connection
   Do you means that the other tomcat get POST DATA which was never sent
   by the browser in this request ? Strange since the op->post is reset
   each time we service a new request.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message