Ensure latch is counted down in ssl reload test (#37313)

This change ensures we always countdown the latch in the
SSLConfigurationReloaderTests to prevent the suite from timing out in
case of an exception. Additionally, we also increase the logging of the
resource watcher in case an IOException occurs.

See #36053
This commit is contained in:
Jay Modi 2019-01-10 13:27:25 -07:00 committed by GitHub
parent 83f7423cd6
commit e6d3d85db4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 7 deletions

View File

@ -17,6 +17,7 @@ import org.elasticsearch.env.TestEnvironment;
import org.elasticsearch.test.ESTestCase;
import org.elasticsearch.test.http.MockResponse;
import org.elasticsearch.test.http.MockWebServer;
import org.elasticsearch.test.junit.annotations.TestLogging;
import org.elasticsearch.threadpool.TestThreadPool;
import org.elasticsearch.threadpool.ThreadPool;
import org.elasticsearch.watcher.ResourceWatcherService;
@ -55,6 +56,7 @@ import static org.hamcrest.Matchers.sameInstance;
/**
* Unit tests for the reloading of SSL configuration
*/
@TestLogging("org.elasticsearch.watcher:TRACE")
public class SSLConfigurationReloaderTests extends ESTestCase {
private ThreadPool threadPool;
@ -435,21 +437,21 @@ public class SSLConfigurationReloaderTests extends ESTestCase {
assertThat(sslService.sslContextHolder(config).sslContext(), sameInstance(context));
}
private void validateSSLConfigurationIsReloaded(Settings settings, Environment env,
Consumer<SSLContext> preChecks,
Runnable modificationFunction,
Consumer<SSLContext> postChecks)
throws Exception {
private void validateSSLConfigurationIsReloaded(Settings settings, Environment env, Consumer<SSLContext> preChecks,
Runnable modificationFunction, Consumer<SSLContext> postChecks) throws Exception {
final CountDownLatch reloadLatch = new CountDownLatch(1);
final SSLService sslService = new SSLService(settings, env);
final SSLConfiguration config = sslService.getSSLConfiguration("xpack.ssl");
new SSLConfigurationReloader(env, sslService, resourceWatcherService) {
@Override
void reloadSSLContext(SSLConfiguration configuration) {
try {
super.reloadSSLContext(configuration);
} finally {
reloadLatch.countDown();
}
}
};
// Baseline checks
preChecks.accept(sslService.sslContextHolder(config).sslContext());