Details
-
Bug
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
-
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