Hi,

we are using Tomcat as our application server with front end Apache servers (1.3.33) running mod_jk from Jakarta Tomcat Connectors 1.2.8.

We have load balancing workers which load balance ajp13 workers.

Some of the applications we are hosting make heavy use of HTML Forms using GET as the submission method. From time to time, a form text input field will be big (above 8kb) making the AJP 1.3 packet too big and thus leading to an error in jk_msg_buff.c:jk_b_append_string called from jk_msh_buff.c:ajp_marshal_into_msgb. The error is clearly due to the size of the query string. The behavior of ajp_marshal_into_msgb is to qualify the error as unrecoverable (is_recoverable_error is set to JK_FALSE) and ajp_service will return JK_FALSE thus leading to the given worker being unavailable for recovery_time seconds (at least 60 seconds per default).

The error encountered is not due to a failure in Tomcat but to a bad request. If I agree that is_recoverable_error should indeed be set to JK_FALSE so no other worker is tried for this request, I think it is wrong to consider the worker as having failed. The impact of such a request should be limited to the request itself and not fail the whole worker, otherwise we have a wonderful DOS opportunity.

What do others think of this beahviour?

Thanks,

Mathias.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to