[ https://issues.apache.org/jira/browse/BROOKLYN-171?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14738837#comment-14738837 ]
ASF GitHub Bot commented on BROOKLYN-171: ----------------------------------------- GitHub user nakomis opened a pull request: https://github.com/apache/incubator-brooklyn/pull/888 Changes propagator getDestinationSensor to lookup on sensor name, rather than sensor equality This resolves #BROOKLYN-171 You can merge this pull request into a Git repository by running: $ git pull https://github.com/nakomis/incubator-brooklyn fix/propagator-sensor-lookup Alternatively you can review and apply these changes as the patch at: https://github.com/apache/incubator-brooklyn/pull/888.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #888 ---- commit 105979d64b7b7eda9dd24e635e10b613cf2d9bd6 Author: Martin Harris <git...@nakomis.com> Date: 2015-09-10T14:33:32Z Changes propagator getDestinationSensor to lookup on sensor name, rather than sensor equality ---- > Mapping propagated sensor causes excessive CPU load > --------------------------------------------------- > > Key: BROOKLYN-171 > URL: https://issues.apache.org/jira/browse/BROOKLYN-171 > Project: Brooklyn > Issue Type: Bug > Reporter: Martin Harris > > Mapping a propagated sensor using a second propagator will cause excessive > CPU load, and the sensor will fail to propagate. This can be demonstrated > using the following YAML: > {noformat} > location: localhost > services: > - type: org.apache.brooklyn.entity.stock.BasicApplication > brooklyn.children: > - type: org.apache.brooklyn.entity.software.base.EmptySoftwareProcess > id: childid > brooklyn.enrichers: > - type: org.apache.brooklyn.enricher.stock.Propagator > brooklyn.config: > producer: $brooklyn:component("child", "childid") > propagating: > - $brooklyn:sensor("host.name") > - type: org.apache.brooklyn.enricher.stock.Propagator > brooklyn.config: > sensorMapping: > $brooklyn:sensor("host.name"): $brooklyn:sensor("host") > {noformat} > Running this YAML will cause CPU load on my machine to run to around 600% > CPU, and cause the Brooklyn console to become unresponsive. The specs of my > machine are as follows: > Model Name: MacBook Pro > Model Identifier: MacBookPro11,3 > Processor Name: Intel Core i7 > Processor Speed: 2.8 GHz > Number of Processors: 1 > Total Number of Cores: 4 > L2 Cache (per Core): 256 KB > L3 Cache: 6 MB > Memory: 16 GB > *Context (aka 'Why would you ever want to do this??')*: > The Redis cluster propagates the hostname of the master RedisStore up to the > cluster level [1]. We then added (in the YAML) a propagator with > `sensorMapping` to map the sensor `host.name` to `host` in order for it to be > consumed by a third party application (CloudFoundry via the > Brooklyn-Service-Broker[2]) > In this scenario (i.e. Redis, deploying to AWS from a rBrooklyn server), the > server web interface becomes completely unresponsive until the Brooklyn > process is terminated and restarted > [1]: > https://github.com/apache/incubator-brooklyn/blob/6f15e8a6d61c2e648547cf7faba03fbc06716421/software/nosql/src/main/java/org/apache/brooklyn/entity/nosql/redis/RedisClusterImpl.java#L73-L76 > [2]: https://github.com/cloudfoundry-incubator/brooklyn-service-broker -- This message was sent by Atlassian JIRA (v6.3.4#6332)