Terracotta-OSS / terracotta-platform

http://terracotta.org
Apache License 2.0
32 stars 48 forks source link

Upgraded Angela + Fixed test timouts #1082

Closed mathieucarbou closed 2 years ago

mathieucarbou commented 2 years ago

Please look at the commit list.

This PR contains several things:

  1. Angela update: fixed several issues and potentially blocking call when closing agents (not impacting platform or EE but only projects using Ignote)

  2. Setting default timeout to 30 seconds for tools

  3. Extracted timeout parameters for commands dealing with node restart in a common class

Bugfixes

  1. verbose mode was not working in test mode

  2. correctly set entityOperationTimeout value according to help

  3. correctly implemented stop and restart detection in config to remove any sleep or impact due to connection timeout

    Tests

  4. Add DcActiveVoter to allow listening for Voter votes instead of doing an active sleep => also display voter errors and timeouts

  5. Fixing test timeouts:

    • separating connectionTimeout from the rest
    • added overridable methods for each timeout
    • removed unnecessary waitFor...

Results:

This is more than 15-20min decrease in test duration when run sequentially. Running with 4 forks locally, but just 3 on Azure. On azure, with fork count 3, build duration is reduced by more than 10 min.

> ./mvnw clean install -Djava.test.version=1.11 -Dtest.parallel.forks=4

main branch:

[INFO] Dynamic Config :: Testing :: System Tests .......... SUCCESS [22:22 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  35:04 min
[INFO] Finished at: 2022-04-06T14:24:16+02:00
[INFO] ------------------------------------------------------------------------

PR #1082 in platform

[INFO] Dynamic Config :: Testing :: System Tests .......... SUCCESS [17:05 min]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  28:21 min
[INFO] Finished at: 2022-04-09T11:25:05+02:00
[INFO] ------------------------------------------------------------------------
mathieucarbou commented 2 years ago

FYI:

First build after PR was complete passed successful - linux builds on azure lasted ~40 min (10 min less than before).

Now that the build is stable, I added a commit to try again with fork count 4 on Azure this time. If the build duration considerably decreases without impacting the test reliability, we will be able to keep fork count 4.

mathieucarbou commented 2 years ago

FYI:

First build after PR was complete passed successful - linux builds on azure lasted ~40 min (10 min less than before).

Now that the build is stable, I added a commit to try again with fork count 4 on Azure this time. If the build duration considerably decreases without impacting the test reliability, we will be able to keep fork count 4.

Rolling back: forkcount 4 slows down the container too much.

Best numbers are with forCount 3: with forCount 3, all 4 builds always passed, 2 times consecutively, for now out of 2 runs.

mathieucarbou commented 2 years ago

I'm currently preparing an EE PR.

Let's wait for the new release of terracotta-utilities first also, that I will include in both angela and platform.