Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 6.1.2rc0
-
Fix Version/s: 6.1.2rc1
-
Component/s: None
-
Labels:None
-
Environment:java version "1.5.0_11" on debian
-
Number of attachments :2
Description
Caused by: java.lang.IllegalStateException: FULL
at org.mortbay.jetty.HttpGenerator.addContent(HttpGenerator.java:121)
at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:615)
at org.mortbay.jetty.AbstractGenerator$Output.write(AbstractGenerator.java:570)
at java.io.ByteArrayOutputStream.writeTo(ByteArrayOutputStream.java:112)
at org.mortbay.jetty.AbstractGenerator$OutputWriter.write(AbstractGenerator.java:864)
at org.mortbay.jetty.AbstractGenerator$OutputWriter.write(AbstractGenerator.java:715)
at java.io.PrintWriter.write(PrintWriter.java:384)
Happens randomly on server with load, especially on slow pages.
-
Hide
- jetty-6.1-SNAPSHOT.jar
- 24/Feb/07 6:02 PM
- 454 kB
- Greg Wilkins
-
- META-INF/MANIFEST.MF 0.2 kB
- org/mortbay/jetty/webapp/webdefault.xml 21 kB
- org/mortbay/.../TagLibConfiguration.class 7 kB
- org/mortbay/.../webapp/Configuration.class 0.5 kB
- org/mortbay/.../webapp/WebAppContext.class 22 kB
- org/mortbay/.../WebXmlConfiguration.class 27 kB
- org/.../JettyWebXmlConfiguration.class 3 kB
- org/mortbay/.../WebInfConfiguration.class 2 kB
- org/mortbay/.../WebAppClassLoader.class 8 kB
- org/mortbay/jetty/encoding.properties 0.1 kB
- org/mortbay/jetty/mime.properties 4 kB
- org/mortbay/jetty/favicon.ico 1 kB
- org/.../ClientCertAuthenticator.class 2 kB
- org/mortbay/.../security/Authenticator.class 0.4 kB
- org/mortbay/.../security/UserRealm.class 0.7 kB
- org/mortbay/.../Credential$Crypt.class 2 kB
- org/mortbay/.../Credential$MD5.class 3 kB
- org/mortbay/.../security/Credential.class 0.9 kB
- org/mortbay/.../security/ServletSSL.class 0.8 kB
- org/mortbay/.../security/Password.class 4 kB
- org/mortbay/.../BasicAuthenticator.class 3 kB
- org/mortbay/.../ConstraintMapping.class 1 kB
- org/mortbay/.../security/Constraint.class 3 kB
- org/mortbay/.../SecurityHandler$1.class 0.6 kB
- org/.../SecurityHandler$NotChecked.class 0.9 kB
- org/mortbay/.../SecurityHandler$2.class 0.6 kB
- org/mortbay/.../SecurityHandler.class 10 kB
- org/mortbay/.../security/PKCS12Import.class 4 kB
- org/mortbay/.../security/JDBCUserRealm.class 6 kB
- org/mortbay/.../HashUserRealm$User.class 2 kB
-
Hide
- jetty-util-6.1-SNAPSHOT.jar
- 23/Feb/07 4:59 AM
- 120 kB
- Greg Wilkins
-
- META-INF/MANIFEST.MF 0.2 kB
- org/mortbay/log/Logger.class 0.4 kB
- org/mortbay/log/Slf4jLog.class 5 kB
- org/mortbay/log/StdErrLog.class 3 kB
- org/mortbay/log/Log.class 5 kB
- org/mortbay/util/Attributes.class 0.4 kB
- org/mortbay/util/TypeUtil.class 12 kB
- org/mortbay/util/MultiMap.class 5 kB
- org/mortbay/util/ajax/Continuation.class 0.3 kB
- org/mortbay/.../WaitingContinuation.class 2 kB
- org/mortbay/util/ajax/JSON$Source.class 1 kB
- org/mortbay/.../ajax/JSON$Generator.class 0.2 kB
- org/mortbay/util/ajax/JSON$Literal.class 0.9 kB
- org/mortbay/util/ajax/JSON.class 9 kB
- org/.../AjaxFilter$AjaxResponse.class 2 kB
- org/mortbay/util/ajax/AjaxFilter$1.class 0.2 kB
- org/mortbay/util/ajax/AjaxFilter.class 4 kB
- org/mortbay/.../ContinuationSupport.class 1 kB
- org/.../RolloverFileOutputStream$RollTask.class 1 kB
- org/.../RolloverFileOutputStream$1.class 0.2 kB
- org/.../RolloverFileOutputStream.class 7 kB
- org/mortbay/util/Scanner$Listener.class 0.3 kB
- org/mortbay/util/Scanner$1.class 0.5 kB
- org/mortbay/util/Scanner.class 7 kB
- org/mortbay/.../MultiPartOutputStream.class 3 kB
- org/mortbay/util/DateCache.class 5 kB
- org/mortbay/.../QuotedStringTokenizer.class 5 kB
- org/mortbay/util/AttributesMap.class 2 kB
- org/mortbay/util/MultiPartWriter.class 2 kB
- org/mortbay/util/LazyList.class 6 kB
Activity
I think I have found something that may fix this. The write method was not checking to see if a previous chunk had not been flushed.
I have checked in a hopeful fix - that does not break anything, but as I could not reproduce I don't know if this is really the issue or not.
can you test svn trunk?
| Field | Original Value | New Value |
|---|---|---|
| Assignee | Greg Wilkins [ gregw ] |
I don't know how to build jetty. I haven't used Maven before. If you could send a jar to fschmidt@gmail.com, I will try it. The error only happens in our production system (Nabble), so I will have to do a release and then watch it and get back to you.
| Attachment | jetty-6.1-SNAPSHOT.jar [ 25904 ] |
| Attachment | jetty-util-6.1-SNAPSHOT.jar [ 25905 ] |
I have attached updated jars to this issue.
remove the lib/jetty-6.1.2rc0.jar and lib/jetty-util-6.1.rc0.jar files
and save these two jars in the lib directory.
thanks
Mmmm - I am very confused.
The write(Buffer) has the following code
while (_generator.isBufferFull() && _generator._endp.isOpen())
blockForOutput();
// Add the _content
_generator.addContent(buffer, Generator.MORE);
So it will not get passed the blockForOutput if the buffer is full and the endpoint is open.
So perhaps this is only happening on clients that actually close their connections while the
server is blocked trying to write to them? In which case the exception is ignorable.
I have attached the jetty jar again on this assuption. it does another test for the
endpoint being closed before throwing a full exception.
sorry to do trial and error withyou.....
| Attachment | jetty-6.1-SNAPSHOT.jar [ 25904 ] |
| Attachment | jetty-6.1-SNAPSHOT.jar [ 25945 ] |
| Resolution | Fixed [ 1 ] | |
| Status | Open [ 1 ] | Closed [ 6 ] |
| Fix Version/s | 6.1.2rc1 [ 13230 ] |
I did make a change in 6.1.2rc0 that was meant to totally
remove the chance of this happening.... but obviously
I am missing something as it appears to have made it more
frequent?????
Any information you can give me on the traffic profile,
load or how you can repeat this would be really really good.
I have tried several stress tests and I can't reproduce, but
it is obvious that is happening for several users at least?