Skip to content

Commit 1fe2761

Browse files
committed
[SPARK-22344][SPARKR] Set java.io.tmpdir for SparkR tests
This PR sets the java.io.tmpdir for CRAN checks and also disables the hsperfdata for the JVM when running CRAN checks. Together this prevents files from being left behind in `/tmp` ## How was this patch tested? Tested manually on a clean EC2 machine Author: Shivaram Venkataraman <shivaram@cs.berkeley.edu> Closes apache#19589 from shivaram/sparkr-tmpdir-clean.
1 parent 659acf1 commit 1fe2761

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

R/pkg/inst/tests/testthat/test_basic.R

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
context("basic tests for CRAN")
1919

2020
test_that("create DataFrame from list or data.frame", {
21-
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE)
21+
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE,
22+
sparkConfig = sparkRTestConfig)
2223

2324
i <- 4
2425
df <- createDataFrame(data.frame(dummy = 1:i))
@@ -49,7 +50,8 @@ test_that("create DataFrame from list or data.frame", {
4950
})
5051

5152
test_that("spark.glm and predict", {
52-
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE)
53+
sparkR.session(master = sparkRTestMaster, enableHiveSupport = FALSE,
54+
sparkConfig = sparkRTestConfig)
5355

5456
training <- suppressWarnings(createDataFrame(iris))
5557
# gaussian family

R/pkg/tests/run-all.R

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,17 @@ invisible(lapply(sparkRWhitelistSQLDirs,
3636
sparkRFilesBefore <- list.files(path = sparkRDir, all.files = TRUE)
3737

3838
sparkRTestMaster <- "local[1]"
39+
sparkRTestConfig <- list()
3940
if (identical(Sys.getenv("NOT_CRAN"), "true")) {
4041
sparkRTestMaster <- ""
42+
} else {
43+
# Disable hsperfdata on CRAN
44+
old_java_opt <- Sys.getenv("_JAVA_OPTIONS")
45+
Sys.setenv("_JAVA_OPTIONS" = paste("-XX:-UsePerfData", old_java_opt))
46+
tmpDir <- tempdir()
47+
tmpArg <- paste0("-Djava.io.tmpdir=", tmpDir)
48+
sparkRTestConfig <- list(spark.driver.extraJavaOptions = tmpArg,
49+
spark.executor.extraJavaOptions = tmpArg)
4150
}
4251

4352
test_package("SparkR")

R/pkg/vignettes/sparkr-vignettes.Rmd

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ opts_hooks$set(eval = function(options) {
3636
}
3737
options
3838
})
39+
r_tmp_dir <- tempdir()
40+
tmp_arg <- paste("-Djava.io.tmpdir=", r_tmp_dir, sep = "")
41+
sparkSessionConfig <- list(spark.driver.extraJavaOptions = tmp_arg,
42+
spark.executor.extraJavaOptions = tmp_arg)
43+
old_java_opt <- Sys.getenv("_JAVA_OPTIONS")
44+
Sys.setenv("_JAVA_OPTIONS" = paste("-XX:-UsePerfData", old_java_opt, sep = " "))
3945
```
4046

4147
## Overview
@@ -57,7 +63,7 @@ We use default settings in which it runs in local mode. It auto downloads Spark
5763

5864
```{r, include=FALSE}
5965
install.spark()
60-
sparkR.session(master = "local[1]")
66+
sparkR.session(master = "local[1]", sparkConfig = sparkSessionConfig, enableHiveSupport = FALSE)
6167
```
6268
```{r, eval=FALSE}
6369
sparkR.session()

0 commit comments

Comments
 (0)