You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@geode.apache.org by GitBox <gi...@apache.org> on 2021/07/22 22:01:49 UTC

[GitHub] [geode] demery-pivotal opened a new pull request #6720: GEODE-8728: Isolate tests without Docker

demery-pivotal opened a new pull request #6720:
URL: https://github.com/apache/geode/pull/6720


   This commit changes Geode's build system to run test worker processes
   outside of Docker. It replaces the Dockerized test plugin with a new
   plugin that assigns each test worker process a distinct range of ports.
   
   BUILD SYSTEM
   
   Changed `multi-process-test.gradle` to mark relevant test tasks as
   isolated tests. The `IsolatedTestPlugin` applies itself to test tasks
   marked this way.
   
   DOCKERIZED TEST PLUGIN
   
   Removed the dockerized test plugin.
   
   SPECIFY PORT RANGES VIA SYSTEM PROPERTIES
   
   Added `AvailablePort.lowerBound` and `AvailablePort.upperBound` system
   properties to specify the range of non-membership ports considered by
   the "get random port" methods of `AvaiablePort` and
   `AvailablePortHelper`.
   
   Changed `AvailablePort` and `AvailablePortHelper` to use the membership
   port range specified by Geode's existing `membership-port-range` system
   property, if defined.
   
   Changed `ProcessManager`to forward the test worker JVM's port range
   system properties to each child VM it creates.
   
   ISOLATED TEST PLUGIN
   
   Added the `IsolatedTestPlugin`, which overrides Gradle's built-in test
   worker process launcher with a custom mechanism:
   
   - `PortRange`: Defines a range of ports.
   - `PortRangeContext`: Defines the membership and non-membership port
     ranges for a process. Configures each `ProcessBuilder` to set the port
     range system properties for the process being launched.
   - `CompletableProcess`: Wraps a regular Java `Process` to execute an
     action on termination.
   - `PortRangeProcessLauncher`: Assigns each test worker process a
     distinct port range context. Launches test worker processes. Wraps
     each test worker `Process` in a `CompletableProcess` that releases its
     port range context when the process terminates.
   
   SPECIFIC TESTS
   
   Changed several tests in `DistributedSystemDUnitTest` and
   `InternalDistributedSystemJUnitTest` to clear the port range system
   properties added by the `IsolatedTestPlugin`. These tests verify that
   the system applies Geode's default port ranges. For these tests to work,
   those system properties must not be defined.
   
   Disabled a `NetstatDUnitTest` test that executes `lsof`. When this test
   runs CI outside of a Docker container, in the presence of dozens of
   tests and potentially hundreds of Geode members, the output of `lsof` is
   enormous. The `NetstatFunction` attempts to collect all of the output in
   memory, which results in an out of memory exception.
   
   Co-authored-by: Dale Emery <de...@vmware.com>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [geode] jdeppe-pivotal commented on pull request #6720: GEODE-8728: Isolate tests without Docker

Posted by GitBox <gi...@apache.org>.
jdeppe-pivotal commented on pull request #6720:
URL: https://github.com/apache/geode/pull/6720#issuecomment-886716099


   Probably not necessary in this PR, but please create a ticket to update `ci/scripts/capture-call-stacks.sh` once this is in.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [geode] demery-pivotal merged pull request #6720: GEODE-8728: Isolate tests without Docker

Posted by GitBox <gi...@apache.org>.
demery-pivotal merged pull request #6720:
URL: https://github.com/apache/geode/pull/6720


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [geode] demery-pivotal commented on pull request #6720: GEODE-8728: Isolate tests without Docker

Posted by GitBox <gi...@apache.org>.
demery-pivotal commented on pull request #6720:
URL: https://github.com/apache/geode/pull/6720#issuecomment-886997401


   > Probably not necessary in this PR, but please create a ticket to update `ci/scripts/capture-call-stacks.sh` once this is in.
   
   I've submitted https://github.com/apache/geode/pull/6723 for this. It's already approved, and that PR will likely be merged before this one is.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [geode] demery-pivotal commented on pull request #6720: GEODE-8728: Isolate tests without Docker

Posted by GitBox <gi...@apache.org>.
demery-pivotal commented on pull request #6720:
URL: https://github.com/apache/geode/pull/6720#issuecomment-886850780


   > Probably not necessary in this PR, but please create a ticket to update `ci/scripts/capture-call-stacks.sh` once this is in.
   
   Hmmm. I don't think this can wait.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [geode] demery-pivotal commented on pull request #6720: GEODE-8728: Isolate tests without Docker

Posted by GitBox <gi...@apache.org>.
demery-pivotal commented on pull request #6720:
URL: https://github.com/apache/geode/pull/6720#issuecomment-885754051


   The distributed test that failed (`SerialGatewaySenderQueueDUnitTest`) [failed in a mass test run earlier this year](https://concourse.apachegeode-ci.info/teams/main/pipelines/apache-develop-mass-test-run/jobs/create-mass-test-run-report/builds/4#L602a3f31:610).
   
   I ran this test class with my PR 100 times in a GCP instance with no failures. I'm confident that this failure is unrelated to my changes.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@geode.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org