Open lorban opened 4 months ago
Is this targeting 12.0.12 at this stage?
@wendigo we never managed to reproduce this problem, and the original reporter told us he did not see it happening again after upgrading to 12.0.9.
We still need to investigate this further to understand what the actual cause could have been, but this is a low-priority task as we are not aware of anyone being impacted by this problem.
@wendigo have you been hit by this problem, or are you just reviewing known Jetty issues that may impact you?
I'm asking because if you need some help in that area, the sooner we know about it, the better we can prioritize our tasks to make sure you don't have to wait for too long to provide you with a solution.
Thanks!
@lorban yeah, we saw that in our benchmarks
@lorban The HttpFields class is not intended to be Thread safe, so a clear()
from one thread whilst another is iterating may well result in these kinds of NPEs.
Several ways forward: 0) leave HttpFields as is and look really hard for the concurrent access and fix it. 1) harden HttpFields a bit for concurrent access (e.g. set size to 0 before assigning new array) and make a good effort to fix the actual concurrent access 3) Make HttpFields thread safe with concurrent list of fields and let the concurrent access remain.
Let's hangout to discuss.
Eitherway, I'm bumping to the next release.
Jetty version(s) 12.0.9
Jetty Environment EE10
Description
There seems to be a race condition in
ServletChannelState.asyncError()
that sometimes ends up makingHttpField.getHeader()
throw a NPE: