Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-13840

GraphiteReporter stops reporting from Memory concurrent access

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Won't Fix
    • 2.1.x
    • Legacy/Observability
    • None
    • Normal

    Description

      Gauges in the GraphiteReporter can, when getting compression offheap size, trip over the assertion in Memory.size(). As the GraphiteReporter only handles Exceptions this crashes the reporter and it sends no more metrics.

      benedict described it here and jbellis confirmed that it's now ok to remove the assertion.

      java.lang.AssertionError: null
              at org.apache.cassandra.io.util.Memory.size(Memory.java:359) ~[apache-cassandra-2.1.12.jar:2.1.12]
              at org.apache.cassandra.io.compress.CompressionMetadata.offHeapSize(CompressionMetadata.java:167) ~[apache-cassandra-2.1.12.jar:2.1.12]
              at org.apache.cassandra.io.sstable.SSTableReader.getCompressionMetadataOffHeapSize(SSTableReader.java:1315) ~[apache-cassandra-2.1.12.jar:2.1.12]
              at org.apache.cassandra.metrics.ColumnFamilyMetrics$30.value(ColumnFamilyMetrics.java:573) ~[apache-cassandra-2.1.12.jar:2.1.12]
              at org.apache.cassandra.metrics.ColumnFamilyMetrics$30.value(ColumnFamilyMetrics.java:568) ~[apache-cassandra-2.1.12.jar:2.1.12]
              at com.yammer.metrics.reporting.GraphiteReporter.processGauge(GraphiteReporter.java:309) ~[metrics-graphite-2.2.0.jar:na]
              at com.yammer.metrics.reporting.GraphiteReporter.processGauge(GraphiteReporter.java:26) ~[metrics-graphite-2.2.0.jar:na]
              at com.yammer.metrics.core.Gauge.processWith(Gauge.java:28) ~[metrics-core-2.2.0.jar:na]
              at com.yammer.metrics.reporting.GraphiteReporter.printRegularMetrics(GraphiteReporter.java:251) ~[metrics-graphite-2.2.0.jar:na]
              at com.yammer.metrics.reporting.GraphiteReporter.run(GraphiteReporter.java:216) ~[metrics-graphite-2.2.0.jar:na]
              at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_101]
              at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_101]
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_101]
              at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_101]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101]
              at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]
      

      Attachments

        Activity

          People

            mck Michael Semb Wever
            mck Michael Semb Wever
            Michael Semb Wever
            Votes:
            1 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: