From 3915d7682a7e144feabf4aa20163480cbf2c9ac1 Mon Sep 17 00:00:00 2001 From: Alan Sheinberg Date: Mon, 15 Nov 2021 20:11:47 -0800 Subject: [PATCH 1/2] fix: Makes tests wait only 500ms for consumer group cleanup --- .../java/io/confluent/ksql/util/KsqlConfig.java | 13 +++++++++++++ .../java/io/confluent/ksql/engine/KsqlEngine.java | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/ksqldb-common/src/main/java/io/confluent/ksql/util/KsqlConfig.java b/ksqldb-common/src/main/java/io/confluent/ksql/util/KsqlConfig.java index 7873629a1550..2937994db2d0 100644 --- a/ksqldb-common/src/main/java/io/confluent/ksql/util/KsqlConfig.java +++ b/ksqldb-common/src/main/java/io/confluent/ksql/util/KsqlConfig.java @@ -529,6 +529,12 @@ public class KsqlConfig extends AbstractConfig { public static final String KSQL_VARIABLE_SUBSTITUTION_ENABLE_DOC = "Enable variable substitution on SQL statements."; + public static final String KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS + = "ksql.query.cleanup.shutdown.timeout.ms"; + public static final long KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS_DEFAULT = 30000; + public static final String KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS_DOC + = "The total time that the query cleanup spends trying to clean things up on shutdown."; + private enum ConfigGeneration { LEGACY, CURRENT @@ -1165,6 +1171,13 @@ private static ConfigDef buildConfigDef(final ConfigGeneration generation) { Importance.LOW, KSQL_SOURCE_TABLE_MATERIALIZATION_ENABLED_DOC ) + .define( + KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS, + Type.LONG, + KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS_DEFAULT, + Importance.LOW, + KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS_DOC + ) .withClientSslSupport(); for (final CompatibilityBreakingConfigDef compatibilityBreakingConfigDef diff --git a/ksqldb-engine/src/main/java/io/confluent/ksql/engine/KsqlEngine.java b/ksqldb-engine/src/main/java/io/confluent/ksql/engine/KsqlEngine.java index 8d5f06c26cbf..e361f3a54f41 100644 --- a/ksqldb-engine/src/main/java/io/confluent/ksql/engine/KsqlEngine.java +++ b/ksqldb-engine/src/main/java/io/confluent/ksql/engine/KsqlEngine.java @@ -507,7 +507,9 @@ public void close(final boolean closeQueries) { primaryContext.getQueryRegistry().close(closeQueries); try { - cleanupService.stopAsync().awaitTerminated(30, TimeUnit.SECONDS); + cleanupService.stopAsync().awaitTerminated( + ksqlConfig.getLong(KsqlConfig.KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS), + TimeUnit.MILLISECONDS); } catch (final TimeoutException e) { log.warn("Timed out while closing cleanup service. " + "External resources for the following applications may be orphaned: {}", From a41f7cd5460d5d12eb78553e6482fce8732c4311 Mon Sep 17 00:00:00 2001 From: Alan Sheinberg Date: Mon, 15 Nov 2021 20:20:03 -0800 Subject: [PATCH 2/2] Change for tests --- .../test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java | 1 + 1 file changed, 1 insertion(+) diff --git a/ksqldb-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java b/ksqldb-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java index 789f7af6a00f..09f9ba1cd6e6 100644 --- a/ksqldb-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java +++ b/ksqldb-rest-app/src/test/java/io/confluent/ksql/rest/server/TestKsqlRestApp.java @@ -567,6 +567,7 @@ private static KsqlRestConfig buildConfig( configMap.put(KsqlConfig.KSQL_STREAMS_PREFIX + "auto.offset.reset", "earliest"); configMap.put(KsqlConfig.KSQL_ENABLE_UDFS, false); configMap.put(KsqlRestConfig.KSQL_HEARTBEAT_ENABLE_CONFIG, false); + configMap.put(KsqlConfig.KSQL_QUERY_CLEANUP_SHUTDOWN_TIMEOUT_MS, 500L); configMap.putAll(additionalProps); return configMap; }