Uploaded image for project: 'ZooKeeper'
  1. ZooKeeper
  2. ZOOKEEPER-3784

PrometheusProvider uses deprecated sun.misc.Unsafe

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 3.6.0
    • None
    • metric system
    • None

    Description

      Enabled Prometheus Metrics Server  on zookeeper that is running on  OpenJDK-11.0.5 with minimal modules enabled. Server crashed with below error.

       

       

      2020-04-04 05:17:32,310 [myid:1] - INFO  [main:AbstractConnector@330] - Started ServerConnector@7c711375{HTTP/1.1,[http/1.1]} {0.0.0.0:7000} 2020-04-04 05:17:32,310 [myid:1] - INFO  [main:AbstractConnector@330] - Started ServerConnector@7c711375{HTTP/1.1,[http/1.1]} {0.0.0.0:7000} 2020-04-04 05:17:32,311 [myid:1] - INFO  [main:Server@399] - Started @897ms2020-04-04 05:17:32,321 [myid:1] - INFO  [main:ServerMetrics@62] - ServerMetrics initialized with provider org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider@5efa40fe2020-04-04 05:17:32,334 [myid:1] - INFO  [main:AbstractConnector@380] - Stopped ServerConnector@7c711375{HTTP/1.1,[http/1.1]} {0.0.0.0:7000} 2020-04-04 05:17:32,335 [myid:1] - INFO  [main:ContextHandler@1016] - Stopped o.e.j.s.ServletContextHandler@4c163e3{/,null,UNAVAILABLE}Exception in thread "main" java.lang.NoClassDefFoundError: sun/misc/Unsafe at io.prometheus.client.Striped64.getUnsafe(Striped64.java:316) at io.prometheus.client.Striped64.<clinit>(Striped64.java:296) at io.prometheus.client.Summary$Child.<init>(Summary.java:260) at io.prometheus.client.Summary$Child.<init>(Summary.java:198) at io.prometheus.client.Summary.newChild(Summary.java:159) at io.prometheus.client.Summary.newChild(Summary.java:81) at io.prometheus.client.SimpleCollector.labels(SimpleCollector.java:76) at io.prometheus.client.SimpleCollector.initializeNoLabelsChild(SimpleCollector.java:107) at io.prometheus.client.Summary.<init>(Summary.java:92) at io.prometheus.client.Summary$Builder.create(Summary.java:136) at io.prometheus.client.Summary$Builder.create(Summary.java:95) at io.prometheus.client.SimpleCollector$Builder.register(SimpleCollector.java:245) at org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider$PrometheusSummary.<init>(PrometheusMetricsProvider.java:348) at org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider$Context.lambda$getSummary$2(PrometheusMetricsProvider.java:235) at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(Unknown Source) at org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider$Context.getSummary(PrometheusMetricsProvider.java:231) at org.apache.zookeeper.server.ServerMetrics.<init>(ServerMetrics.java:70) at org.apache.zookeeper.server.ServerMetrics.metricsProviderInitialized(ServerMetrics.java:63) at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:161) at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:136) at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:90)Caused by: java.lang.ClassNotFoundException: sun.misc.Unsafe at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source) at java.base/java.lang.ClassLoader.loadClass(Unknown Source) ... 21 more  
      

       

      When I enabled jdk.unsupported module, zookeeper server started and able to access prometheus metrics. However jdk.unsupported is deprecated.

      Attachments

        1. zoo.log
          3 kB
          Karthik Prasad

        Activity

          People

            Unassigned Unassigned
            karthik.1987 Karthik Prasad
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: