Layer7 API Management

 View Only
  • 1.  Invalid Chunk Header error in Gateway

    Posted Mar 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

    Broadcom Employee
    Posted Mar 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



  • 3.  RE: Re: Invalid Chunk Header error in Gateway

    Posted Aug 19, 2020 12:09 PM
    Hi Stephen,

    What is the update on this issue? Is that because of large header size?

    Thanks
    Ravi