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