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
loadbalancing:


(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
  failed.
  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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to