You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by John Roth <jo...@providersolutions.net> on 2002/03/20 22:39:20 UTC

XXX Assert failed, buff too small

We are having a problem with Tomcat using an upload servlet to upload
potentially large files (up to 100MB).  The servlet works fine for all file
sizes in the following instances:
http://servername/app/UploadFiles.jsp
http://servername:8080/app/UploadFiles.jsp
but when using https (ie: https://servername/app/UploadFiles.jsp, we get
'Page Cannot Be Displayed'.  A summary of the error logs is below:

IIS_Redirect.Log
----------------
 [Wed Mar 20 15:49:20 2002]  [jk_ajp13_worker.c (206)]: sending to ajp13
#8192
 [Wed Mar 20 15:49:20 2002]  [jk_ajp13_worker.c (258)]: received from ajp13
#3
 [Wed Mar 20 15:49:20 2002]  [jk_isapi_plugin.c (426)]: Into
jk_ws_service_t::read
 [Wed Mar 20 15:49:20 2002]  [jk_isapi_plugin.c (426)]: Into
jk_ws_service_t::read

 ... this repeats 1364 times, everytime, before the following: ...

 [Wed Mar 20 15:49:20 2002]  [jk_ajp13_worker.c (206)]: sending to ajp13
#8192
 [Wed Mar 20 15:49:20 2002]  [jk_ajp13_worker.c (258)]: received from ajp13
#3
 [Wed Mar 20 15:49:20 2002]  [jk_isapi_plugin.c (426)]: Into
jk_ws_service_t::read
 [Wed Mar 20 15:49:20 2002]  [jk_isapi_plugin.c (426)]: Into
jk_ws_service_t::read
 [Wed Mar 20 15:49:20 2002]  [jk_isapi_plugin.c (460)]:
jk_ws_service_t::read, ReadClient failed

stdout.log
----------
 Starting service Tomcat-Standalone-(Staging)
 Apache Tomcat/4.0.1
 [Ajp13] bad read: -103
 XXX Assert failed, buff too small

Note: Yes, I have been following the list, and I don't know what causes -103
either, but with the exception of this servlet, our app has been running
great for months, with several dozen -103's a day.  The XXX Assert Failed is
new.

tomcat_log.log
--------------
2002-03-20 15:34:02 UploadFiles: init
2002-03-20 15:34:15 jsp: init
2002-03-20 15:34:15 Ajp13Processor[8009][6] process: invoke
java.net.SocketException: Connection aborted by peer: socket write error
	at java.net.SocketOutputStream.socketWrite(Native Method)
	at java.net.SocketOutputStream.write(SocketOutputStream.java:83)
	at org.apache.ajp.Ajp13.send(Ajp13.java:959)
	at org.apache.ajp.Ajp13.finish(Ajp13.java:808)
	at
org.apache.ajp.tomcat4.Ajp13Response.finishResponse(Ajp13Response.java:192)
	at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:373)
	at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:424)
	at java.lang.Thread.run(Thread.java:484)

Application Log
---------------
2002-03-20 15:34:03,253 [Ajp13Processor[8009][6]] DEBUG
com.psc.ams.servlets.PSCUploadFilesByExtension - clearing dir
e:/****/staging\jroth
2002-03-20 15:34:03,253 [Ajp13Processor[8009][6]] DEBUG
com.psc.ams.servlets.PSCUploadFilesByExtension - attempting to delete file
e:\****\staging\jroth\11MB.txt
2002-03-20 15:34:15,190 [Ajp13Processor[8009][6]] ERROR
com.psc.ams.servlets.PSCUploadFilesByExtension - Unexpected Exception
occured in PSCUploadFiles.doPost().
java.lang.ArrayIndexOutOfBoundsException
	at java.lang.System.arraycopy(Native Method)
	at org.apache.ajp.Ajp13Packet.getBytes(Ajp13Packet.java:459)
	at org.apache.ajp.Ajp13.refillReadBuffer(Ajp13.java:641)
	at org.apache.ajp.Ajp13.doRead(Ajp13.java:540)
	at org.apache.ajp.tomcat4.Ajp13InputStream.read(Ajp13InputStream.java:95)
	at javax.servlet.ServletInputStream.readLine(ServletInputStream.java:138)
	at
com.oreilly.servlet.MultipartInputStreamHandler.readLine(MultipartInputStrea
mHandler.java:63)
	at
com.oreilly.servlet.MultipartRequest.readAndSaveFile(MultipartRequest.java:4
21)
	at
com.oreilly.servlet.MultipartRequest.readNextPart(MultipartRequest.java:522)
	at
com.oreilly.servlet.MultipartRequest.readRequest(MultipartRequest.java:610)
	at com.oreilly.servlet.MultipartRequest.<init>(MultipartRequest.java:146)
	at
com.psc.ams.servlets.PSCUploadFilesByExtension.doPost(PSCUploadFilesByExtens
ion.java:480)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java
:446)
	at
org.apache.catalina.servlets.InvokerServlet.doPost(InvokerServlet.java:216)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:243)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:201)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2344)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170
)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:462)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
64)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:163)
	at
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
66)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
	at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:371)
	at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:424)
	at java.lang.Thread.run(Thread.java:484)

Environment:
------------
- Win2000 Server, patched up to latest levels
- Tomcat 4.0.1 Binary distribution, running as a service
- IIS 5.0, using ISAPI_Redirect.dll dated 12/08/01 (Thank you Henri Gomez!)
- SSL Enabled through IIS
- I have several servers with similar environments.  Some servers have
multiple logical web servers with multiple Tomcat instances.  This
particular server has only one instance of each.  However, the same behavior
is observed on any server/instance with SSL.

Facts:
------
1] This only happens on https://, all other forms work fine.
2] This only happens on files larger than just under 11MB (11,172,378 bytes,
plus or minus a few bytes for filename payload).
3] The "Assert Failed" error comes from Ajp13.java, Ajp13Packet.java, or
MsgAjp.java.  I am not a Java programmer (yes, another one of those
'systems' guys), but was able to dig throught the source to find the actual
system.out lines.
4] 11,172,378 / 1364 = 8191+-, the same size as the ajp packet.  Why 1364
ajp packets?  Anything smaller works fine.
5] Any help will result in the helper receiving a free drink from the helpee
next time the helper is in Tampa, FL!

Thanks in advance,
John Roth, Director net.Media
Provider Solutions Corp.


--
To unsubscribe:   <ma...@jakarta.apache.org>
For additional commands: <ma...@jakarta.apache.org>
Troubles with the list: <ma...@jakarta.apache.org>