You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Yifan Cai (Jira)" <ji...@apache.org> on 2021/04/13 18:37:00 UTC

[jira] [Commented] (CASSANDRA-16511) Running tests in parallel can sometimes result in port collision

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

Yifan Cai commented on CASSANDRA-16511:
---------------------------------------

It looks like with the commit ([11d069a|https://github.com/apache/cassandra/commit/11d069a766a4a9a5db534a86de0175128431526f]), the CircleCI j8 unit test always starts with multiple runners and the test becomes flaky since then, when using highRes (I did not try the other resource types). 

https://app.circleci.com/pipelines/github/yifan-c/cassandra/228/workflows/8a1cf6d9-d5d3-47ad-be62-6e563907a0a6/jobs/1370/parallel-runs/35/steps/35-104

The test task now depends on {{get-cores}} and {{get-mem}} and it leads to the number of runners being calculated as 6. 
{code:java}
build-test:

_build-test:

get-cores:
     [echo] Number of cores: 36

get-mem:
     [echo] Mem size : 73757396992

testclasslist:
     [echo] Number of test runners: 6
{code}

The unit test opens ports too. One approach is to patch the circle CI config with {{-Dtest.runner=1}}. 

WDYT?

> Running tests in parallel can sometimes result in port collision
> ----------------------------------------------------------------
>
>                 Key: CASSANDRA-16511
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-16511
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Test/unit
>            Reporter: Jacek Lewandowski
>            Assignee: Jacek Lewandowski
>            Priority: Normal
>             Fix For: 4.0-rc1, 4.0
>
>         Attachments: screenshot-1.png
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When running unit tests with parallel execution we may sometimes notice the port collision. In this mode, test classes from the list get consecutive offsets which are added to native transport port, storage port and ssl storage port ( {{OffsetAwareConfigurationLoader}} ). However we add to the ports configured in {{test/conf/cassandra.yaml}} we as we can see we have the following default config:
> {code:java}
> storage_port: 7012
> ssl_storage_port: 7011 {code}
> This results in the situation that thread n has the same storage port as thread n+1 has ssl storage port. There are not much such tests, but we can see {{ConnectionTests}} failing frequently because of that. 
> The other problem is that {{OffsetAwareConfigurationLoader}} does not adjust native transport ssl port.
>  !screenshot-1.png! 
>  
> Patch at https://github.com/apache/cassandra/pull/925



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

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org