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
>