Bug 38291 - Form actions hanging in UDecoder.convert
Summary: Form actions hanging in UDecoder.convert
Status: RESOLVED WONTFIX
Alias: None
Product: Tomcat 5
Classification: Unclassified
Component: Connector:Coyote (show other bugs)
Version: 5.0.30
Hardware: All Linux
: P2 normal (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-01-16 17:43 UTC by Boris Folgmann
Modified: 2007-10-22 17:43 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Boris Folgmann 2006-01-16 17:43:25 UTC
I've got two invocations of my authenticate.jsp hanging since 130501996 ms in
tomcat5-5.0.30-8jpp like this:

"TP-Processor6" daemon prio=1 tid=0x08493c68 nid=0x4f34 waiting on condition
[0x59c85000..0x59c86658]
        at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:82)
        at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:42)
        at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:405)
        at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:389)
        at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:341)
        at
org.apache.coyote.tomcat5.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:2418)
        at
org.apache.coyote.tomcat5.CoyoteRequest.getParameter(CoyoteRequest.java:1073)
        at
org.apache.coyote.tomcat5.CoyoteRequestFacade.getParameter(CoyoteRequestFacade.java:267)
        at
javax.servlet.ServletRequestWrapper.getParameter(ServletRequestWrapper.java:157)
        at
org.apache.jsp.free.login.authenticate_jsp._jspService(authenticate_jsp.java:141)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
[...]

The JSP is a form action, and the requests are hanging during the POST request.
The page doesn't receive anything special, just username and password.
Comment 1 Boris Folgmann 2006-01-17 20:24:40 UTC
We've got exactly the same problem with the Edit.jsp form action of JSPWiki (for
see more info see http://www.jspwiki.org/) on a different server.
Different hardware, but RedHat 9 and tomcat version are the same. Here's the trace 
of the hanging threads:

"TP-Processor9" daemon prio=1 tid=0x080f38c0 nid=0x5050 waiting on condition
[0x59e08000..0x59e094d8]
        at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:82)
        at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:42)
        at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:405)
        at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:389)
        at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:341)
        at
org.apache.coyote.tomcat5.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:2418)
        at
org.apache.coyote.tomcat5.CoyoteRequest.getParameter(CoyoteRequest.java:1073)
        at
org.apache.coyote.tomcat5.CoyoteRequestFacade.getParameter(CoyoteRequestFacade.java:267)
        at com.ecyrd.jspwiki.WikiEngine.safeGetParameter(WikiEngine.java:591)
        at org.apache.jsp.Edit_jsp._jspService(Edit_jsp.java:73)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)

and
"TP-Processor5" daemon prio=1 tid=0x084936e8 nid=0x4f33 waiting on condition
[0x59c04000..0x59c056d8]
        at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:82)
        at org.apache.tomcat.util.buf.UDecoder.convert(UDecoder.java:42)
        at org.apache.tomcat.util.http.Parameters.urlDecode(Parameters.java:405)
        at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:389)
        at
org.apache.tomcat.util.http.Parameters.processParameters(Parameters.java:341)
        at
org.apache.coyote.tomcat5.CoyoteRequest.parseRequestParameters(CoyoteRequest.java:2418)
        at
org.apache.coyote.tomcat5.CoyoteRequest.getParameter(CoyoteRequest.java:1073)
        at
org.apache.coyote.tomcat5.CoyoteRequestFacade.getParameter(CoyoteRequestFacade.java:267)
        at com.ecyrd.jspwiki.WikiEngine.safeGetParameter(WikiEngine.java:591)
        at org.apache.jsp.Edit_jsp._jspService(Edit_jsp.java:73)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
        at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)

I hope you can fix that!


Comment 2 Yoav Shapira 2006-04-13 19:26:09 UTC
I hope you can tell us the input to the convert call that makes it hang,
otherwise we can't reproduce it.  Thanks.
Comment 3 Mark Thomas 2007-10-22 17:43:59 UTC
Without information to reproduce there is little we can do with this.