On 18/02/2015 15:04, Mark Thomas wrote:
> On 18/02/2015 14:01, Rémy Maucherat wrote:
>> 2015-02-18 14:19 GMT+01:00 Mark Thomas <ma...@apache.org>:
>>
>>> Hmm. I've been running a test with this plus a bunch of possibly
>>> unnecessary sync expansions looping over the suspect test for over an
>>> hour now without any failures.
>>>
>>> This patch does fix a logic problem but I thought it was one that would
>>> result in multiple write registrations rather than a missed registration.
>>>
>>> I'm going to look at this more closely until either I convince myself
>>> that this change could fix the 'missed write registration' problem or
>>> one of the tests fails.
>>>
>>
>> No problem with watching the CI results for some time and see if it works.
>> I tried fiddling with the write notification code some time ago, since it's
>> different from 8.x, but I ran into problems, so I won't make any changes to
>> it until it gets stable.
> 
> Progress. I can reproduce a variant (where no messages are sent) of this
> this easily with a debugger now. Next up, finding the root cause
> followed by a fix.

After some further research, the bug is triggered by the long poll
handling for NIO2. However, I don't think this is the actual root cause.
My current thinking on that is that the upgrade process isn't explicitly
triggering the first onWritePossible() and onDataAvailable() calls.
Currently we 'work-around' this in various ways in various places -
particularly WebSocket. I believe some of the problems we seeing are
caused by edge cases in these work-arounds.

I'm currently exploring explicitly triggering the onWritePossible() and
onDataAvailable() calls but I have some more work to do on this as the
work-arounds needs to be removed to avoid double registration etc.

Mark


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to