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
<[email protected]> 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
>

Reply via email to