You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@click.apache.org by "Kennedy, Stephan" <st...@siemens-enterprise.com> on 2011/06/10 13:09:52 UTC
Blocked Thread
Hi
Our Tomcat Servlet engine locked up running a little click web app of ours (which ran w/o problems for about a week).
The thread dump shows one thread has locked a semaphore for logging to the console while all the others are waiting on it.
Any idea why the initial locking thread is not returning to release the semaphore? Click is running in debug mode.
One of the waiting threads:
"http-8443-2" daemon prio=6 tid=0x02f5a400 nid=0x220 waiting for monitor entry [0x0396f000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.io.PrintStream.println(Unknown Source)
- waiting to lock <0x245128a8> (a java.io.PrintStream)
at org.apache.tomcat.util.log.SystemLogHandler.println(SystemLogHandler.java:238)
at org.apache.click.service.ConsoleLogService.log(ConsoleLogService.java:241)
at org.apache.click.service.ConsoleLogService.debug(ConsoleLogService.java:98)
at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:331)
at org.apache.click.ClickServlet.doPost(ClickServlet.java:294)
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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
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)
Locked ownable synchronizers:
- None
The blocking thread:
"http-8443-1" daemon prio=6 tid=0x0319b400 nid=0x1ef0 runnable [0x0382f000]
java.lang.Thread.State: RUNNABLE
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
at java.io.BufferedOutputStream.flush(Unknown Source)
- locked <0x2451c8d0> (a java.io.BufferedOutputStream)
at java.io.PrintStream.write(Unknown Source)
- locked <0x245128a8> (a java.io.PrintStream)
at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
at sun.nio.cs.StreamEncoder.flushBuffer(Unknown Source)
- locked <0x2451c910> (a java.io.OutputStreamWriter)
at java.io.OutputStreamWriter.flushBuffer(Unknown Source)
at java.io.PrintStream.write(Unknown Source)
- locked <0x245128a8> (a java.io.PrintStream)
at java.io.PrintStream.print(Unknown Source)
at java.io.PrintStream.println(Unknown Source)
- locked <0x245128a8> (a java.io.PrintStream)
at org.apache.tomcat.util.log.SystemLogHandler.println(SystemLogHandler.java:238)
at org.apache.click.service.ConsoleLogService.log(ConsoleLogService.java:241)
at org.apache.click.service.ConsoleLogService.debug(ConsoleLogService.java:98)
at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:331)
at org.apache.click.ClickServlet.doPost(ClickServlet.java:294)
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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
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)
Locked ownable synchronizers:
- None
Regards
Stephan
Re: Blocked Thread
Posted by Bob Schellink <sa...@gmail.com>.
Hi Stephan,
Strange that logging to the console can block. Which version of Tomcat
is this? Perhaps the issue is related to a version of TC?
I'd also recommend running Click in "production" mode as logging will
be minimal.
Kind regards
Bob
On Fri, Jun 10, 2011 at 1:09 PM, Kennedy, Stephan
<st...@siemens-enterprise.com> wrote:
> Hi
>
> Our Tomcat Servlet engine locked up running a little click web app of ours
> (which ran w/o problems for about a week).
> The thread dump shows one thread has locked a semaphore for logging to the
> console while all the others are waiting on it.
> Any idea why the initial locking thread is not returning to release the
> semaphore? Click is running in debug mode.
>
> One of the waiting threads:
>
> "http-8443-2" daemon prio=6 tid=0x02f5a400 nid=0x220 waiting for monitor
> entry [0x0396f000]
>
> java.lang.Thread.State: BLOCKED (on object monitor)
>
> at java.io.PrintStream.println(Unknown Source)
>
> - waiting to lock <0x245128a8> (a java.io.PrintStream)
>
> at
> org.apache.tomcat.util.log.SystemLogHandler.println(SystemLogHandler.java:238)
>
> at
> org.apache.click.service.ConsoleLogService.log(ConsoleLogService.java:241)
>
> at
> org.apache.click.service.ConsoleLogService.debug(ConsoleLogService.java:98)
>
> at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:331)
>
> at org.apache.click.ClickServlet.doPost(ClickServlet.java:294)
>
> 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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
>
> 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)
>
> Locked ownable synchronizers:
>
> - None
>
>
>
> The blocking thread:
>
> "http-8443-1" daemon prio=6 tid=0x0319b400 nid=0x1ef0 runnable [0x0382f000]
>
> java.lang.Thread.State: RUNNABLE
>
> at java.io.FileOutputStream.writeBytes(Native Method)
>
> at java.io.FileOutputStream.write(Unknown Source)
>
> at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
>
> at java.io.BufferedOutputStream.flush(Unknown Source)
>
> - locked <0x2451c8d0> (a java.io.BufferedOutputStream)
>
> at java.io.PrintStream.write(Unknown Source)
>
> - locked <0x245128a8> (a java.io.PrintStream)
>
> at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
>
> at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
>
> at sun.nio.cs.StreamEncoder.flushBuffer(Unknown Source)
>
> - locked <0x2451c910> (a java.io.OutputStreamWriter)
>
> at java.io.OutputStreamWriter.flushBuffer(Unknown Source)
>
> at java.io.PrintStream.write(Unknown Source)
>
> - locked <0x245128a8> (a java.io.PrintStream)
>
> at java.io.PrintStream.print(Unknown Source)
>
> at java.io.PrintStream.println(Unknown Source)
>
> - locked <0x245128a8> (a java.io.PrintStream)
>
> at
> org.apache.tomcat.util.log.SystemLogHandler.println(SystemLogHandler.java:238)
>
> at
> org.apache.click.service.ConsoleLogService.log(ConsoleLogService.java:241)
>
> at
> org.apache.click.service.ConsoleLogService.debug(ConsoleLogService.java:98)
>
> at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:331)
>
> at org.apache.click.ClickServlet.doPost(ClickServlet.java:294)
>
> 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.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
>
> 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)
>
> Locked ownable synchronizers:
>
> - None
>
>
> Regards
> Stephan
>