This is an automated email from the ASF dual-hosted git repository.
ijuma pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git
The following commit(s) were added to refs/heads/trunk by this push:
new fe375dce547 KAFKA-8115: Reduce flakiness in Trogdor JsonRestServer
shutdown (#12830)
fe375dce547 is described below
commit fe375dce54717f0699e9ab860c4a33669d017f22
Author: Greg Harris <[email protected]>
AuthorDate: Sat Apr 15 12:21:56 2023 -0700
KAFKA-8115: Reduce flakiness in Trogdor JsonRestServer shutdown (#12830)
The GRACEFUL_SHUTDOWN_TIMEOUT_MS for the Trogdor JsonRestServer is 100ms.
In heavily loaded CI environments, this timeout can be exceeded. When this
happens,
it causes the jettyServer.stop() and jettyServer.destroy() calls to throw
exceptions, which
prevents shutdownExecutor.shutdown() from running. This has the effect of
causing the JsonRestServer::waitForShutdown method to block for 1 day, which
exceeds the 120s
timeout on the CoordinatorTest (and any other test relying on
MiniTrogdorCluster).
This change makes it such that the graceful shutdown timeout is less likely
to be exceeded,
and when it is, the timeout does not cause the waitForShutdown method to
block for much
longer than the graceful shutdown timeout.
Reviewers: Ismael Juma <[email protected]>
---
.../java/org/apache/kafka/trogdor/rest/JsonRestServer.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git
a/trogdor/src/main/java/org/apache/kafka/trogdor/rest/JsonRestServer.java
b/trogdor/src/main/java/org/apache/kafka/trogdor/rest/JsonRestServer.java
index e5388f8a6f9..cc3bbc0cc6d 100644
--- a/trogdor/src/main/java/org/apache/kafka/trogdor/rest/JsonRestServer.java
+++ b/trogdor/src/main/java/org/apache/kafka/trogdor/rest/JsonRestServer.java
@@ -56,7 +56,7 @@ import java.util.concurrent.TimeUnit;
public class JsonRestServer {
private static final Logger log =
LoggerFactory.getLogger(JsonRestServer.class);
- private static final long GRACEFUL_SHUTDOWN_TIMEOUT_MS = 100;
+ private static final long GRACEFUL_SHUTDOWN_TIMEOUT_MS = 10 * 1000;
private final ScheduledExecutorService shutdownExecutor;
@@ -142,9 +142,13 @@ public class JsonRestServer {
} catch (Exception e) {
log.error("Unable to stop REST server", e);
} finally {
- jettyServer.destroy();
+ try {
+ jettyServer.destroy();
+ } catch (Exception e) {
+ log.error("Unable to destroy REST server", e);
+ }
+ shutdownExecutor.shutdown();
}
- shutdownExecutor.shutdown();
return null;
});
}