Uploaded image for project: 'Brooklyn'
  1. Brooklyn
  2. BROOKLYN-346

NPE after restart, in AutoScalerPolicy.onMetricChanged (when using yaml DSL for config)

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 0.10.0
    • None

    Description

      After restarting Brooklyn (using 0.10.0-SNAPSHOT), I saw the NPE below in the log:

      2016-09-09 09:33:11,913 WARN  o.a.b.c.m.i.LocalSubscriptionManager [brooklyn-execmanager-VtZheMDn-10]: Error processing subscriptions to LSM.publish(DynamicClusterImpl{id=pwty9ia4ww}.Sensor: cpu.average (java.lang.Double)=0.005 @ 1473409991910): java.lang.NullPointerException
      java.lang.NullPointerException: null
              at org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy.onMetricChanged(AutoScalerPolicy.java:755) ~[brooklyn-policy-0.10.0-20160907.0931.jar:0.10.0-20160907.0931]
              at org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy.access$700(AutoScalerPolicy.java:80) ~[brooklyn-policy-0.10.0-20160907.0931.jar:0.10.0-20160907.0931]
              at org.apache.brooklyn.policy.autoscaling.AutoScalerPolicy$11.onEvent(AutoScalerPolicy.java:448) ~[brooklyn-policy-0.10.0-20160907.0931.jar:0.10.0-20160907.0931]
              at org.apache.brooklyn.core.mgmt.internal.LocalSubscriptionManager$2.run(LocalSubscriptionManager.java:244) ~[brooklyn-core-0.10.0-20160907.0931.jar:0.10.0-20160907.0931]
              at org.apache.brooklyn.util.concurrent.CallableFromRunnable.call(CallableFromRunnable.java:43) [brooklyn-utils-common-0.10.0-20160907.0931.jar:0.10.0-20160907.0931]
              at org.apache.brooklyn.util.core.task.BasicExecutionManager$SubmissionCallable.call(BasicExecutionManager.java:519) [brooklyn-core-0.10.0-20160907.0931.jar:0.10.0-20160907.0931]
              at org.apache.brooklyn.util.core.task.SingleThreadedScheduler$1.call(SingleThreadedScheduler.java:116) [brooklyn-core-0.10.0-20160907.0931.jar:0.10.0-20160907.0931]
              at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_95]
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_95]
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_95]
              at java.lang.Thread.run(Thread.java:745) [na:1.7.0_95]
      

      That line is executing getMetricUpperBound().doubleValue().

      I suspect this is the same underlying cause as https://issues.apache.org/jira/browse/BROOKLYN-345.

      The policy is configured with:

      autoscaler.metricUpperBound:
        $brooklyn:entity("docker-swarm-nodes").parent().config("swarm.scaling.cpu.limit")
      

      And the entity is configured with:

      brooklyn.parameters:
        - name: swarm.scaling.cpu.limit
          label: Swarm Scaling CPU Limit
          type: double
          default: 0.95
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            aled.sage Aled Sage
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: