1
0
Selaa lähdekoodia

YARN-10156. Destroy Jersey Client in TimelineConnector.

Contributed by Tanu Ajmera.
Prabhu Joseph 5 vuotta sitten
vanhempi
commit
9224568b0e

+ 4 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineConnector.java

@@ -78,7 +78,7 @@ public class TimelineConnector extends AbstractService {
   public final static int DEFAULT_SOCKET_TIMEOUT = 1 * 60 * 1000; // 1 minute
 
   private SSLFactory sslFactory;
-  private Client client;
+  Client client;
   private ConnectionConfigurator connConfigurator;
   private DelegationTokenAuthenticator authenticator;
   private DelegationTokenAuthenticatedURL.Token token;
@@ -200,6 +200,9 @@ public class TimelineConnector extends AbstractService {
   }
 
   protected void serviceStop() {
+    if (this.client != null) {
+      this.client.destroy();
+    }
     if (this.sslFactory != null) {
       this.sslFactory.destroy();
     }

+ 13 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/client/api/impl/TestTimelineClient.java

@@ -24,6 +24,8 @@ import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.times;
 
 import java.io.IOException;
 import java.net.ConnectException;
@@ -492,6 +494,17 @@ public class TestTimelineClient {
     Assert.assertFalse("Reloader is still alive", reloaderStillAlive);
   }
 
+  @Test
+  public void testTimelineConnectorDestroy() {
+    YarnConfiguration conf = new YarnConfiguration();
+    conf.setBoolean(YarnConfiguration.TIMELINE_SERVICE_ENABLED, true);
+    TimelineClientImpl client = createTimelineClient(conf);
+    Client mockJerseyClient = mock(Client.class);
+    client.connector.client = mockJerseyClient;
+    client.stop();
+    verify(mockJerseyClient, times(1)).destroy();
+  }
+
   private void setupSSLConfig(YarnConfiguration conf) throws Exception {
     keystoresDir = TestGenericTestUtils.getTestDir().getAbsolutePath();
     sslConfDir =