Comments (5)
We believe we have a fix for #11326 that will be in the 12.0.7 release at the end of the month.
The ISE is also something that we have been addressing, but it has mostly been a harmless second call to callback.failed()
after a callback has already been succeeded or failed.
The NPE is also a problem in the error handling, which also looks like something has already cleared the headers as we are trying to write out an error.
So it may be that 12.0.7 will have fixed these, but I'll have a bit more of a look at this area before the release and at the very least put in a bit better handling of errors whilst handling errors. For both of those exceptions it would be good to see the actual error that was being handled.
from jetty.project.
@gregw what about the NPE in org.eclipse.jetty.http.HttpField.getHeader() during a ServletContextResponse.resetContent call?
from jetty.project.
@joakime yeah, that NPE should not happen with normal handling of a Mutable HttpFields class. So it is plausible that this is again double handling of an error, so two threads are modifying the HttpFields at once. The null kind of suggests one thread is adding a field, whilst the other is trying to clear it.
So I do suspect the error handling that we have already cleaned up somewhat, but I can't yet say for sure this is fixed.
@konstantin-mikheev can you tell us more about the actual failure. I.e. details about what you mean with "infinite stream of messages". Plus next time it happens, can you take a full thread dump.
from jetty.project.
Ugh! The NPE is an exception thrown whilst handling an exception thrown whilst handling an exception! It is turtles all the way down!
from jetty.project.
"infinite stream of messages" meant we got 100k identical NPE messages in logs per minute for the next few minutes. Node had died and was restarted so no thread dump unfortunately.
During this timeframe besides those 100k per minute NPEs we got 6 IllegalStateExceptions from org.eclipse.jetty.ee10.servlet.ServletChannelState
. Besides those there are only 34 other messages all of those not really interesting: couple of timeouts towards other locations and retries while trying to update some settings. Usually those logs mean packetloss.
I have looked into ploss statistics by location and found out at the last case there was no changes in ploss rate when incident started. Out of about 30 locations there was one with about 20% ploss which was already going for approximately 50 minutes. There were couple of ploss spikes to other locations within 30 minutes before NPEs happened but they were not happening at the time when NPEs started to appear.
For now I have ported project back to Jetty 11. I will probably left one instance with Jetty 12 to try to obtain thread dump but could not promise anything unfortunately.
What also could I add: I have looked into cpu usage distribution and there is an increase from 5 to 20% of the "kernel mode" cpu usage for couple of minutes right when those issues started. I will investigate more what could it be.
from jetty.project.
Related Issues (20)
- Consider adding @NotNull or similar to the code base HOT 11
- After creating the keystore according to the official documentation, executing the following code fails to establish an HTTPS connection when accessed from a web browser. HOT 1
- jetty-ee8-websocket-javax-server export not honoured HOT 2
- HTTP2 async failure on a stream can lead to the connection being aborted HOT 5
- SecureRequestCustomizer() for HTTP3 HOT 1
- Jetty Releases 12.0.10
- Memory leak in `ArrayRetainableByteBufferPool$RetainedBucket` HOT 1
- Define core deployment HOT 7
- README link is broken HOT 6
- Server resources are not found if the server is subclassed in a different package
- Remove old documentation resources.
- HttpChannelState does not satisfy the contract of Content.Source HOT 2
- Issue with Configuring Specific Static Resources in the same base directory ee10 jetty 12.0.10 HOT 17
- Jetty 12 Core SecurityHandler relies on ContextHandler HOT 2
- GzipHandler switches response transfer encoding to chunked HOT 4
- DefaultServlet configured for a subdir responds with 404 on existing files HOT 7
- Behavioural change in Jetty 12: POST /non-existing returns 405, instead of 404 (GET /non-existing still returns 404) HOT 1
- Jetty 12: 400: Ambiguous URI path encoding for path <%=FOO%>~1 (encoded: %3C%25%3DFOO%25%3E%7E1) HOT 4
- mtls not working with http/3
- Hello World Example Fails to Run HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jetty.project.