[ 
https://issues.apache.org/jira/browse/GEODE-8772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17361126#comment-17361126
 ] 

ASF subversion and git services commented on GEODE-8772:
--------------------------------------------------------

Commit f0d918e77fd2d1d6089d5f6bbe44ee02579c0363 in geode's branch 
refs/heads/develop from Dale Emery
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=f0d918e ]

GEODE-8772: Fix ClusterComms test port conflicts (#6583)

Change `ClusterCommunicationsDUnitTest.performARollingUpgrade()` to
disable the HTTP service.

BACKGROUND

I am working on a project to allow Geode tests to run in parallel
outside of Docker. Running in parallel outside of Docker requires that
tests not start services using default ports.

This commit prepares for those changes.

PROBLEMS

When `ClusterCommunicationsDUnitTest.performARollingUpgrade()` upgrades
the locator, it starts the new locator with HTTP service enabled on the
default port (7070). If another test running in parallel also uses this
default port, at least one will throw an exception when it attempts to
bind.

THIS COMMIT

Change `ClusterCommunicationsDUnitTest` to start the upgraded locator
with HTTP service disabled. The test does not use the HTTP service.

> Make tests assign necessary ports in test JVM [PERMANENT]
> ---------------------------------------------------------
>
>                 Key: GEODE-8772
>                 URL: https://issues.apache.org/jira/browse/GEODE-8772
>             Project: Geode
>          Issue Type: Test
>          Components: tests
>    Affects Versions: 1.14.0
>            Reporter: Dale Emery
>            Assignee: Dale Emery
>            Priority: Major
>              Labels: GeodeOperationAPI, pull-request-available
>
> *Make tests assign all necessary ports.* Many distributed tests and upgrade 
> tests (and sometimes others) launch members with default ports, especially 
> for JMX (1099) and HTTP service (7070). When run in parallel outside of 
> docker, these tests often fail because the default port is already in use in 
> another test.
> Except when specifically testing the product's use of the defaults, every 
> test should assign ports from a pool of ports known to be available. For many 
> tests, we can accomplish this by changing the test framework to assign 
> available ports. Other tests may require changes in the test code.
> *Assign ports only in test JVMs, and not in child VMs.* The 
> {{AvailablePortHelper}} class occasionally gains new features to improve its 
> assignment of ports when tests run in parallel. For these improvements to 
> work, each test must use the latest {{AvailablePortHelper}} implementation 
> for all port assignments. Child VMs that run older versions of Geode may not 
> include the latest implementation of {{AvailablePortHelper}}. For this 
> reason, tests should invoke {{AvailablePortHelper}} only in the test JVM and 
> not in child VMs.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to