Error on getOutputStream in Shibboleth IdP

nakaya nakaya at jnakaya.onmicrosoft.com
Tue Apr 2 06:45:42 UTC 2024


Hello.

Please excuse my poor English.

When Shibboleth IdP was running at high load, the following error occurred for some requests.

=======
Critical [ajp-nio-127.0.0.1-8009-exec-603] org.apache.catalina.core.StandardWrapperValve.invoke path[/idp] in context with Servlet.service() in servlet [idp] with exception [Request processing failed; nested exception is java.lang.IllegalStateException: getOutputStream() has already been called for this has already been called for this response] was thrown with the underlying cause.
        IllegalStateException: getOutputStream() has already been called for this response
                at org.apache.catalina.connector.Response.getWriter(Response.java:584)
                at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:227)
                at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:114)
                at net.shibboleth.utilities.java.support.net.CookieBufferingFilter$CookieBufferingHttpServletResponseProxy.getWriter(CookieBufferingFilter.java:117)
                at net.shibboleth.ext.spring.velocity.VelocityView.mergeTemplate(VelocityView.java:352)
                at net.shibboleth.ext.spring.velocity.VelocityView.doRender(VelocityView.java:295)
                at net.shibboleth.ext.spring.velocity.VelocityView.renderMergedTemplateModel(VelocityView.java:226)
                at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:179)
                at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:316)
                at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373)
                at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118)
                at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057)
                at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
                at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
                at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
                at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
                at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
                at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
                at net.shibboleth.idp.log.SLF4JMDCServletFilter.doFilter(SLF4JMDCServletFilter.java:72)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
                at net.shibboleth.utilities.java.support.net.RequestResponseContextFilter.doFilter(RequestResponseContextFilter.java:61)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
                at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
                at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
                at net.shibboleth.utilities.java.support.net.CookieBufferingFilter.doFilter(CookieBufferingFilter.java:68)
                at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
                at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
                at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
                at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
                at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
                at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
                at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
                at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
                at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
                at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:769)
                at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
                at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:433)
                at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
                at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:895)
                at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1722)
                at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
                at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
                at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
                at java.base/java.lang.Thread.run(Thread.java:829)
=======

The version information is as follows
Shibboleth IdP: 4.0.1
Tomcat: 9.0.54.0

Are there any possible causes of the above error?

Since Shibboleth IdP was under high load (about 10 authentications per second) when the error occurred, is this an error that may occur under high load?

Thanks

Nakaya
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20240402/8cd4c04c/attachment.htm>


More information about the users mailing list