On Wed, Dec 4, 2019 at 10:59 AM Mark Thomas <ma...@apache.org> wrote:

> On 04/12/2019 09:27, Mark Thomas wrote:
> > On 04/12/2019 07:55, Rémy Maucherat wrote:
>
> <snip/>
>
> >> Blocking is also used for HTTP/2 where it seems to work. If the write
> >> buffer is full, 0 bytes are written and the socket is indeed passed to
> >> the poller but until the operation is complete it is supposed to be
> >> blocked here:
> >>
> https://github.com/apache/tomcat/blob/master/java/org/apache/tomcat/util/net/SocketWrapperBase.java#L1430
> >
> > That helps a lot. I can try and see why things aren't blocking there.
>
> Some progress. The thread does wait there but it is getting released too
> early. I'm guessing something is calling notify(). I'm planning to add
> more debug to figure out what / why.
>

It works for me, but here the timeout for the write is only 5s for whatever
reason. So it really waits 5s and then throws an exception on the caller.
The "problem" is that the completion handler isn't called in that case (I
was afraid of concurrency issues there maybe).

Rémy

Reply via email to