From 7b56bb27f99cce7a955ed954fcc69cda3aed7e48 Mon Sep 17 00:00:00 2001 From: ulysses-you Date: Fri, 8 Jan 2021 13:09:44 +0800 Subject: [PATCH] Fix EmbeddedZkServerSuite embedded zookeeper server NPE problem fixes #267 Squashed commit of the following: commit 38b3278e2bd4285dabeee093df855a1497ad35f8 Author: ulysses-you Date: Fri Jan 8 12:43:14 2021 +0800 user name commit 76c5691f4a9dc419668d8610f5cf148d266ff46c Author: cathy Date: Fri Jan 8 12:11:31 2021 +0800 move to stop commit 15e0ca8f7ec5e3fa27fda3572dc44ab3fa83c9ac Author: cathy Date: Fri Jan 8 11:50:49 2021 +0800 init --- .../org/apache/kyuubi/ha/server/EmbeddedZkServer.scala | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kyuubi-ha/src/main/scala/org/apache/kyuubi/ha/server/EmbeddedZkServer.scala b/kyuubi-ha/src/main/scala/org/apache/kyuubi/ha/server/EmbeddedZkServer.scala index ddda84892..a75bad0ec 100644 --- a/kyuubi-ha/src/main/scala/org/apache/kyuubi/ha/server/EmbeddedZkServer.scala +++ b/kyuubi-ha/src/main/scala/org/apache/kyuubi/ha/server/EmbeddedZkServer.scala @@ -58,6 +58,12 @@ class EmbeddedZkServer private(name: String) extends AbstractService(name) with override def stop(): Unit = { if (server != null) { + // Just a tradeoff, otherwise we may get NPE if we call stop() immediately. + // (e.g. the unit test EmbeddedZkServerSuite) + // TestingZooKeeperMain has a bug that the CountDownLatch released before cnxnFactory inited. + // More details could see TestingZooKeeperMain.runFromConfig. + while (getStartTime > 0 && System.currentTimeMillis() - getStartTime < 5000) { + } server.close() server = null }