[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-distro-pkg-dev
Subject:    [Bug 3237] New: JvmStatDataExtractor might throw monitor exception on retrieving certain info of a J
From:       bugzilla-daemon () icedtea ! classpath ! org
Date:       2016-11-23 16:32:11
Message-ID: bug-3237-30 () http ! icedtea ! classpath ! org/bugzilla/
[Download RAW message or body]


--1479918736.2aFE87a0.10292
Date: Wed, 23 Nov 2016 16:32:16 +0000
MIME-Version: 1.0
Content-Type: text/plain

http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3237

            Bug ID: 3237
           Summary: JvmStatDataExtractor might throw monitor exception on
                    retrieving certain info of a JVM
           Product: Thermostat
           Version: hg
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P5
         Component: agent
          Assignee: unassigned@icedtea.classpath.org
          Reporter: sgehwolf@redhat.com
                CC: thermostat@icedtea.classpath.org

I'm seeing an issue where the JVM does not get detected by thermostat due to an
exception being thrown before the actual vm-info record gets created:

Nov 23, 2016 3:15:35 PM
com.redhat.thermostat.backend.system.JvmStatHostListener vmStatusChanged
WARNING: error getting info for new vm 1
sun.jvmstat.monitor.MonitorException: Could not synchronize with target
    at
sun.jvmstat.perfdata.monitor.v2_0.PerfDataBuffer.synchWithTarget(PerfDataBuffer.java:277)
  at
sun.jvmstat.perfdata.monitor.v2_0.PerfDataBuffer.buildMonitorMap(PerfDataBuffer.java:131)
  at
sun.jvmstat.perfdata.monitor.PerfDataBufferImpl.findByName(PerfDataBufferImpl.java:241)
  at
sun.jvmstat.perfdata.monitor.AbstractPerfDataBuffer.findByName(AbstractPerfDataBuffer.java:100)
  at
sun.jvmstat.perfdata.monitor.AbstractMonitoredVm.findByName(AbstractMonitoredVm.java:85)
  at
com.redhat.thermostat.backend.system.JvmStatDataExtractor.getJavaVersion(JvmStatDataExtractor.java:78)
  at
com.redhat.thermostat.backend.system.JvmStatHostListener.createVmInfo(JvmStatHostListener.java:161)
  at
com.redhat.thermostat.backend.system.JvmStatHostListener.sendNewVM(JvmStatHostListener.java:135)
  at
com.redhat.thermostat.backend.system.JvmStatHostListener.vmStatusChanged(JvmStatHostListener.java:103)
  at
sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.fireVmStatusChangedEvents(MonitoredHostProvider.java:177)
  at
sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.access$300(MonitoredHostProvider.java:41)
  at
sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider$NotifierTask.run(MonitoredHostProvider.java:218)
  at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

The JVM itself (the pid) is there, but figuring out the Java Version for that
JVM process fails. This looks a lot like these JDK bugs:

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6637230
http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6602355

I'll try to create a simple reproducer for this. Either way, it should not fail
to create the vm-info record. Instead, it should fill in some
place-holder-value like "X unavailable" and once it does become available it
should update it.

Running jps on this system returns:
1 -- main class information unavailable

and once that JVM properly settles it changes to:
1 Bootstrap

-- 
You are receiving this mail because:
You are the assignee for the bug.
--1479918736.2aFE87a0.10292
Date: Wed, 23 Nov 2016 16:32:16 +0000
MIME-Version: 1.0
Content-Type: text/html

<html>
    <head>
      <base href="http://icedtea.classpath.org/bugzilla/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - JvmStatDataExtractor might throw monitor exception on retrieving \
certain info of a JVM"  \
href="http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3237">3237</a>  </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>JvmStatDataExtractor might throw monitor exception on retrieving \
certain info of a JVM  </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Thermostat
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>hg
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86_64
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P5
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>agent
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassigned&#64;icedtea.classpath.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>sgehwolf&#64;redhat.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>thermostat&#64;icedtea.classpath.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>I'm seeing an issue where the JVM does not get detected by thermostat \
due to an exception being thrown before the actual vm-info record gets created:

Nov 23, 2016 3:15:35 PM
com.redhat.thermostat.backend.system.JvmStatHostListener vmStatusChanged
WARNING: error getting info for new vm 1
sun.jvmstat.monitor.MonitorException: Could not synchronize with target
    at
sun.jvmstat.perfdata.monitor.v2_0.PerfDataBuffer.synchWithTarget(PerfDataBuffer.java:277)
  at
sun.jvmstat.perfdata.monitor.v2_0.PerfDataBuffer.buildMonitorMap(PerfDataBuffer.java:131)
  at
sun.jvmstat.perfdata.monitor.PerfDataBufferImpl.findByName(PerfDataBufferImpl.java:241)
  at
sun.jvmstat.perfdata.monitor.AbstractPerfDataBuffer.findByName(AbstractPerfDataBuffer.java:100)
  at
sun.jvmstat.perfdata.monitor.AbstractMonitoredVm.findByName(AbstractMonitoredVm.java:85)
  at
com.redhat.thermostat.backend.system.JvmStatDataExtractor.getJavaVersion(JvmStatDataExtractor.java:78)
  at
com.redhat.thermostat.backend.system.JvmStatHostListener.createVmInfo(JvmStatHostListener.java:161)
  at
com.redhat.thermostat.backend.system.JvmStatHostListener.sendNewVM(JvmStatHostListener.java:135)
  at
com.redhat.thermostat.backend.system.JvmStatHostListener.vmStatusChanged(JvmStatHostListener.java:103)
  at
sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.fireVmStatusChangedEvents(MonitoredHostProvider.java:177)
  at
sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider.access$300(MonitoredHostProvider.java:41)
  at
sun.jvmstat.perfdata.monitor.protocol.local.MonitoredHostProvider$NotifierTask.run(MonitoredHostProvider.java:218)
  at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

The JVM itself (the pid) is there, but figuring out the Java Version for that
JVM process fails. This looks a lot like these JDK bugs:

<a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6637230">http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6637230</a>
 <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6602355">http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6602355</a>


I'll try to create a simple reproducer for this. Either way, it should not fail
to create the vm-info record. Instead, it should fill in some
place-holder-value like &quot;X unavailable&quot; and once it does become available \
it should update it.

Running jps on this system returns:
1 -- main class information unavailable

and once that JVM properly settles it changes to:
1 Bootstrap</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>
--1479918736.2aFE87a0.10292--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic