On Tue, Jun 4, 2019 at 3:46 PM Mark Thomas <ma...@apache.org> wrote:

> On 04/06/2019 12:25, Mark Thomas wrote:
> > On 04/06/2019 12:17, r...@apache.org wrote:
> >> This is an automated email from the ASF dual-hosted git repository.
> >>
> >> remm pushed a commit to branch master
> >> in repository https://gitbox.apache.org/repos/asf/tomcat.git
> >>
> >>
> >> The following commit(s) were added to refs/heads/master by this push:
> >>      new 2eb2d84  Add fake parameters on two tests which (rarely) fail
> for me
> >> 2eb2d84 is described below
> >>
> >> commit 2eb2d843f68b9b224f5d8457f340c9bd1e9240c9
> >> Author: remm <r...@apache.org>
> >> AuthorDate: Tue Jun 4 13:17:44 2019 +0200
> >>
> >>     Add fake parameters on two tests which (rarely) fail for me
> >>
> >>     5_3 has a timeout problem.
> >>     Async flush has a window update manager waitForNonBlocking ISE
> problem.
> >>     This should make problems far easier to detect.
> >
> > Thanks for testing my latest patch. I am going to apply it as I think it
> > is heading in the right direction.
>
> Done.
>
> > I'm currently looking at the debug logs for the async flush issue. I've
> > made progress tracing it back but I haven't quite got to the root cause.
>
> This should be fixed as well. Looks like a long-standing bug in
> flush(boolean).
>

I agree, my debug showed concurrent traces dealing exclusively with
"legacy" output stream flushes, one caused by response commit and the other
one by the flush at the start of doing onWritePossible.
The item I was looking at first to solve it is the FIXME line 65 of
StreamProcessor, but indeed any more "efficient" sync will deadlock in
various tests.

>
> > My plan is to tackle the 5_3 issue after the async flush issue.
>
> Starting this now.
>

I can barely get it anymore (despite the parametrization loop), so it will
be very difficult to verify any fix. This was a "Timeout waiting for
allocation" with stream 19 or 21 in testWeighting.
I will continue testing and investigating.

04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-4]
org.apache.coyote.http2.WindowAllocationManager.waitForConnection
Connection [5], Stream [21], Waiting for Connection flow control window
(blocking) with timeout [6000]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.WindowAllocationManager.notify Connection [5],
Stream [21], Notified
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.incrementWindowSize Connection
[5], Stream [19] released from backlog
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.WindowAllocationManager.notify Connection [5],
Stream [19], Waiting type [2], Notify type [2]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.WindowAllocationManager.notify Connection [5],
Stream [19], Notified
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.upgradeDispatch Entry,
Connection [5], SocketStatus [OPEN_READ]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.init Connection [5], State
[CONNECTED]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-2]
org.apache.coyote.http2.AbstractStream.decrementWindowSize Connection [5],
Stream [0], reduce flow control window by [256] to [-1]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-2]
org.apache.coyote.http2.Http2AsyncUpgradeHandler.writeBody Connection [5],
Stream [19], Data length [256]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-5]
org.apache.coyote.http2.Http2UpgradeHandler.upgradeDispatch Exit,
Connection [5], SocketState [UPGRADED]
04-Jun-2019 16:26:26.110 FINE [http-nio2-127.0.0.1-auto-6-exec-2]
org.apache.coyote.http2.WindowAllocationManager.waitForConnection
Connection [5], Stream [19], Waiting for Connection flow control window
(blocking) with timeout [6000]
04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.validateFrame Connection [-1], Stream
[21], Frame type [DATA], Flags [0], Payload size [768]
04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.readDataFrame Connection [-1], Stream
[21], Data length, [768], Padding length [none]
04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.swallow Connection [-1], Stream [21],
Swallowed [768] bytes
04-Jun-2019 16:26:26.110 INFO [main]
org.apache.coyote.http2.TestHttp2Section_5_3.testWeighting 21-Body-768

04-Jun-2019 16:26:26.110 FINE [main]
org.apache.coyote.http2.Http2Parser.validateFrame Connection [-1], Stream
[19], Frame type [DATA], Flags [0], Payload size [256]
04-Jun-2019 16:26:26.111 FINE [main]
org.apache.coyote.http2.Http2Parser.readDataFrame Connection [-1], Stream
[19], Data length, [256], Padding length [none]
04-Jun-2019 16:26:26.111 FINE [http-nio2-127.0.0.1-auto-6-exec-4]
org.apache.coyote.http2.Http2UpgradeHandler.reserveWindowSize Connection
[5], Stream [21], Timeout waiting for allocation

Rémy


>
> Meanwhile I'm going to set the unit tests running on OSX and Windows as
> a double check.
>
> Mark
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: dev-h...@tomcat.apache.org
>
>

Reply via email to