From 3e3fe6523360fa568d8a6a550e7d565be505091d Mon Sep 17 00:00:00 2001 From: Tim Vernum Date: Thu, 28 Oct 2021 18:17:36 +1100 Subject: [PATCH] Wait 3 seconds for the server to reload trust (#79778) (#79987) Sometimes the final session seems to fail because it is still using the old trust configuration. This commit adds an assertBusy to give it time to settle. Resolves: #77024 --- .../security/authc/ldap/LdapSessionFactoryTests.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/ldap/LdapSessionFactoryTests.java b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/ldap/LdapSessionFactoryTests.java index 17a8e5a84744d..2ccaf567d6095 100644 --- a/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/ldap/LdapSessionFactoryTests.java +++ b/x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/ldap/LdapSessionFactoryTests.java @@ -41,6 +41,7 @@ import java.security.GeneralSecurityException; import java.util.List; import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; import javax.net.ssl.SSLException; @@ -351,10 +352,12 @@ public void testSslTrustIsReloaded() throws Exception { Files.copy(realCa, ldapCaPath, StandardCopyOption.REPLACE_EXISTING); resourceWatcher.notifyNow(ResourceWatcherService.Frequency.HIGH); - final LdapSession session = session(sessionFactory, user, userPass); - assertThat(session.userDn(), is("cn=Horatio Hornblower,ou=people,o=sevenSeas")); - - session.close(); + // Occasionally the reload doesn't take immediate effect so the next connection fails. + assertBusy(() -> { + final LdapSession session = session(sessionFactory, user, userPass); + assertThat(session.userDn(), is("cn=Horatio Hornblower,ou=people,o=sevenSeas")); + session.close(); + }, 3, TimeUnit.SECONDS); } } }