You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@brooklyn.apache.org by aledsage <gi...@git.apache.org> on 2017/06/16 13:09:50 UTC

[GitHub] brooklyn-server pull request #736: Test performance/scalability of many enti...

GitHub user aledsage opened a pull request:

    https://github.com/apache/brooklyn-server/pull/736

    Test performance/scalability of many entities

    See individual commits for minor changes / improvements to our `AbstractPerformanceTest` support, which builds up to adding the `ScalabilityPerformanceTest`.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/aledsage/brooklyn-server test-performance-many-entities

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/brooklyn-server/pull/736.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 #736
    
----
commit bfc66f7f352690605ffeb03b6146a13e969f1bfd
Author: Aled Sage <al...@gmail.com>
Date:   2017-06-06T10:20:35Z

    Test tear-down: limit number of threads in Entities.destroyAll
    
    In stress/scale tests that create 1000s of apps, trying to stop them 
    all concurrently with a thread per app causes an OutOfMemoryError
    due to too many threads.

commit ffd799eba6f5768383f1fe651515d39450a2f942
Author: Aled Sage <al...@gmail.com>
Date:   2017-06-06T10:21:25Z

    AbstractPerformanceTest to extends BrooklynAppUnitTestSupport

commit 3f36a298e71027bdb3f92b6ba0425a8c98020c7a
Author: Aled Sage <al...@gmail.com>
Date:   2017-06-06T10:21:57Z

    Performance tests: support numConcurrentJobs

commit 9f758bf5b5678c5480299b97a564e46264a6148c
Author: Aled Sage <al...@gmail.com>
Date:   2017-06-06T12:01:21Z

    Performance test: add options.postWarmup

commit 06f5aac520c5504fe899710e3cc3a28c09e46cc5
Author: Aled Sage <al...@gmail.com>
Date:   2017-06-06T12:02:04Z

    Performance test: add abortIfIterationLongerThan
    
    (And log partial results if fails)

commit dc74f72886d652a672fa35ee2dd6be973b18c549
Author: Aled Sage <al...@gmail.com>
Date:   2017-06-06T10:22:20Z

    Add scalability test for many entities

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-server issue #736: Test performance/scalability of many entities

