keycloak / keycloak-benchmark

Keycloak Benchmark
https://www.keycloak.org/keycloak-benchmark/
Apache License 2.0
125 stars 68 forks source link

Flaky Test: Failback fails intermittently #812

Closed mhajas closed 1 month ago

mhajas commented 2 months ago

Describe the bug

Here is a failed attempt in GHA: https://github.com/keycloak/keycloak-benchmark/actions/runs/9057472020/attempts/1

It seems that failback after FailoverTest is sometimes failing. Here is the exception from the log ^:

java.lang.RuntimeException: Keycloak https://primary.gh-keycloak-a-gh-keycloak-b-mja2otek.keycloak-benchmark.com/ did not become active in 10 minutes.
    at org.keycloak.benchmark.crossdc.client.KeycloakClient.waitToBeActive(KeycloakClient.java:242)
    at org.keycloak.benchmark.crossdc.AbstractCrossDCTest.failbackHealthChecks(AbstractCrossDCTest.java:159)
    at org.keycloak.benchmark.crossdc.AbstractCrossDCTest.tearDown(AbstractCrossDCTest.java:151)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
    at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
    at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptAfterAllMethod(TimeoutExtension.java:118)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeAfterAllMethods$15(ClassBasedTestDescriptor.java:439)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeAfterAllMethods$16(ClassBasedTestDescriptor.java:437)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeAfterAllMethods(ClassBasedTestDescriptor.java:437)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.after(ClassBasedTestDescriptor.java:231)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.after(ClassBasedTestDescriptor.java:84)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:161)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:161)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
    at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
    at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
    at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
    at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)

Version

main

Expected behavior

No response

Actual behavior

No response

How to Reproduce?

No response

Anything else?

No response

ahus1 commented 1 month ago

Today it failed again, with a different error message. I then cleaned up the existing R53 health checks from a previous run (removed them), and updated the one that was relevant to the current cluster to remove the -failed suffix from it.

Maybe it would be good to check the lb-check URL when waiting for the result, and possibly reset it again if necessary.

Error:  Tests run: 2, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 363.5 s <<< FAILURE! -- in org.keycloak.benchmark.crossdc.FailoverTest
Error:  org.keycloak.benchmark.crossdc.FailoverTest -- Time elapsed: 363.5 s <<< ERROR!
software.amazon.awssdk.core.exception.SdkClientException: The waiter has exceeded the max retry attempts: 40
    at software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:111)
    at software.amazon.awssdk.core.exception.SdkClientException.create(SdkClientException.java:43)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutorHelper.nextDelayOrUnretryableException(WaiterExecutorHelper.java:77)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:88)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.maybeRetry(WaiterExecutor.java:100)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.evaluate(WaiterExecutor.java:75)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.doExecute(WaiterExecutor.java:60)
    at software.amazon.awssdk.core.internal.waiters.WaiterExecutor.execute(WaiterExecutor.java:48)
    at software.amazon.awssdk.core.internal.waiters.DefaultWaiter.run(DefaultWaiter.java:56)
    at software.amazon.awssdk.services.cloudwatch.waiters.DefaultCloudWatchWaiter.waitUntilAlarmExists(DefaultCloudWatchWaiter.java:88)
    at org.keycloak.benchmark.crossdc.client.AWSClient.updateRoute53HealthCheckPath(AWSClient.java:46)
    at org.keycloak.benchmark.crossdc.AbstractCrossDCTest.failbackHealthChecks(AbstractCrossDCTest.java:163)
    at org.keycloak.benchmark.crossdc.AbstractCrossDCTest.tearDown(AbstractCrossDCTest.java:156)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727)
    at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
    at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptLifecycleMethod(TimeoutExtension.java:128)
    at org.junit.jupiter.engine.extension.TimeoutExtension.interceptAfterAllMethod(TimeoutExtension.java:118)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
    at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
    at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeAfterAllMethods$15(ClassBasedTestDescriptor.java:439)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeAfterAllMethods$16(ClassBasedTestDescriptor.java:437)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at java.base/java.util.Collections$UnmodifiableCollection.forEach(Collections.java:1092)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.invokeAfterAllMethods(ClassBasedTestDescriptor.java:437)
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.after(ClassBasedTestDescriptor.java:[231](https://github.com/keycloak/keycloak-benchmark/actions/runs/9371315333/job/25801023201#step:10:232))
    at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.after(ClassBasedTestDescriptor.java:84)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:161)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:161)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
    at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
    at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
    at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
    at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
    at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
    at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102)
    at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114)
    at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
    at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
    at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
    at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:122)
    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
    at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
    at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)