Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8074684

Compiler 100% CPU utilization and memory leak

XMLWordPrintable

    • x86_64
    • linux

      FULL PRODUCT VERSION :
      Java(TM) SE Runtime Environment (build 1.8.0_31-b13)
      Java HotSpot(TM) 64-Bit Server VM (build 25.31-b07, mixed mode)


      FULL OS VERSION :
      Linux shack 3.14-2-amd64 #1 SMP Debian 3.14.15-2 (2014-08-09) x86_64 GNU/Linux

      A DESCRIPTION OF THE PROBLEM :
      Since some time during the Java 8 releases, I have been observing the JVM compiler threads starting to consume 100% CPU (so 200% CPU in total), along with rapidly increasing memory use for the JVM process. A JVM that normally uses only a few hundred MBs of memory can, this way, eat up many GBs of memory in less than a minute. I have observed the problem on at least 3 independent machines, so it is at least not merely a local configuration issue of some kind.

      The memory leak does not always occur -- sometimes the compiler threads just stay spinning but cause no particular problems except increased CPU usage. When the memory leak does occur, however, it does not happen in the heap or metaspace, but appears to be in native memory. Heap or metaspace usage does not increase during the problem, and setting the heap size with -Xmx does not prevent the JVM process from consuming orders of magnitude more physical memory than the heap size was set to.

      The problem occurs irregularly, however, and I have no real idea what triggers it. I can often, but far from always, reproduce it simply by running one of my Java-based programs, but I have been able to observe no particular patterns in usage when it happens. More problematic is that I don't really know how to debug it further.

      It should perhaps be noted that I use Java almost exclusively to develop and run a few of my own programs, so it is perhaps not unlikely that it is something particular to them that causes this problem to happen.

      If you want a core dump or something of the JVM process when this happens, I'd be happy to provide such. I would provide a backtrace of the compiler threads, but with only a stripped executable I don't think it would be very useful.

      The impact of this problem is limited as I can usually just restart the JVM and have no problems on the next run, but it is quite annoying when it happens.

      THE PROBLEM WAS REPRODUCIBLE WITH -Xint FLAG: No

      THE PROBLEM WAS REPRODUCIBLE WITH -server FLAG: Yes

      REGRESSION. Last worked in version 7u45

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      I wish I knew.

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      See description.
      REPRODUCIBILITY :
      This bug can be reproduced occasionally.

            aroy Abhijit Roy (Inactive)
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: