You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/10/23 19:56:48 UTC

DO NOT REPLY [Bug 24073] New: - hang/deadlock, possibly in FileLogger

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24073>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24073

hang/deadlock, possibly in FileLogger

           Summary: hang/deadlock, possibly in FileLogger
           Product: Tomcat 4
           Version: 4.1.27
          Platform: PC
               URL: http://www.nap.edu/building/catalina_hang_trace.txt
        OS/Version: Linux
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Catalina:Modules
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: building@nap.edu


Based on some Googling this may be a JDK/JRE problem, rather than a
Catalina-specific issue, but since I'm not real sure how to read Java thread
dumps in the first place I figure I'll check here first.

We've had a recurring hang on our standalone 4.1.24 and 4.1.27 installations
(the binary distributions thereof), using Sun's 1.4.2 JDK.  The server will sit
quietly for a few days, handling no requests except our local monitoring
software's periodic "GET /" every ten minutes or so.  Once every day or three,
it'll wedge hard, and requests to the 8080 socket time out.  Nothing shows up in
logs (with every debug parameter I could find set to 99), and it takes a kill -9
to bring it down.  Unfortunately, I can't seem to produce a system state that'll
instantly reproduce the problem, so I just have to sit around and wait for a
couple of days before it crops up again. :/

I tossed a -QUIT at the most recent occurence on a 4.1.27 install, and the thing
my (very inexpert) eye immediately sees is the interaction between threads 23
and 18 and the locking on the FileWriter (0x456997c8), which doesn't seem to
crop up if I dump threads on a normally functioning server.

I'll put the full thread dump in that little URL box up there, in case that's
more helpful than what I've pasted.

"Thread-23" daemon prio=1 tid=0x0885f958 nid=0x84f waiting for monitor entry
[4f26a000..4f26a714]
        at java.io.PrintWriter.println(PrintWriter.java:515)
        - waiting to lock <0x456997c8> (a java.io.FileWriter)
        at org.apache.catalina.logger.FileLogger.log(FileLogger.java:293)
        at org.apache.catalina.core.ContainerBase.log(ContainerBase.java:1418)
        at
org.apache.catalina.core.StandardEngineMapper.map(StandardEngineMapper.java:193)
        at org.apache.catalina.core.ContainerBase.map(ContainerBase.java:1016)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:164)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
        at java.lang.Thread.run(Thread.java:534)

"Thread-18" daemon prio=1 tid=0x0872be00 nid=0x84f waiting on condition
[4efe5000..4efe5714]
        at java.io.Writer.write(Writer.java:126)
        at java.io.PrintWriter.newLine(PrintWriter.java:254)
        - locked <0x456997c8> (a java.io.FileWriter)
        at java.io.PrintWriter.println(PrintWriter.java:405)
        at java.io.PrintWriter.println(PrintWriter.java:516)
        - locked <0x456997c8> (a java.io.FileWriter)
        at org.apache.catalina.logger.FileLogger.log(FileLogger.java:293)
        at org.apache.catalina.core.ContainerBase.log(ContainerBase.java:1418)
        at
org.apache.catalina.core.StandardEngineMapper.map(StandardEngineMapper.java:221)
        at org.apache.catalina.core.ContainerBase.map(ContainerBase.java:1016)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:164)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
        at java.lang.Thread.run(Thread.java:534)

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org