Skip to content
  1. May 25, 2012
  2. May 24, 2012
    • Kohsuke Kawaguchi's avatar
      bit of simplification · fd5aa2bc
      Kohsuke Kawaguchi authored
      fd5aa2bc
    • Kohsuke Kawaguchi's avatar
      avoid using deprecated method · a5691ea0
      Kohsuke Kawaguchi authored
      a5691ea0
    • Kohsuke Kawaguchi's avatar
      Fixed PermGen OutOfMemoryError during full clean build. · 2f9dff73
      Kohsuke Kawaguchi authored
      Plexus compiler 1.8.6 that maven-compiler-plugin 2.4 has a static field
      to store a reference to the Javac class in tools.jar
      
      In JDK that I use (6u26), Javac has a static field that stores what
      appears to be a cache of jar files (ZipFileIndex.zipFileIndexCache).
      And in addition, Maven instantiates a separate ClassRealm to host plugin
      jar files when a project has any build extensions.
      
      The combined result is that during a build, we end up having multiple
      copies of URLClassLoader that loads tools.jar, and each ends up caching
      jar files it was used. This puts a pressure to permgen (although I
      couldn't pinpoint which portions of those caches use permgen), resulting
      in OOME.
      
      In Plexus compiler 1.9, Olivier added a new feature to control the
      caching/reuse of Javac compiler. While this apparently was done
      primarily for fixing concurrency issues in multi-threaded builds, it is
      also a useful mechanism to prevent the retention of Javac classes.
      
      So I pushed the SNAPSHOT version of maven-compiler-plugin as
      2.5-jenkins-1 and tweaking POM to use it.
      2f9dff73
    • Olivier Lamy's avatar
      Merge pull request #484 from cquinn/master · 7c51287f
      Olivier Lamy authored
      Fixed grammatical error in build page message.
      Thnaks!
      7c51287f
    • Kohsuke Kawaguchi's avatar
      [FIXED JENKINS-13625] · 18963ee9
      Kohsuke Kawaguchi authored
      In the end, proper fix requires having a filter that tracks
      GZipOutputStream.
      18963ee9
    • Kohsuke Kawaguchi's avatar
    • Carl Quinn's avatar
      cd34e384
    • Carl Quinn's avatar
      f945f913
    • Kohsuke Kawaguchi's avatar
      Fixed a bug in Jenkins.overallNodeProvisioner · be1f8f91
      Kohsuke Kawaguchi authored
      Until now, Jenkins.overallNodeProvisioner was tracking an inconsistent
      pair of numbers. On one hand, it was tracking all the executors in the
      system, but then it was also only tracking the # of free-roaming
      label-unassigned jobs as the queue length.
      
      So if all your slaves are set with Node.Mode.EXCLUSIVE and you have some
      free-roaming jobs, then it'll never tickle NodePrivisioner.
      
      In other words, the # of executors weren't reflecting the actual # of
      executors that can execute what's counted as the queue length.
      
      See the problem report at
      https://groups.google.com/forum/?fromgroups#!topic/jenkinsci-dev/bUwGEgOwv4Q
      
      To fix this, I introduced another LoadStatistics that only counts
      the # of executors that can execute free-roaming jobs, and # of
      free-roaming jobs as the queue length. In this way, two pairs of numbers
      are consistent.
      
      This now allows us to use overallLoadStatistics for really the entire
      system, including all executors and the total queue length. This is
      primarily for administrators to see the resource utilization, and it is
      not useful for NodeProvisioner input because it's mixing too many
      different things.
      
      The semantics change in OverallLoadStatistics.queueLength allows us to
      deprecate its totalQueueLength field.
      be1f8f91
    • Kohsuke Kawaguchi's avatar
  3. May 23, 2012
  4. May 22, 2012
Loading