Posted by drigodwin <gi...@git.apache.org>.
Github user drigodwin commented on the issue:

    https://github.com/apache/brooklyn-server/pull/736
  
    The test failure:
    ```
    Error Message
    
    failed succeeds-eventually, 21 attempts, 3001ms elapsed: AssertionError: entity=Application[grc5o5nv]; attribute=Sensor: service.state (org.apache.brooklyn.core.entity.lifecycle.Lifecycle) expected [running] but found [on-fire]
    
    Stacktrace
    
    java.lang.AssertionError: failed succeeds-eventually, 21 attempts, 3001ms elapsed: AssertionError: entity=Application[grc5o5nv]; attribute=Sensor: service.state (org.apache.brooklyn.core.entity.lifecycle.Lifecycle) expected [running] but found [on-fire]
    	at org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.assertAttributeEqualsEventually(ServiceStateLogicTest.java:338)
    	at org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.testManuallySettingIndicatorsOnApplications(ServiceStateLogicTest.java:269)
    Caused by: java.lang.AssertionError: entity=Application[grc5o5nv]; attribute=Sensor: service.state (org.apache.brooklyn.core.entity.lifecycle.Lifecycle) expected [running] but found [on-fire]
    	at org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.assertAttributeEqualsEventually(ServiceStateLogicTest.java:338)
    	at org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.testManuallySettingIndicatorsOnApplications(ServiceStateLogicTest.java:269)
    
    Standard Output
    
    2017-06-16 13:17:15,561 INFO  TESTNG INVOKING CONFIGURATION: "Surefire test" - @AfterMethod org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown()
    2017-06-16 13:17:15,566 INFO  TESTNG PASSED CONFIGURATION: "Surefire test" - @AfterMethod org.apache.brooklyn.core.test.BrooklynMgmtUnitTestSupport.tearDown() finished in 5 ms
    2017-06-16 13:17:15,567 INFO  TESTNG INVOKING CONFIGURATION: "Surefire test" - @BeforeMethod org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport.setUp()
    2017-06-16 13:17:15,603 INFO  TESTNG PASSED CONFIGURATION: "Surefire test" - @BeforeMethod org.apache.brooklyn.core.test.BrooklynAppUnitTestSupport.setUp() finished in 36 ms
    2017-06-16 13:17:15,603 INFO  TESTNG INVOKING: "Surefire test" - org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.testManuallySettingIndicatorsOnApplications()
    2017-06-16 13:17:15,709 WARN  Setting TestEntityImpl{id=k60ds69w4m} on-fire due to problems when expected running, up=false, not-up-indicators: {test-indicator-1=We're also pretending to block service up}
    2017-06-16 13:17:15,709 WARN  Setting TestEntityImpl{id=k60ds69w4m} on-fire due to problems when expected running, up=false, not-up-indicators: {test-indicator-1=We're also pretending to block service up}
    2017-06-16 13:17:15,710 WARN  Setting Application[grc5o5nv] on-fire due to problems when expected null / up=true: {service-lifecycle-indicators-from-children-and-members=Required entity not healthy: TestEntityImpl{id=k60ds69w4m}}
    2017-06-16 13:17:15,811 WARN  Setting Application[grc5o5nv] on-fire due to problems when expected null / up=true: {service-lifecycle-indicators-from-children-and-members=Not enough entities running to be quorate}
    2017-06-16 13:17:15,814 WARN  Setting Application[grc5o5nv] on-fire due to problems when expected null / up=true: {service-lifecycle-indicators-from-children-and-members=Not enough entities running to be quorate}
    2017-06-16 13:17:15,850 INFO  No Camp-YAML parser registered for parsing catalog item DSL; skipping DSL-parsing
    2017-06-16 13:17:16,062 WARN  Service is not up when setting running on Application[grc5o5nv]; delayed 210ms but Sensor: service.isUp (java.lang.Boolean) did not recover from false; not-up-indicators={service-lifecycle-indicators-from-children-and-members=No entities present}
    2017-06-16 13:17:16,062 WARN  Setting Application[grc5o5nv] on-fire due to problems when expected running, up=false, problems: {service-lifecycle-indicators-from-children-and-members=Not enough entities running to be quorate}
    2017-06-16 13:17:16,172 WARN  Setting TestEntityImpl{id=cooppg7wpw} on-fire due to problems when expected running, up=false, not-up-indicators: {}
    2017-06-16 13:17:16,172 WARN  Setting TestEntityImpl{id=cooppg7wpw} on-fire due to problems when expected running, up=false, not-up-indicators: {}
    2017-06-16 13:17:19,176 INFO  succeedsEventually exceeded max attempts or timeout - 21 attempts lasting 3000 ms, for RunnableAdapter(org.apache.brooklyn.core.entity.EntityAsserts$1@37c5a097)
    2017-06-16 13:17:19,176 INFO  failed succeeds-eventually, 21 attempts, 3000ms elapsed (rethrowing): java.lang.AssertionError: entity=Application[grc5o5nv]; attribute=Sensor: service.state (org.apache.brooklyn.core.entity.lifecycle.Lifecycle) expected [running] but found [on-fire]
    2017-06-16 13:17:19,177 WARN  Expected Application[grc5o5nv] eventually to have Sensor: service.state (org.apache.brooklyn.core.entity.lifecycle.Lifecycle) = running; instead:
    Application[grc5o5nv] fmgrc5o5nv
        displayName = TestApplication:fmgr
        locations = []
        onbox.base.dir.skipResolution = true
        application.id: fmgrc5o5nv
        entity.id: fmgrc5o5nv
        service.isUp: true
        service.problems: {service-lifecycle-indicators-from-children-and-members=Required entity not healthy: TestEntityImpl{id=cooppg7wpw}}
        service.state: on-fire
        service.state.expected: running @ 1497619036062 / Fri Jun 16 13:17:16 UTC 2017
        Enrichers:
          Transformer{uniqueTag=service.isUp if no service.notUp.indicators, running=true, entity=Application[grc5o5nv], id=c1a8eejp9l}
              enricher.sourceSensor[ConfigKey:org.apache.brooklyn.api.sensor.Sensor] = Sensor: service.notUp.indicators (java.util.Map)
              enricher.suppressDuplicates[ConfigKey:java.lang.Boolean] = true
              enricher.targetSensor[ConfigKey:org.apache.brooklyn.api.sensor.Sensor] = Sensor: service.isUp (java.lang.Boolean)
              enricher.transformation[ConfigKey:com.google.common.base.Function] = if[{Predicates.not(Predicates.isNull())=forPredicate(Predicates.equalTo(0)(sizeFunction(keys)))}]-else[UNCHANGED]
          ComputeServiceState{uniqueTag=service.state.actual, running=true, entity=Application[grc5o5nv], id=amlokuuicg}
          ComputeServiceIndicatorsFromChildrenAndMembers{uniqueTag=service-lifecycle-indicators-from-children-and-members, running=true, entity=Application[grc5o5nv], id=hnr1lmcmmo}
              enricher.aggregating.fromChildren[ConfigKey:java.lang.Boolean] = true
              enricher.aggregating.fromMembers[ConfigKey:java.lang.Boolean] = true
              enricher.service_state.children_and_members.ignore_entities.service_up_null[ConfigKey:java.lang.Boolean] = false
              enricher.service_state.children_and_members.quorum.running[ConfigKey:org.apache.brooklyn.util.collections.QuorumCheck] = QuorumCheck[allAndAtLeastOne;require=1,100.0%]
              enricher.service_state.children_and_members.quorum.up[ConfigKey:org.apache.brooklyn.util.collections.QuorumCheck] = QuorumCheck[atLeastOneUnlessEmpty;require=1,0.0%|0]
      TestEntityImpl{id=cooppg7wpw} cooppg7wpw
          displayName = TestEntity:coop
          locations = []
          application.id: fmgrc5o5nv
          entity.id: cooppg7wpw
          service.isUp: true
          service.state: on-fire
          service.state.expected: running @ 1497619036172 / Fri Jun 16 13:17:16 UTC 2017
          Enrichers:
            Transformer{uniqueTag=service.isUp if no service.notUp.indicators, running=true, entity=TestEntityImpl{id=cooppg7wpw}, id=r7m2igdp3o}
                enricher.sourceSensor[ConfigKey:org.apache.brooklyn.api.sensor.Sensor] = Sensor: service.notUp.indicators (java.util.Map)
                enricher.suppressDuplicates[ConfigKey:java.lang.Boolean] = true
                enricher.targetSensor[ConfigKey:org.apache.brooklyn.api.sensor.Sensor] = Sensor: service.isUp (java.lang.Boolean)
                enricher.transformation[ConfigKey:com.google.common.base.Function] = if[{Predicates.not(Predicates.isNull())=forPredicate(Predicates.equalTo(0)(sizeFunction(keys)))}]-else[UNCHANGED]
            ComputeServiceState{uniqueTag=service.state.actual, running=true, entity=TestEntityImpl{id=cooppg7wpw}, id=pqu7qjyirc}
    2017-06-16 13:17:19,182 INFO  TESTNG FAILED: "Surefire test" - org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.testManuallySettingIndicatorsOnApplications() finished in 3577 ms
    java.lang.AssertionError: failed succeeds-eventually, 21 attempts, 3001ms elapsed: AssertionError: entity=Application[grc5o5nv]; attribute=Sensor: service.state (org.apache.brooklyn.core.entity.lifecycle.Lifecycle) expected [running] but found [on-fire]
    	at org.apache.brooklyn.test.Asserts.succeedsEventually(Asserts.java:1012)
    	at org.apache.brooklyn.test.Asserts.succeedsEventually(Asserts.java:895)
    	at org.apache.brooklyn.core.entity.EntityAsserts.assertAttributeEqualsEventually(EntityAsserts.java:71)
    	at org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.assertAttributeEqualsEventually(ServiceStateLogicTest.java:338)
    	at org.apache.brooklyn.core.entity.lifecycle.ServiceStateLogicTest.testManuallySettingIndicatorsOnApplications(ServiceStateLogicTest.java:269)
    Caused by: java.lang.AssertionError: entity=Application[grc5o5nv]; attribute=Sensor: service.state (org.apache.brooklyn.core.entity.lifecycle.Lifecycle) expected [running] but found [on-fire]
    	at org.apache.brooklyn.test.Asserts.fail(Asserts.java:758)
    	at org.apache.brooklyn.test.Asserts.failNotEquals(Asserts.java:148)
    	at org.apache.brooklyn.test.Asserts.assertEquals(Asserts.java:470)
    	at org.apache.brooklyn.core.entity.EntityAsserts.assertAttributeEquals(EntityAsserts.java:58)
    	at org.apache.brooklyn.core.entity.EntityAsserts$1.run(EntityAsserts.java:74)
    	at org.apache.brooklyn.test.Asserts$RunnableAdapter.call(Asserts.java:1366)
    	at org.apache.brooklyn.test.Asserts.succeedsEventually(Asserts.java:973)
    	... 33 more
    ```


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-server pull request #736: Test performance/scalability of many enti...

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/brooklyn-server/pull/736


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] brooklyn-server issue #736: Test performance/scalability of many entities

Posted by neykov <gi...@git.apache.org>.
Github user neykov commented on the issue:

    https://github.com/apache/brooklyn-server/pull/736
  
    Unrelated faiulre - same as https://issues.apache.org/jira/browse/BROOKLYN-518.
    Retest this please.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---