Fix hive datasource connection leak (#12226)

This commit is contained in:
Wenjun Ruan 2022-10-01 06:57:12 +08:00 committed by GitHub
parent 55388be21f
commit 0a44107bf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -45,6 +45,7 @@ import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
@ -79,8 +80,8 @@ public class HiveDataSourceClient extends CommonDataSourceClient {
this.ugi = createUserGroupInformation(baseConnectionParam.getUser());
logger.info("Create ugi success.");
super.initClient(baseConnectionParam, dbType);
this.dataSource = JDBCDataSourceProvider.createOneSessionJdbcDataSource(baseConnectionParam, dbType);
this.jdbcTemplate = new JdbcTemplate(dataSource);
logger.info("Init {} success.", getClass().getName());
}
@ -166,10 +167,13 @@ public class HiveDataSourceClient extends CommonDataSourceClient {
@Override
public void close() {
super.close();
try {
super.close();
} finally {
kerberosRenewalService.shutdown();
this.ugi = null;
}
logger.info("Closed Hive datasource client.");
logger.info("close {}.", this.getClass().getSimpleName());
kerberosRenewalService.shutdown();
this.ugi = null;
}
}