Layer7 API Management

Expand all | Collapse all

Invalid Chunk Header error in Gateway

  • 1.  Invalid Chunk Header error in Gateway

    Posted 03-13-2019 04:15 PM

    Hi All,

     

    External client is sending a payload size of 20-30MB in binary format. But gateway is taking long time to process it and sometime we see error as below

     

    WARNING 717 com.l7tech.server.policy.variable.ServerVariables: Unsupported variable: size (Invalid chunk header)
    com.l7tech.util.CausedIOException: Invalid chunk header
    at com.l7tech.common.mime.MimeBody.h(Unknown Source)
    at com.l7tech.common.mime.MimeBody.getEntireMessageBodyLength(Unknown Source)
    at com.l7tech.message.j.getContentLength(Unknown Source)
    at com.l7tech.server.policy.variable.eh.select(Unknown Source)
    at com.l7tech.server.policy.variable.MessageSelector.select(Unknown Source)
    at com.l7tech.server.policy.variable.MessageSelector.select(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.a(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.a(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.processSingleVariableAsObject(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.processSingleVariableAsObject(Unknown Source)
    at com.l7tech.server.policy.variable.dw.get(Unknown Source)
    at com.l7tech.server.policy.variable.fs.a(Unknown Source)
    at com.l7tech.server.policy.variable.ServerVariables.get(Unknown Source)
    at com.l7tech.server.message.b.getBuiltinVariable(Unknown Source)
    at com.l7tech.server.message.b.a(Unknown Source)
    at com.l7tech.server.message.b.getVariableMap(Unknown Source)
    at com.l7tech.server.log.TrafficLogger.log(Unknown Source)
    at com.l7tech.server.MessageProcessor.a(Unknown Source)
    at com.l7tech.server.MessageProcessor.processMessageNoAudit(Unknown Source)
    at com.l7tech.server.SoapMessageProcessingServlet.serviceNoAudit(Unknown Source)
    at com.l7tech.server.SoapMessageProcessingServlet.access$000(Unknown Source)
    at com.l7tech.server.a1.call(Unknown Source)
    at com.l7tech.server.audit.AuditContextFactory.doWithNewAuditContext(Unknown Source)
    at com.l7tech.server.SoapMessageProcessingServlet.service(Unknown Source)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:770)
    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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:342)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
    at com.l7tech.server.transport.http.HttpNamespaceFilter.doFilter(Unknown Source)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.l7tech.server.WsdlFilter.doFilter(Unknown Source)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.l7tech.server.transport.http.ConnectionIdFilter.doFilter(Unknown Source)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.l7tech.server.transport.http.InputTimeoutFilter.doFilter(Unknown Source)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.l7tech.server.log.HybridDiagnosticContextServletFilter.doFilter(Unknown Source)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:234)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:181)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at com.l7tech.server.tomcat.ResponseKillerValve.invoke(Unknown Source)
    at com.l7tech.server.tomcat.ConnectionIdValve.invoke(Unknown Source)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:295)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:610)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:410)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
    Caused by: java.io.IOException: Invalid chunk header
    at org.apache.coyote.http11.filters.ChunkedInputFilter.throwIOException(ChunkedInputFilter.java:591)
    at org.apache.coyote.http11.filters.ChunkedInputFilter.doRead(ChunkedInputFilter.java:165)
    at org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:706)
    at org.apache.coyote.Request.doRead(Request.java:427)
    at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:305)
    at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:419)
    at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:328)
    at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
    at com.l7tech.server.transport.http.TimeoutInputStream.read(Unknown Source)
    at java.io.FilterInputStream.read(FilterInputStream.java:133)
    at java.io.PushbackInputStream.read(PushbackInputStream.java:186)
    at com.l7tech.common.io.ByteLimitInputStream.read(Unknown Source)
    at com.l7tech.common.mime.a.read(Unknown Source)
    at java.io.SequenceInputStream.read(SequenceInputStream.java:207)
    at java.io.InputStream.read(InputStream.java:101)
    at com.l7tech.util.IOUtils.copyStream(Unknown Source)
    at com.l7tech.util.IOUtils.copyStream(Unknown Source)
    at com.l7tech.common.mime.FileStashManager.stash(Unknown Source)
    at com.l7tech.common.mime.HybridStashManager.stash(Unknown Source)
    at com.l7tech.common.mime.i.a(Unknown Source)
    at com.l7tech.common.mime.MimeBody.e(Unknown Source)
    at com.l7tech.common.mime.MimeBody.b(Unknown Source)
    at com.l7tech.common.mime.MimeBody.access$800(Unknown Source)
    at com.l7tech.common.mime.f.hasNext(Unknown Source)
    at com.l7tech.server.policy.variable.eq.select(Unknown Source)
    at com.l7tech.server.policy.variable.MessageSelector.select(Unknown Source)
    at com.l7tech.server.policy.variable.MessageSelector.select(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.a(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.a(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.processSingleVariableAsObject(Unknown Source)
    at com.l7tech.server.policy.variable.ExpandVariables.processSingleVariableAsObject(Unknown Source)
    at com.l7tech.server.policy.variable.dw.get(Unknown Source)
    at com.l7tech.server.policy.variable.fs.a(Unknown Source)
    at com.l7tech.server.policy.variable.ServerVariables.get(Unknown Source)
    at com.l7tech.server.message.b.getBuiltinVariable(Unknown Source)
    at com.l7tech.server.message.b.a(Unknown Source)
    at com.l7tech.server.message.b.getVariableMap(Unknown Source)
    at com.l7tech.server.policy.assertion.ServerAuditDetailAssertion.checkRequest(Unknown Source)
    at com.l7tech.server.policy.assertion.composite.ServerCompositeAssertion.iterateChildren(Unknown Source)
    at com.l7tech.server.policy.assertion.composite.ServerAllAssertion.checkRequest(Unknown Source)
    at com.l7tech.server.policy.ServerPolicy.checkRequest(Unknown Source)
    at com.l7tech.server.policy.w.call(Unknown Source)
    at com.l7tech.server.policy.w.call(Unknown Source)
    at com.l7tech.common.log.HybridDiagnosticContext.doInContext(Unknown Source)
    at com.l7tech.server.policy.ServerPolicyHandle.checkRequest(Unknown Source)
    at com.l7tech.server.ao.b(Unknown Source)
    at com.l7tech.server.ao.a(Unknown Source)
    at com.l7tech.server.ao.access$700(Unknown Source)
    ... 43 more
    2019-03-13T08:14:59.602-0500 SEVERE 717 com.l7tech.server.SoapMessageProcessingServlet: RaiseErrorAssertion is stopping execution.

     

    Could you please let me know how to resolve this issue.

     

    Thanks!



  • 2.  Re: Invalid Chunk Header error in Gateway

    Posted 03-14-2019 12:25 PM

    Good morning,

     

    I see that you have also opened a case on this issue and one of our senior engineers are engaged. Once we work through the issue in the case we will update this community post with the outcome.

     

    Sincerely,

     

    Stephen Hughes

    Broadcom Support