Thanks, Mark. Submitted <
https://bz.apache.org/bugzilla/show_bug.cgi?id=68934>

On Tue, Apr 16, 2024 at 4:44 AM Mark Thomas <ma...@apache.org> wrote:

> It would be worth creating an enhancement request for this in Bugzilla
> to ensure the request doesn't get forgotten about.
>
> Mark
>
>
> On 16/04/2024 01:06, Baron Fujimoto wrote:
> >  From our perspective, it needn't be super timely. It would be more for
> > forensic confirmation that there's something we should consider. I think
> a
> > hysteresis behavior would be compatible with this.
> >
> > On Mon, Apr 15, 2024 at 12:00 AM Mark Thomas <ma...@apache.org> wrote:
> >
> >> On 11/04/2024 21:28, Baron Fujimoto wrote> I was thinking it would be
> >> something that would be left on in a live> system. We can set these
> >> parameters, so it would be useful to know if we
> >>> were hitting the set limits.
> >>
> >> For the connection limit:
> >>
> >> How timely do you need the information to be? It is much easier to add a
> >> check when the connection is closed since a) it returns the current
> >> count and b) we are already checking the return value for mis-counting.
> >>
> >> For the thread limit:
> >>
> >> We have a couple of options here. (We use a custom queue which
> >> effectively changes the way threads in the pool re used.) The simplest
> >> is probably to add log in TaskQueue.offer() if all threads are currently
> >> being used.
> >>
> >>> I'm not sure I fully grasp how this additional logging presents a
> >>> significant incremental DOS risk. I mean, if an attacker is flooding
> you
> >>> with enough traffic or connections where this becomes an issue, aren't
> >> you
> >>> already logging various aspects of the attempts anyway (e.g., access
> >> logs,
> >>> etc)? At that point aren't your logs already being filled anyway?
> >>
> >> It is an area we need to be careful with. Log messages that include
> >> exceptions are of greatest concern since they are relatively expensive
> >> to generate. If an invalid HTTP message triggers a log message with an
> >> exception (it does, but only when configured for debug logging) then
> >> there is a degree of DoS risk there.
> >>
> >> Access logs are a special case and one that we have taken care to try
> >> and optimise. Still, if you want to make a performance test look good
> >> turning off access logging is one of the first things to do (and of
> >> course results in totally meaningless results that don't reflect real
> >> world usage).
> >>
> >> I think the concern Chris was trying to express (although I'm sure he'll
> >> correct me if I am wrong) is that when these limits are reached there is
> >> a risk of a lot of log messages being generated and that can cause
> >> issues both from a performance issue and from just filling the logs with
> >> the same message over and over again.
> >>
> >> I think what we would need is some form of hysteresis. Log a message
> >> when the limit is reached, log another message when usage falls below
> >> 80%? of the limit. That way, administrators see the peaks in usage but
> >> aren't inundated with log messages.
> >>
> >> My only concern is that at least some this code is going to run for
> >> every single request. It needs to be efficient. We should measure the
> >> impact of adding this code before we decide on whether to include it.
> >>
> >> Mark
> >>
> >>
> >>>
> >>> On Thu, Apr 11, 2024 at 1:44 AM Christopher Schultz <
> >>> ch...@christopherschultz.net> wrote:
> >>>
> >>>> Baron,
> >>>>
> >>>> On 4/9/24 16:33, Baron Fujimoto wrote:
> >>>>> I'm investigating occasional 503 errors for our CAS service running
> in
> >> a
> >>>>> Tomcat 10.1.x container. The 503s appear to correlate with some
> traffic
> >>>>> spikes at the same time.
> >>>>>
> >>>>> The connector is configured as follows:
> >>>>>
> >>>>>        <Connector
> protocol="org.apache.coyote.http11.Http11NioProtocol"
> >>>>>                   port="8443"
> >>>>>                   maxThreads="2500"
> >>>>>                   maxConnections="50000"
> >>>>>                   maxPostSize="100000"
> >>>>>                   maxParameterCount="1000"
> >>>>>                   scheme="https" secure="true"
> >>>>>                   SSLEnabled="true"
> >>>>>                   >
> >>>>>
> >>>>> Can Tomcat log info such as when the maxThreads or maxConnections
> >> limits
> >>>>> are reached? I'm basically trying to see if there is a good way to
> >>>>> more definitively determine what may have caused the 503s and what
> may
> >> be
> >>>>> feasible to mitigate them.
> >>>>
> >>>> Are you thinking of a debugging feature or something to be left-on
> for a
> >>>> live production system?
> >>>>
> >>>> Such logging might be considered a DOS vector for a live system: you
> can
> >>>> fill the logs by asking lots of trivial requests.
> >>>>
> >>>> -chris
> >>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> >>>> For additional commands, e-mail: users-h...@tomcat.apache.org
> >>>>
> >>>>
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> >> For additional commands, e-mail: users-h...@tomcat.apache.org
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
>
>

-- 
Baron Fujimoto <ba...@hawaii.edu> ::: UH Information Technology Services
minutas cantorum, minutas balorum, minutas carboratum descendus pantorum

Reply via email to