-
Bug
-
Resolution: Duplicate
-
Major
-
None
-
[chris@fen-vz-jenkins ~]$ java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.8) (rhel-1.27.1.10.8.el5_8-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)
[chris@fen-vz-jenkins ~]$ uname -a
Linux fen-vz-jenkins.fen.aptivate.org 2.6.32-7-pve #1 SMP Mon Feb 13 07:33:21 CET 2012 i686 i686 i386 GNU/Linux
[chris@fen-vz-jenkins ~]$ cat /etc/issue
CentOS release 5.8 (Final)[ chris@fen-vz-jenkins ~]$ java -version java version "1.6.0_22" OpenJDK Runtime Environment (IcedTea6 1.10.8) (rhel-1.27.1.10.8.el5_8-i386) OpenJDK Server VM (build 20.0-b11, mixed mode) [ chris@fen-vz-jenkins ~]$ uname -a Linux fen-vz-jenkins.fen.aptivate.org 2.6.32-7-pve #1 SMP Mon Feb 13 07:33:21 CET 2012 i686 i686 i386 GNU/Linux [ chris@fen-vz-jenkins ~]$ cat /etc/issue CentOS release 5.8 (Final)
Jenkins starts using 100% CPU after a few days. Using jstack I see several threads trying to write compressed output, and apparently not changing over time:
- java.util.zip.Deflater.deflate(byte[], int, int) @bci=55, line=322 (Compiled frame; information may be imprecise)
- java.util.zip.DeflaterOutputStream.deflate() @bci=14, line=176 (Compiled frame)
- java.util.zip.DeflaterOutputStream.write(byte[], int, int) @bci=108, line=135 (Compiled frame)
- java.util.zip.GZIPOutputStream.write(byte[], int, int) @bci=4, line=89 (Compiled frame)
- org.kohsuke.stapler.compression.FilterServletOutputStream.write(byte[], int, int) @bci=7, line=31 (Compiled frame)
- sun.nio.cs.StreamEncoder.writeBytes() @bci=120, line=220 (Interpreted frame)
- sun.nio.cs.StreamEncoder.implClose() @bci=84, line=315 (Interpreted frame)
- sun.nio.cs.StreamEncoder.close() @bci=18, line=148 (Interpreted frame)
- java.io.OutputStreamWriter.close() @bci=4, line=233 (Interpreted frame)
- java.io.PrintWriter.close() @bci=21, line=312 (Interpreted frame)
- org.kohsuke.stapler.compression.CompressionFilter.reportException(java.lang.Exception, javax.servlet.http.HttpServletResponse) @bci=112, line=77 (Interpreted frame)
- org.kohsuke.stapler.compression.CompressionFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=57, line=53 (Compiled frame)
- winstone.FilterConfiguration.execute(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=25, line=194 (Compiled frame)
- winstone.RequestDispatcher.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=48, line=366 (Compiled frame)
- hudson.util.CharacterEncodingFilter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=43, line=81 (Compiled frame)
- winstone.FilterConfiguration.execute(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain) @bci=25, line=194 (Compiled frame)
- winstone.RequestDispatcher.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=48, line=366 (Compiled frame)
- winstone.RequestDispatcher.forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse) @bci=483, line=331 (Compiled frame)
- winstone.RequestHandlerThread.processRequest(winstone.WebAppConfiguration, winstone.WinstoneRequest, winstone.WinstoneResponse, java.lang.String) @bci=38, line=215 (Compiled frame)
- winstone.RequestHandlerThread.run() @bci=631, line=138 (Compiled frame)
- java.util.concurrent.Executors$RunnableAdapter.call() @bci=4, line=471 (Interpreted frame)
- java.util.concurrent.FutureTask$Sync.innerRun() @bci=29, line=334 (Interpreted frame)
- java.util.concurrent.FutureTask.run() @bci=4, line=166 (Interpreted frame)
- winstone.BoundedExecutorService$1.run() @bci=4, line=77 (Compiled frame)
- java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) @bci=46, line=1110 (Compiled frame)
- java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=5, line=603 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=679 (Interpreted frame)
I'm suspecting but not 100% sure that these threads are in an infinite loop (livelocked). I'm struggling to see what other threads might be doing this.
This JVM was not started with debugging enabled to attach a debugger for analysis. I've enabled it now. Stack traces attached as files below.
- duplicates
-
JENKINS-14362 100% CPU load during org.kohsuke.stapler.compression.CompressionFilter.reportException
- Resolved