On Mon, Jun 3, 2019 at 8:36 PM Mark Thomas <ma...@apache.org> wrote: > On 03/06/2019 16:43, Mark Thomas wrote: > > On 03/06/2019 14:15, Rémy Maucherat wrote: > > <snip/> > > >> I think I have found at least one more edge case around the > >> Stream/Connection allocation handling. Fixing it is going to mean > going > >> back to a synchronizing on a single object (Stream) so the current > >> notify Stream/Connection code is going to need some re-work. > >> > >> I have a potential patch but I haven't finished testing it yet. It > also > >> needs proper debug logging, i18n etc. If all goes well, I should be > able > >> to commit the fix and then tag later today. I'll post an update if > >> things don't go well. > > > > Things seem to be improving. Linux and OSX are OK but NIO2 on Windows is > > still failing some tests but fewer than before. I'm currently re-running > > the unit tests with debug logging enabled to shed some light on what is > > going wrong. As far as I can tell the issue(s) are still around handling > > of WINDOW_UPDATE frames when the Connection/Stream flow control window > > is exhausted. > > Further investigation has identified a different root cause. NIO2 is > getting itself into a state where there are two threads processing the > incoming frames and they are conflicting. I'm still trying to figure out > the sequence of events that leads up to this state but it appears to be > related to the processing of the connection preface. >
Ok, that's completely different ;) I tried to be careful with that, but the algorithm changes to non blocking, so obviously there were some risks involved. I'll have a quick look at it, but you can go ahead with your window update fix and tag, this NIO2 problem is likely not a super critical issue. Rémy