From 459fffd49ade410b75e06765a8b1fc00f51d50c3 Mon Sep 17 00:00:00 2001 From: Alyssa Wilk Date: Thu, 30 May 2019 16:52:12 -0400 Subject: [PATCH] config: logging LDS file on config failure Signed-off-by: Alyssa Wilk --- .../config/filesystem_subscription_impl.cc | 3 ++- test/integration/integration.cc | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/source/common/config/filesystem_subscription_impl.cc b/source/common/config/filesystem_subscription_impl.cc index fa9c1c42aae4f..aa7f1f7036a03 100644 --- a/source/common/config/filesystem_subscription_impl.cc +++ b/source/common/config/filesystem_subscription_impl.cc @@ -42,8 +42,8 @@ void FilesystemSubscriptionImpl::refresh() { ENVOY_LOG(debug, "Filesystem config refresh for {}", path_); stats_.update_attempt_.inc(); bool config_update_available = false; + envoy::api::v2::DiscoveryResponse message; try { - envoy::api::v2::DiscoveryResponse message; MessageUtil::loadFromFile(path_, message, api_); config_update_available = true; callbacks_->onConfigUpdate(message.resources(), message.version_info()); @@ -53,6 +53,7 @@ void FilesystemSubscriptionImpl::refresh() { } catch (const EnvoyException& e) { if (config_update_available) { ENVOY_LOG(warn, "Filesystem config update rejected: {}", e.what()); + ENVOY_LOG(debug, "Failed configuration:\n{}", message.DebugString()); stats_.update_rejected_.inc(); } else { ENVOY_LOG(warn, "Filesystem config update failure: {}", e.what()); diff --git a/test/integration/integration.cc b/test/integration/integration.cc index 09a41b5156620..8cbbf958e6cab 100644 --- a/test/integration/integration.cc +++ b/test/integration/integration.cc @@ -412,9 +412,23 @@ void BaseIntegrationTest::createGeneratedApiTestServer(const std::string& bootst defer_listener_finalization_); if (config_helper_.bootstrap().static_resources().listeners_size() > 0 && !defer_listener_finalization_) { + // Wait for listeners to be created before invoking registerTestServerPorts() below, as that // needs to know about the bound listener ports. - test_server_->waitForCounterGe("listener_manager.listener_create_success", 1); + auto end_time = time_system_.monotonicTime() + TestUtility::DefaultTimeout; + const char* success = "listener_manager.listener_create_success"; + const char* failure = "listener_manager.lds.update_rejected"; + while (test_server_->counter(success) == nullptr || + test_server_->counter(success)->value() == 0) { + if (time_system_.monotonicTime() >= end_time) { + RELEASE_ASSERT(0, "Timed out waiting for listeners."); + } + RELEASE_ASSERT(test_server_->counter(failure) == nullptr || + test_server_->counter(failure)->value() == 0, + "Lds update failed"); + time_system_.sleep(std::chrono::milliseconds(10)); + } + registerTestServerPorts(port_names); } }