You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uniffle.apache.org by ro...@apache.org on 2023/03/15 06:11:35 UTC
[incubator-uniffle] branch branch-0.7 updated: [MINOR] test: fix tempdir leak in KerberizedHdfs tests (#721)
This is an automated email from the ASF dual-hosted git repository.
roryqi pushed a commit to branch branch-0.7
in repository https://gitbox.apache.org/repos/asf/incubator-uniffle.git
The following commit(s) were added to refs/heads/branch-0.7 by this push:
new 4ffee9eb [MINOR] test: fix tempdir leak in KerberizedHdfs tests (#721)
4ffee9eb is described below
commit 4ffee9eb1efa17e2faa66b72472dcd1613886cc1
Author: Kaijie Chen <ck...@apache.org>
AuthorDate: Wed Mar 15 14:10:16 2023 +0800
[MINOR] test: fix tempdir leak in KerberizedHdfs tests (#721)
### What changes were proposed in this pull request?
Use JUnit 5 managed `@TempDir` in `KerberizedHdfs` test.
### Why are the changes needed?
The tempdir created by `KerberizedHdfs` is leaking.
It may cause test failures in some condition.
### Does this PR introduce _any_ user-facing change?
No.
### How was this patch tested?
Before:
```console
$ mvn test -Dtest=HadoopFilesystemProviderTest
...
$ find . -name 'serverKS.jks'
./common/target/tmp/kerberizedDfsBaseDir1821275617120252168/serverKS.jks
```
After:
```console
$ mvn test -Dtest=HadoopFilesystemProviderTest
...
$ find . -name 'serverKS.jks'
```
---
.../java/org/apache/uniffle/common/KerberizedHdfs.java | 15 +++++++--------
.../org/apache/uniffle/common/KerberizedHdfsBase.java | 10 +++++++++-
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/common/src/test/java/org/apache/uniffle/common/KerberizedHdfs.java b/common/src/test/java/org/apache/uniffle/common/KerberizedHdfs.java
index dc1f19ad..312ff9b5 100644
--- a/common/src/test/java/org/apache/uniffle/common/KerberizedHdfs.java
+++ b/common/src/test/java/org/apache/uniffle/common/KerberizedHdfs.java
@@ -25,8 +25,6 @@ import java.io.Serializable;
import java.net.BindException;
import java.net.ServerSocket;
import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
import java.security.PrivilegedExceptionAction;
import java.util.ArrayList;
import java.util.List;
@@ -75,8 +73,7 @@ public class KerberizedHdfs implements Serializable {
private MiniKdc kdc;
private File workDir;
- private Path tempDir;
- private Path kerberizedDfsBaseDir;
+ private File kerberizedDfsBaseDir;
private MiniDFSCluster kerberizedDfsCluster;
@@ -91,9 +88,12 @@ public class KerberizedHdfs implements Serializable {
// krb5.conf file path
private String krb5ConfFile;
+ KerberizedHdfs(File workDir, File kerberizedDfsBaseDir) {
+ this.workDir = workDir;
+ this.kerberizedDfsBaseDir = kerberizedDfsBaseDir;
+ }
+
protected void setup() throws Exception {
- tempDir = Files.createTempDirectory("tempDir").toFile().toPath();
- kerberizedDfsBaseDir = Files.createTempDirectory("kerberizedDfsBaseDir").toFile().toPath();
startKDC();
try {
@@ -159,7 +159,7 @@ public class KerberizedHdfs implements Serializable {
CommonConfigurationKeysPublic.HADOOP_SECURITY_IMPERSONATION_PROVIDER_CLASS,
TestDummyImpersonationProvider.class.getName());
- String keystoresDir = kerberizedDfsBaseDir.toFile().getAbsolutePath();
+ String keystoresDir = kerberizedDfsBaseDir.getAbsolutePath();
String sslConfDir = KeyStoreTestUtil.getClasspathDir(testRunnerCls);
KeyStoreTestUtil.setupSSLConfig(keystoresDir, sslConfDir, conf, false);
@@ -222,7 +222,6 @@ public class KerberizedHdfs implements Serializable {
kdcConf.setProperty(MiniKdc.ORG_DOMAIN, "COM");
kdcConf.setProperty(MiniKdc.KDC_BIND_ADDRESS, hostName);
kdcConf.setProperty(MiniKdc.KDC_PORT, "0");
- workDir = tempDir.toFile();
kdc = new MiniKdc(kdcConf, workDir);
kdc.start();
diff --git a/common/src/test/java/org/apache/uniffle/common/KerberizedHdfsBase.java b/common/src/test/java/org/apache/uniffle/common/KerberizedHdfsBase.java
index aec36275..d0e30b25 100644
--- a/common/src/test/java/org/apache/uniffle/common/KerberizedHdfsBase.java
+++ b/common/src/test/java/org/apache/uniffle/common/KerberizedHdfsBase.java
@@ -17,7 +17,10 @@
package org.apache.uniffle.common;
+import java.io.File;
+
import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.io.TempDir;
import org.apache.uniffle.common.security.HadoopSecurityContext;
import org.apache.uniffle.common.security.NoOpSecurityContext;
@@ -30,8 +33,13 @@ public class KerberizedHdfsBase {
protected static KerberizedHdfs kerberizedHdfs;
protected static Class<?> testRunner = KerberizedHdfsBase.class;
+ @TempDir
+ private static File workDir;
+ @TempDir
+ private static File kerberizedDfsBaseDir;
+
public static void init() throws Exception {
- kerberizedHdfs = new KerberizedHdfs();
+ kerberizedHdfs = new KerberizedHdfs(workDir, kerberizedDfsBaseDir);
kerberizedHdfs.setTestRunner(testRunner);
kerberizedHdfs.setup();
}