2016-12-14 10:07 GMT+01:00 Mark Thomas <[email protected]>:
> On 14/12/2016 08:54, Rémy Maucherat wrote:
> > 2016-12-14 9:50 GMT+01:00 Mark Thomas <[email protected]>:
> >
> >> The failure happens on current trunk too so I don't think this is
> >> related to the refactoring. However, I am going to investigate this
> >> failure first - before I apply the refactoring.
> >>
> >> What is the intermittent failure ?
> > https://ci.apache.org/builders/tomcat-trunk seems happy (usually it's
> not).
>
> TestHttp11Processor.test57621b
>
> Fails maybe 1 time in 10. It looks like something is going wrong
> resetting the input buffer between requests.
>
> Ah this test is very specific. The runnable is doing what a dispatch would
do but it doesn't have the code to wait until the container thread has
returned:
public synchronized boolean asyncDispatch() {
if (!ContainerThreadMarker.isContainerThread() && state ==
AsyncState.STARTING) {
state = AsyncState.DISPATCH_PENDING;
return false;
} else {
return doDispatch();
}
}
vs:
public synchronized void asyncRun(Runnable runnable) {
... [set env]
processor.getExecutor().execute(runnable);
... [unset env]
}
So if this is allowed, it would run into the same concurrency issues that
were fixed for dispatch.
Rémy