You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Aggarwal, Ajay" <Aj...@stratus.com> on 2010/12/22 16:22:53 UTC

IOException: Invalid chunk header

I am using standard HTTP 1.1 connector. This is what I see from tomcat output

Ø  INFO [main] 2010-12-22 07:43:03,071 org.apache.coyote.http11.Http11Protocol - Initializing Coyote HTTP/1.1 on http-9080

 

And here is the connector configuration element from server.xml

             <Connector port="9080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               />

 

I have a java application that uses HTTP post to stream a large file (50Gb+).  This large file is received and processed by my servlet running in Tomcat. I am seeing following error in tomcat. What could be the possible reasons for this error? I have tried googling for this error, but no luck so far.

 

java.io.IOException: Invalid chunk header

        at org.apache.coyote.http11.filters.ChunkedInputFilter.doRead(ChunkedInputFilter.java:133)

        at org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:710)

        at org.apache.coyote.Request.doRead(Request.java:428)

        at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)

        at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:405)

        at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327)

        at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)

        ...... [ my servlet ]

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)

        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)

        at java.lang.Thread.run(Unknown Source)

 


RE: IOException: Invalid chunk header

Posted by "Aggarwal, Ajay" <Aj...@stratus.com>.
Tomcat version is: 6.0.20
Platform: CentOS 5.5
Java: Java(TM) SE Runtime Environment (build 1.6.0_11-b03)

It happens in the middle. But its not always the same point where it happens. 

-----Original Message-----
From: André Warnier [mailto:aw@ice-sa.com] 

Hi.

1) Please provide Tomcat version, Java version, platform OS.
2) The exception message seems pretty clear : Tomcat does not like the looks of one of the 
"chunk headers" of what it receives.
A protocol analyser may be the only way to see what is really being sent/received here, 
although with 50 GB of data, it might be fun..
3) since it is your application receiving this data, any idea of when it happens ? at the 
beginning of the 50 GB, in the middle, at the end ?


Aggarwal, Ajay wrote:
> I am using standard HTTP 1.1 connector. This is what I see from tomcat output
> 
> Ø  INFO [main] 2010-12-22 07:43:03,071 org.apache.coyote.http11.Http11Protocol - Initializing Coyote HTTP/1.1 on http-9080
> 
>  
> 
> And here is the connector configuration element from server.xml
> 
>              <Connector port="9080" protocol="HTTP/1.1"
> 
>                connectionTimeout="20000"
> 
>                />
> 
>  
> 
> I have a java application that uses HTTP post to stream a large file (50Gb+).  This large file is received and processed by my servlet running in Tomcat. I am seeing following error in tomcat. What could be the possible reasons for this error? I have tried googling for this error, but no luck so far.
> 
>  
> 
> java.io.IOException: Invalid chunk header
> 
>         at org.apache.coyote.http11.filters.ChunkedInputFilter.doRead(ChunkedInputFilter.java:133)
> 
>         at org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:710)
> 
>         at org.apache.coyote.Request.doRead(Request.java:428)
> 
>         at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
> 
>         at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:405)
> 
>         at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327)
> 
>         at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
> 
>         ...... [ my servlet ]
> 
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> 
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
> 
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> 
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
> 
>         at java.lang.Thread.run(Unknown Source)
> 
>  
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: IOException: Invalid chunk header

Posted by André Warnier <aw...@ice-sa.com>.
Hi.

1) Please provide Tomcat version, Java version, platform OS.
2) The exception message seems pretty clear : Tomcat does not like the looks of one of the 
"chunk headers" of what it receives.
A protocol analyser may be the only way to see what is really being sent/received here, 
although with 50 GB of data, it might be fun..
3) since it is your application receiving this data, any idea of when it happens ? at the 
beginning of the 50 GB, in the middle, at the end ?


Aggarwal, Ajay wrote:
> I am using standard HTTP 1.1 connector. This is what I see from tomcat output
> 
> Ø  INFO [main] 2010-12-22 07:43:03,071 org.apache.coyote.http11.Http11Protocol - Initializing Coyote HTTP/1.1 on http-9080
> 
>  
> 
> And here is the connector configuration element from server.xml
> 
>              <Connector port="9080" protocol="HTTP/1.1"
> 
>                connectionTimeout="20000"
> 
>                />
> 
>  
> 
> I have a java application that uses HTTP post to stream a large file (50Gb+).  This large file is received and processed by my servlet running in Tomcat. I am seeing following error in tomcat. What could be the possible reasons for this error? I have tried googling for this error, but no luck so far.
> 
>  
> 
> java.io.IOException: Invalid chunk header
> 
>         at org.apache.coyote.http11.filters.ChunkedInputFilter.doRead(ChunkedInputFilter.java:133)
> 
>         at org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:710)
> 
>         at org.apache.coyote.Request.doRead(Request.java:428)
> 
>         at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
> 
>         at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:405)
> 
>         at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327)
> 
>         at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
> 
>         ...... [ my servlet ]
> 
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
> 
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> 
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> 
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
> 
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> 
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
> 
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
> 
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
> 
>         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
> 
>         at java.lang.Thread.run(Unknown Source)
> 
>  
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org