Last updated on 2025-04-24 23:51:46 CEST.
Package | ERROR | NOTE | OK |
---|---|---|---|
ACNE | 6 | 7 | |
aroma.affymetrix | 9 | 4 | |
aroma.apd | 13 | ||
aroma.cn | 13 | ||
aroma.core | 9 | 4 | |
calmate | 13 | ||
dChipIO | 13 | ||
doFuture | 3 | 10 | |
future | 4 | 9 | |
future.apply | 13 | ||
future.batchtools | 6 | 7 | |
future.callr | 13 | ||
future.mirai | 13 | ||
future.tests | 13 | ||
futureverse | 13 | ||
globals | 13 | ||
listenv | 13 | ||
matrixStats | 13 | ||
parallelly | 13 | ||
port4me | 13 | ||
profmem | 13 | ||
progressr | 13 | ||
PSCBS | 13 | ||
R.cache | 13 | ||
R.devices | 1 | 12 | |
R.filesets | 13 | ||
R.huge | 13 | ||
R.matlab | 13 | ||
R.methodsS3 | 13 | ||
R.oo | 13 | ||
R.rsp | 13 | ||
R.utils | 13 | ||
seguid | 13 | ||
startup | 13 | ||
TopDom | 13 |
Current CRAN status: NOTE: 6, OK: 7
Version: 0.9.1
Check: Rd cross-references
Result: NOTE
Found the following Rd file(s) with Rd \link{} targets missing package
anchors:
doACNE.Rd: AffymetrixCelSet, Verbose
Please provide package anchors for all Rd \link{} targets not in the
package itself and the base packages.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-windows-x86_64
Current CRAN status: NOTE: 9, OK: 4
Version: 3.2.2
Check: Rd cross-references
Result: NOTE
Found the following Rd file(s) with Rd \link{} targets missing package
anchors:
SmoothMultiarrayModel.Rd: ChromosomalModel,
CopyNumberSegmentationModel
byPath.AffymetrixFileSet.Rd: GenericDataFile
calculateBaseline.ChipEffectSet.Rd: getAverageFile
doCRMAv1.Rd: Verbose
doCRMAv2.Rd: Verbose
doFIRMA.Rd: Verbose
doGCRMA.Rd: Verbose
doRMA.Rd: Verbose
justRMA.Rd: Verbose
Please provide package anchors for all Rd \link{} targets not in the
package itself and the base packages.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-windows-x86_64
Version: 3.2.2
Check: package dependencies
Result: NOTE
Package suggested but not available for checking: ‘AffymetrixDataTestFiles’
Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64
Version: 3.2.2
Check: installed package size
Result: NOTE
installed size is 6.1Mb
sub-directories of 1Mb or more:
R 3.0Mb
help 1.1Mb
testScripts 1.1Mb
Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: NOTE: 9, OK: 4
Version: 3.3.1
Check: Rd cross-references
Result: NOTE
Found the following Rd file(s) with Rd \link{} targets missing package
anchors:
writeDataFrame.AromaUnitSignalBinaryFile.Rd: TabularTextFile
writeDataFrame.AromaUnitSignalBinarySet.Rd: TabularTextFileSet
writeDataFrame.AromaUnitTabularBinaryFile.Rd: TabularTextFile
Please provide package anchors for all Rd \link{} targets not in the
package itself and the base packages.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-windows-x86_64
Version: 3.3.1
Check: package dependencies
Result: NOTE
Packages suggested but not available for checking:
'sfit', 'expectile', 'HaarSeg', 'mpcbs'
Flavors: r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: ERROR: 3, OK: 10
Version: 1.0.2
Check: tests
Result: ERROR
Running 'foreach_dofuture,cluster-missing-doFuture-pkg.R' [62s]
Running 'foreach_dofuture,errors.R' [10s]
Running 'foreach_dofuture,globals.R' [7s]
Running 'foreach_dofuture,nested_colon.R' [14s]
Running 'foreach_dofuture,nested_dofuture.R' [15s]
Running 'foreach_dofuture,rng.R' [4s]
Running 'foreach_dofuture.R' [3s]
Running 'foreach_dopar,cluster-missing-doFuture-pkg.R' [62s]
Running 'foreach_dopar,doRNG,dopar.R' [3s]
Running 'foreach_dopar,doRNG,dorng.R' [6s]
Running 'foreach_dopar,errors.R' [7s]
Running 'foreach_dopar,globals.R' [7s]
Running 'foreach_dopar,nested_colon.R' [12s]
Running 'foreach_dopar,nested_dopar.R' [16s]
Running 'foreach_dopar,options-for-export.R' [5s]
Running 'foreach_dopar.R' [3s]
Running 'makeChunks.R' [4s]
Running 'options,nested.R' [4s]
Running 'registerDoFuture.R' [2s]
Running 'times.R' [2s]
Running 'utils.R' [1s]
Running 'withDoRNG.R' [3s]
Running the tests in 'tests/foreach_dofuture,cluster-missing-doFuture-pkg.R' failed.
Complete output:
> source("incl/start.R")
Loading required package: foreach
Loading required package: future
R Under development (unstable) (2025-04-21 r88169 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] doFuture_1.0.2 future_1.40.0 foreach_1.5.2
loaded via a namespace (and not attached):
[1] compiler_4.6.0 parallelly_1.43.0 tools_4.6.0
[4] parallel_4.6.0 future.apply_1.11.3 listenv_0.9.1
[7] codetools_0.2-20 iterators_1.0.14 digest_0.6.37
[10] globals_0.17.0
> options(future.debug = FALSE)
>
> message("*** cluster() ...")
*** cluster() ...
>
> message("Library paths: ", paste(sQuote(.libPaths()), collapse = ", "))
Library paths: 'D:/temp/2025_04_22_01_50_00_9946/RtmpaWOelG/RLIBS_2d7106299139e', 'D:/RCompile/recent/R/library'
> message("Package path: ", sQuote(system.file(package = "future")))
Package path: 'D:/RCompile/CRANpkg/lib/4.6/future'
>
> types <- "PSOCK"
> #if (supportsMulticore()) types <- c(types, "FORK")
>
> setupClusterWithoutPkgs <- function(type = "PSOCK",
+ withs = c("digest", "globals",
+ "listenv", "future"),
+ withouts = c("doFuture")) {
+ cl <- parallel::makeCluster(1L, type = type, timeout = 60)
+
+ ## Emulate a worker that does not have 'future' installed.
+ ## by setting a different user library path on the worker.
+ libs <- parallel::clusterEvalQ(cl, .libPaths(tempdir()))[[1]]
+ attr(cl, "libs") <- libs
+
+ ## 'withouts' tops 'withs' for conveniency
+ withs <- setdiff(withs, withouts)
+
+ ## "Install" any 'withs' packages?
+ if (length(withs) > 0L) {
+ paths <- find.package(withs)
+ res <- parallel::clusterCall(cl, fun = sapply, X = paths,
+ FUN = file.copy, to = libs[1],
+ recursive = TRUE)[[1]]
+ res <- parallel::clusterCall(cl, fun = sapply, X = withs,
+ FUN = requireNamespace)[[1]]
+ }
+ attr(cl, "withs") <- res
+
+ ## Check whether 'future' is still available on the worker or not.
+ ## It could be that it is installed in the system library path, which
+ ## in case we cannot "hide" the future package from the worker.
+ res <- parallel::clusterCall(cl, fun = sapply, X = withouts,
+ FUN = requireNamespace)[[1]]
+ attr(cl, "withouts") <- res
+
+ cl
+ }
>
> cl <- NULL
> for (type in types) {
+ message(sprintf("Test set #1 with cluster type %s ...", sQuote(type)))
+
+ cl <- setupClusterWithoutPkgs(type, withouts = c("future", "doFuture"))
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## Package 'future' is not installed on worker (r_version: ...)>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dofuture% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ cl <- setupClusterWithoutPkgs(type)
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## there is no package called 'doFuture'>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dofuture% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ plan(sequential)
+
+ message(sprintf("Test set #1 with cluster type %s ... DONE", sQuote(type)))
+ } ## for (type ...)
Test set #1 with cluster type 'PSOCK' ...
[17:07:59.236] doFuture2() ...
[17:07:59.295] Number of chunks: 1
[17:07:59.295] Number of futures (= number of chunks): 1
[17:07:59.295] seed = FALSE
[17:07:59.296] NULL
[17:07:59.298] seed = FALSE
[17:07:59.298] seed = FALSE
[17:07:59.298] - %dofuture% R expression:
[17:07:59.299] ii
[17:07:59.299] - foreach iterator arguments: [1] 'ii'
[17:07:59.299] - dummy globals (as locals): [1] 'ii'
[17:07:59.300] - R expression (map-reduce expression adjusted for RNG):
[17:07:59.300] {
[17:07:59.300] NULL
[17:07:59.300] "# doFuture():::doFuture2(): process chunk of elements"
[17:07:59.300] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[17:07:59.300] ...future.x_jj <- ...future.x_ii[[jj]]
[17:07:59.300] {
[17:07:59.300] NULL
[17:07:59.300] ii <- NULL
[17:07:59.300] }
[17:07:59.300] ...future.env <- environment()
[17:07:59.300] local({
[17:07:59.300] for (name in names(...future.x_jj)) {
[17:07:59.300] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[17:07:59.300] inherits = FALSE)
[17:07:59.300] }
[17:07:59.300] })
[17:07:59.300] NULL
[17:07:59.300] tryCatch(ii, error = identity)
[17:07:59.300] })
[17:07:59.300] }
[17:07:59.300] - identifying globals and packages ...
[17:07:59.300] - Argument 'globals':
[17:07:59.301] logi TRUE
[17:07:59.301] - attr(*, "add")= chr "...future.x_ii"
[17:07:59.301] - attr(*, "ignore")= chr "ii"
[17:07:59.303] - R expression (map-reduce expression searched for globals):
[17:07:59.304] {
[17:07:59.304] NULL
[17:07:59.304] "# doFuture():::doFuture2(): process chunk of elements"
[17:07:59.304] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[17:07:59.304] ...future.x_jj <- ...future.x_ii[[jj]]
[17:07:59.304] {
[17:07:59.304] NULL
[17:07:59.304] ii <- NULL
[17:07:59.304] }
[17:07:59.304] ...future.env <- environment()
[17:07:59.304] local({
[17:07:59.304] for (name in names(...future.x_jj)) {
[17:07:59.304] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[17:07:59.304] inherits = FALSE)
[17:07:59.304] }
[17:07:59.304] })
[17:07:59.304] NULL
[17:07:59.304] tryCatch(ii, error = identity)
[17:07:59.304] })
[17:07:59.304] }
[17:07:59.319] - R expression (%dofuture% expression searched for globals):
[17:07:59.319] ii
[17:07:59.321] - Globals in %dofuture% R expression not in map-reduce expression:
[17:07:59.321] - Appending 0 globals only found in the vanilla %dofuture% expression:
[17:07:59.322] - globals: [1] '...future.x_ii'
[17:07:59.322] List of 1
[17:07:59.322] $ ...future.x_ii: num 42
[17:07:59.322] - attr(*, "where")=List of 1
[17:07:59.322] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[17:07:59.322] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[17:07:59.322] - attr(*, "resolved")= logi FALSE
[17:07:59.322] - attr(*, "total_size")= num 39
[17:07:59.327] - packages: [1] 'doFuture'
[17:07:59.327] - identifying globals and packages ... DONE
[17:07:59.327] Launching 1 futures (chunks) ...
[17:07:59.327] Chunk #1 of 1 ...
[17:07:59.328] - Finding globals in 'args_list' for chunk #1 ...
[17:07:59.329]
[17:07:59.329]
[17:07:59.329] - Finding globals in 'args_list' for chunk #1 ... DONE
[17:07:59.330] - seeds: <none>
[17:07:59.337] Chunk #1 of 1 ... DONE
[17:07:59.337] Launching 1 futures (chunks) ... DONE
[17:07:59.338] - resolving futures
[17:07:59.338] - gathering results & relaying conditions (except errors)
<FutureInterruptError: A future ('doFuture2-1') of class ClusterFuture was interrupted, while running on 'localhost'>
Future UUID: 01455be85a2c442c11fa7fe9ede07c73-2
DEBUG: BEGIN TROUBLESHOOTING HELP
Future involved:
ClusterFuture:
Label: 'doFuture2-1'
Expression:
{
NULL
"# doFuture():::doFuture2(): process chunk of elements"
lapply(seq_along(...future.x_ii), FUN = function(jj) {
...future.x_jj <- ...future.x_ii[[jj]]
{
NULL
ii <- NULL
}
...future.env <- environment()
local({
for (name in names(...future.x_jj)) {
assign(name, ...future.x_jj[[name]], envir = ...future.env,
inherits = FALSE)
}
})
NULL
tryCatch(ii, error = identity)
})
}
Lazy evaluation: FALSE
Asynchronous evaluation: TRUE
Local evaluation: TRUE
Environment: R_GlobalEnv
Capture standard output: TRUE
Capture condition classes: 'condition' (excluding '<none>')
Immediate condition classes: 'immediateCondition'
Globals: 1 objects totaling 194 bytes (list '...future.x_ii' of 194 bytes)
Packages: 1 packages ('doFuture')
L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
Resolved: TRUE
Value: <not collected>
Conditions captured: <none>
Early signaling: FALSE
Owner process: 01455be85a2c442c11fa7fe9ede07c73
Class: 'ClusterFuture', 'MultiprocessFuture', 'Future'
DEBUG: END TROUBLESHOOTING HELP
Error in serialize(data, node$con) : error writing to connection
Calls: <Anonymous> ... postNode -> sendData -> sendData.SOCKnode -> serialize
Execution halted
Running the tests in 'tests/foreach_dopar,cluster-missing-doFuture-pkg.R' failed.
Complete output:
> source("incl/start.R")
Loading required package: foreach
Loading required package: future
R Under development (unstable) (2025-04-21 r88169 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] doFuture_1.0.2 future_1.40.0 foreach_1.5.2
loaded via a namespace (and not attached):
[1] compiler_4.6.0 parallelly_1.43.0 tools_4.6.0
[4] parallel_4.6.0 future.apply_1.11.3 listenv_0.9.1
[7] codetools_0.2-20 iterators_1.0.14 digest_0.6.37
[10] globals_0.17.0
> options(future.debug = FALSE)
>
> message("*** cluster() ...")
*** cluster() ...
>
> registerDoFuture()
>
> message("Library paths: ", paste(sQuote(.libPaths()), collapse = ", "))
Library paths: 'D:/temp/2025_04_22_01_50_00_9946/RtmpaWOelG/RLIBS_2d7106299139e', 'D:/RCompile/recent/R/library'
> message("Package path: ", sQuote(system.file(package = "future")))
Package path: 'D:/RCompile/CRANpkg/lib/4.6/future'
>
> types <- "PSOCK"
> #if (supportsMulticore()) types <- c(types, "FORK")
>
> setupClusterWithoutPkgs <- function(type = "PSOCK",
+ withs = c("digest", "globals",
+ "listenv", "future"),
+ withouts = c("doFuture")) {
+ cl <- parallel::makeCluster(1L, type = type, timeout = 60)
+
+ ## Emulate a worker that does not have 'future' installed.
+ ## by setting a different user library path on the worker.
+ libs <- parallel::clusterEvalQ(cl, .libPaths(tempdir()))[[1]]
+ attr(cl, "libs") <- libs
+
+ ## 'withouts' tops 'withs' for conveniency
+ withs <- setdiff(withs, withouts)
+
+ ## "Install" any 'withs' packages?
+ if (length(withs) > 0L) {
+ paths <- find.package(withs)
+ res <- parallel::clusterCall(cl, fun = sapply, X = paths,
+ FUN = file.copy, to = libs[1],
+ recursive = TRUE)[[1]]
+ res <- parallel::clusterCall(cl, fun = sapply, X = withs,
+ FUN = requireNamespace)[[1]]
+ }
+ attr(cl, "withs") <- res
+
+ ## Check whether 'future' is still available on the worker or not.
+ ## It could be that it is installed in the system library path, which
+ ## in case we cannot "hide" the future package from the worker.
+ res <- parallel::clusterCall(cl, fun = sapply, X = withouts,
+ FUN = requireNamespace)[[1]]
+ attr(cl, "withouts") <- res
+
+ cl
+ }
>
>
> cl <- NULL
> for (type in types) {
+ message(sprintf("Test set #1 with cluster type %s ...", sQuote(type)))
+
+ cl <- setupClusterWithoutPkgs(type, withouts = c("future", "doFuture"))
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## Package 'future' is not installed on worker (r_version: ...)>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dopar% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ cl <- setupClusterWithoutPkgs(type)
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## there is no package called 'doFuture'>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dopar% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ plan(sequential)
+
+ message(sprintf("Test set #1 with cluster type %s ... DONE", sQuote(type)))
+ } ## for (type ...)
Test set #1 with cluster type 'PSOCK' ...
[17:09:55.626] doFuture() ...
[17:09:55.628] - dummy globals (as locals): [1] 'ii'
[17:09:55.629] - R expression:
[17:09:55.629] {
[17:09:55.629] "# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
[17:09:55.629] "# also in nested calls "
[17:09:55.629] doFuture::registerDoFuture()
[17:09:55.629] "# doFuture():::doFuture(): process chunk of elements"
[17:09:55.629] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[17:09:55.629] ...future.x_jj <- ...future.x_ii[[jj]]
[17:09:55.629] {
[17:09:55.629] NULL
[17:09:55.629] ii <- NULL
[17:09:55.629] }
[17:09:55.629] ...future.env <- environment()
[17:09:55.629] local({
[17:09:55.629] for (name in names(...future.x_jj)) {
[17:09:55.629] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[17:09:55.629] inherits = FALSE)
[17:09:55.629] }
[17:09:55.629] })
[17:09:55.629] tryCatch(ii, error = identity)
[17:09:55.629] })
[17:09:55.629] }
[17:09:55.630] - identifying globals and packages ...
[17:09:55.647] List of 1
[17:09:55.647] $ ...future.x_ii: NULL
[17:09:55.647] - attr(*, "where")=List of 1
[17:09:55.647] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[17:09:55.647] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[17:09:55.647] - attr(*, "resolved")= logi FALSE
[17:09:55.647] - attr(*, "total_size")= num 27
[17:09:55.655] - R expression:
[17:09:55.656] {
[17:09:55.656] "# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
[17:09:55.656] "# also in nested calls "
[17:09:55.656] doFuture::registerDoFuture()
[17:09:55.656] "# doFuture():::doFuture(): process chunk of elements"
[17:09:55.656] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[17:09:55.656] ...future.x_jj <- ...future.x_ii[[jj]]
[17:09:55.656] {
[17:09:55.656] NULL
[17:09:55.656] ii <- NULL
[17:09:55.656] }
[17:09:55.656] ...future.env <- environment()
[17:09:55.656] local({
[17:09:55.656] for (name in names(...future.x_jj)) {
[17:09:55.656] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[17:09:55.656] inherits = FALSE)
[17:09:55.656] }
[17:09:55.656] })
[17:09:55.656] tryCatch(ii, error = identity)
[17:09:55.656] })
[17:09:55.656] }
[17:09:55.656] - globals: [1] '...future.x_ii'
[17:09:55.657] List of 1
[17:09:55.657] $ ...future.x_ii: NULL
[17:09:55.657] - attr(*, "where")=List of 1
[17:09:55.657] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[17:09:55.657] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[17:09:55.657] - attr(*, "resolved")= logi FALSE
[17:09:55.657] - attr(*, "total_size")= num 27
[17:09:55.661] - packages: [1] 'doFuture'
[17:09:55.662] - identifying globals and packages ... DONE
[17:09:55.719] Number of chunks: 1
[17:09:55.720] Number of futures (= number of chunks): 1
[17:09:55.720] Launching 1 futures (chunks) ...
[17:09:55.720] Chunk #1 of 1 ...
[17:09:55.721] - Finding globals in 'args_list' chunk #1 ...
[17:09:55.722]
[17:09:55.722]
[17:09:55.722] - Finding globals in 'args_list' for chunk #1 ... DONE
[17:09:55.728] Chunk #1 of 1 ... DONE
[17:09:55.728] Launching 1 futures (chunks) ... DONE
[17:09:55.729] - resolving futures
[17:09:55.729] - gathering results & relaying conditions (except errors)
<FutureInterruptError: A future ('doFuture-1') of class ClusterFuture was interrupted, while running on 'localhost'>
Future UUID: 5d997bbde012798e283f7b2351cb7707-2
DEBUG: BEGIN TROUBLESHOOTING HELP
Future involved:
ClusterFuture:
Label: 'doFuture-1'
Expression:
{
"# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
"# also in nested calls "
doFuture::registerDoFuture()
"# doFuture():::doFuture(): process chunk of elements"
lapply(seq_along(...future.x_ii), FUN = function(jj) {
...future.x_jj <- ...future.x_ii[[jj]]
{
NULL
ii <- NULL
}
...future.env <- environment()
local({
for (name in names(...future.x_jj)) {
assign(name, ...future.x_jj[[name]], envir = ...future.env,
inherits = FALSE)
}
})
tryCatch(ii, error = identity)
})
}
Lazy evaluation: FALSE
Asynchronous evaluation: TRUE
Local evaluation: TRUE
Environment: R_GlobalEnv
Capture standard output: TRUE
Capture condition classes: 'condition' (excluding '<none>')
Immediate condition classes: 'immediateCondition'
Globals: 1 objects totaling 194 bytes (list '...future.x_ii' of 194 bytes)
Packages: 1 packages ('doFuture')
L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
Resolved: TRUE
Value: <not collected>
Conditions captured: <none>
Early signaling: FALSE
Owner process: 5d997bbde012798e283f7b2351cb7707
Class: 'ClusterFuture', 'MultiprocessFuture', 'Future'
DEBUG: END TROUBLESHOOTING HELP
Error in serialize(data, node$con) : error writing to connection
Calls: <Anonymous> ... postNode -> sendData -> sendData.SOCKnode -> serialize
Execution halted
Flavor: r-devel-windows-x86_64
Version: 1.0.2
Check: tests
Result: ERROR
Running 'foreach_dofuture,cluster-missing-doFuture-pkg.R' [62s]
Running 'foreach_dofuture,errors.R' [10s]
Running 'foreach_dofuture,globals.R' [7s]
Running 'foreach_dofuture,nested_colon.R' [14s]
Running 'foreach_dofuture,nested_dofuture.R' [15s]
Running 'foreach_dofuture,rng.R' [4s]
Running 'foreach_dofuture.R' [3s]
Running 'foreach_dopar,cluster-missing-doFuture-pkg.R' [62s]
Running 'foreach_dopar,doRNG,dopar.R' [2s]
Running 'foreach_dopar,doRNG,dorng.R' [5s]
Running 'foreach_dopar,errors.R' [8s]
Running 'foreach_dopar,globals.R' [7s]
Running 'foreach_dopar,nested_colon.R' [13s]
Running 'foreach_dopar,nested_dopar.R' [16s]
Running 'foreach_dopar,options-for-export.R' [5s]
Running 'foreach_dopar.R' [3s]
Running 'makeChunks.R' [4s]
Running 'options,nested.R' [4s]
Running 'registerDoFuture.R' [2s]
Running 'times.R' [2s]
Running 'utils.R' [1s]
Running 'withDoRNG.R' [4s]
Running the tests in 'tests/foreach_dofuture,cluster-missing-doFuture-pkg.R' failed.
Complete output:
> source("incl/start.R")
Loading required package: foreach
Loading required package: future
R version 4.5.0 (2025-04-11 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] doFuture_1.0.2 future_1.40.0 foreach_1.5.2
loaded via a namespace (and not attached):
[1] compiler_4.5.0 parallelly_1.43.0 tools_4.5.0
[4] parallel_4.5.0 future.apply_1.11.3 listenv_0.9.1
[7] codetools_0.2-20 iterators_1.0.14 digest_0.6.37
[10] globals_0.17.0
> options(future.debug = FALSE)
>
> message("*** cluster() ...")
*** cluster() ...
>
> message("Library paths: ", paste(sQuote(.libPaths()), collapse = ", "))
Library paths: 'D:/temp/2025_04_21_01_50_00_22712/Rtmpq4CPx5/RLIBS_2add896744', 'D:/RCompile/recent/R-4.5.0/library'
> message("Package path: ", sQuote(system.file(package = "future")))
Package path: 'D:/RCompile/CRANpkg/lib/4.5/future'
>
> types <- "PSOCK"
> #if (supportsMulticore()) types <- c(types, "FORK")
>
> setupClusterWithoutPkgs <- function(type = "PSOCK",
+ withs = c("digest", "globals",
+ "listenv", "future"),
+ withouts = c("doFuture")) {
+ cl <- parallel::makeCluster(1L, type = type, timeout = 60)
+
+ ## Emulate a worker that does not have 'future' installed.
+ ## by setting a different user library path on the worker.
+ libs <- parallel::clusterEvalQ(cl, .libPaths(tempdir()))[[1]]
+ attr(cl, "libs") <- libs
+
+ ## 'withouts' tops 'withs' for conveniency
+ withs <- setdiff(withs, withouts)
+
+ ## "Install" any 'withs' packages?
+ if (length(withs) > 0L) {
+ paths <- find.package(withs)
+ res <- parallel::clusterCall(cl, fun = sapply, X = paths,
+ FUN = file.copy, to = libs[1],
+ recursive = TRUE)[[1]]
+ res <- parallel::clusterCall(cl, fun = sapply, X = withs,
+ FUN = requireNamespace)[[1]]
+ }
+ attr(cl, "withs") <- res
+
+ ## Check whether 'future' is still available on the worker or not.
+ ## It could be that it is installed in the system library path, which
+ ## in case we cannot "hide" the future package from the worker.
+ res <- parallel::clusterCall(cl, fun = sapply, X = withouts,
+ FUN = requireNamespace)[[1]]
+ attr(cl, "withouts") <- res
+
+ cl
+ }
>
> cl <- NULL
> for (type in types) {
+ message(sprintf("Test set #1 with cluster type %s ...", sQuote(type)))
+
+ cl <- setupClusterWithoutPkgs(type, withouts = c("future", "doFuture"))
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## Package 'future' is not installed on worker (r_version: ...)>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dofuture% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ cl <- setupClusterWithoutPkgs(type)
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## there is no package called 'doFuture'>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dofuture% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ plan(sequential)
+
+ message(sprintf("Test set #1 with cluster type %s ... DONE", sQuote(type)))
+ } ## for (type ...)
Test set #1 with cluster type 'PSOCK' ...
[15:16:42.827] doFuture2() ...
[15:16:42.876] Number of chunks: 1
[15:16:42.876] Number of futures (= number of chunks): 1
[15:16:42.876] seed = FALSE
[15:16:42.877] NULL
[15:16:42.880] seed = FALSE
[15:16:42.880] seed = FALSE
[15:16:42.880] - %dofuture% R expression:
[15:16:42.880] ii
[15:16:42.881] - foreach iterator arguments: [1] 'ii'
[15:16:42.881] - dummy globals (as locals): [1] 'ii'
[15:16:42.882] - R expression (map-reduce expression adjusted for RNG):
[15:16:42.882] {
[15:16:42.882] NULL
[15:16:42.882] "# doFuture():::doFuture2(): process chunk of elements"
[15:16:42.882] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[15:16:42.882] ...future.x_jj <- ...future.x_ii[[jj]]
[15:16:42.882] {
[15:16:42.882] NULL
[15:16:42.882] ii <- NULL
[15:16:42.882] }
[15:16:42.882] ...future.env <- environment()
[15:16:42.882] local({
[15:16:42.882] for (name in names(...future.x_jj)) {
[15:16:42.882] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[15:16:42.882] inherits = FALSE)
[15:16:42.882] }
[15:16:42.882] })
[15:16:42.882] NULL
[15:16:42.882] tryCatch(ii, error = identity)
[15:16:42.882] })
[15:16:42.882] }
[15:16:42.883] - identifying globals and packages ...
[15:16:42.883] - Argument 'globals':
[15:16:42.883] logi TRUE
[15:16:42.883] - attr(*, "add")= chr "...future.x_ii"
[15:16:42.883] - attr(*, "ignore")= chr "ii"
[15:16:42.886] - R expression (map-reduce expression searched for globals):
[15:16:42.886] {
[15:16:42.886] NULL
[15:16:42.886] "# doFuture():::doFuture2(): process chunk of elements"
[15:16:42.886] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[15:16:42.886] ...future.x_jj <- ...future.x_ii[[jj]]
[15:16:42.886] {
[15:16:42.886] NULL
[15:16:42.886] ii <- NULL
[15:16:42.886] }
[15:16:42.886] ...future.env <- environment()
[15:16:42.886] local({
[15:16:42.886] for (name in names(...future.x_jj)) {
[15:16:42.886] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[15:16:42.886] inherits = FALSE)
[15:16:42.886] }
[15:16:42.886] })
[15:16:42.886] NULL
[15:16:42.886] tryCatch(ii, error = identity)
[15:16:42.886] })
[15:16:42.886] }
[15:16:42.898] - R expression (%dofuture% expression searched for globals):
[15:16:42.898] ii
[15:16:42.900] - Globals in %dofuture% R expression not in map-reduce expression:
[15:16:42.901] - Appending 0 globals only found in the vanilla %dofuture% expression:
[15:16:42.901] - globals: [1] '...future.x_ii'
[15:16:42.901] List of 1
[15:16:42.901] $ ...future.x_ii: num 42
[15:16:42.901] - attr(*, "where")=List of 1
[15:16:42.901] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[15:16:42.901] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[15:16:42.901] - attr(*, "resolved")= logi FALSE
[15:16:42.901] - attr(*, "total_size")= num 39
[15:16:42.906] - packages: [1] 'doFuture'
[15:16:42.906] - identifying globals and packages ... DONE
[15:16:42.906] Launching 1 futures (chunks) ...
[15:16:42.906] Chunk #1 of 1 ...
[15:16:42.907] - Finding globals in 'args_list' for chunk #1 ...
[15:16:42.908]
[15:16:42.908]
[15:16:42.908] - Finding globals in 'args_list' for chunk #1 ... DONE
[15:16:42.909] - seeds: <none>
[15:16:42.917] Chunk #1 of 1 ... DONE
[15:16:42.917] Launching 1 futures (chunks) ... DONE
[15:16:42.918] - resolving futures
[15:16:42.918] - gathering results & relaying conditions (except errors)
<FutureInterruptError: A future ('doFuture2-1') of class ClusterFuture was interrupted, while running on 'localhost'>
Future UUID: ab6ac241301fcb17640b305f217dbefd-2
DEBUG: BEGIN TROUBLESHOOTING HELP
Future involved:
ClusterFuture:
Label: 'doFuture2-1'
Expression:
{
NULL
"# doFuture():::doFuture2(): process chunk of elements"
lapply(seq_along(...future.x_ii), FUN = function(jj) {
...future.x_jj <- ...future.x_ii[[jj]]
{
NULL
ii <- NULL
}
...future.env <- environment()
local({
for (name in names(...future.x_jj)) {
assign(name, ...future.x_jj[[name]], envir = ...future.env,
inherits = FALSE)
}
})
NULL
tryCatch(ii, error = identity)
})
}
Lazy evaluation: FALSE
Asynchronous evaluation: TRUE
Local evaluation: TRUE
Environment: R_GlobalEnv
Capture standard output: TRUE
Capture condition classes: 'condition' (excluding '<none>')
Immediate condition classes: 'immediateCondition'
Globals: 1 objects totaling 194 bytes (list '...future.x_ii' of 194 bytes)
Packages: 1 packages ('doFuture')
L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
Resolved: TRUE
Value: <not collected>
Conditions captured: <none>
Early signaling: FALSE
Owner process: ab6ac241301fcb17640b305f217dbefd
Class: 'ClusterFuture', 'MultiprocessFuture', 'Future'
DEBUG: END TROUBLESHOOTING HELP
Error in serialize(data, node$con) : error writing to connection
Calls: <Anonymous> ... postNode -> sendData -> sendData.SOCKnode -> serialize
Execution halted
Running the tests in 'tests/foreach_dopar,cluster-missing-doFuture-pkg.R' failed.
Complete output:
> source("incl/start.R")
Loading required package: foreach
Loading required package: future
R version 4.5.0 (2025-04-11 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
LAPACK version 3.12.1
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] doFuture_1.0.2 future_1.40.0 foreach_1.5.2
loaded via a namespace (and not attached):
[1] compiler_4.5.0 parallelly_1.43.0 tools_4.5.0
[4] parallel_4.5.0 future.apply_1.11.3 listenv_0.9.1
[7] codetools_0.2-20 iterators_1.0.14 digest_0.6.37
[10] globals_0.17.0
> options(future.debug = FALSE)
>
> message("*** cluster() ...")
*** cluster() ...
>
> registerDoFuture()
>
> message("Library paths: ", paste(sQuote(.libPaths()), collapse = ", "))
Library paths: 'D:/temp/2025_04_21_01_50_00_22712/Rtmpq4CPx5/RLIBS_2add896744', 'D:/RCompile/recent/R-4.5.0/library'
> message("Package path: ", sQuote(system.file(package = "future")))
Package path: 'D:/RCompile/CRANpkg/lib/4.5/future'
>
> types <- "PSOCK"
> #if (supportsMulticore()) types <- c(types, "FORK")
>
> setupClusterWithoutPkgs <- function(type = "PSOCK",
+ withs = c("digest", "globals",
+ "listenv", "future"),
+ withouts = c("doFuture")) {
+ cl <- parallel::makeCluster(1L, type = type, timeout = 60)
+
+ ## Emulate a worker that does not have 'future' installed.
+ ## by setting a different user library path on the worker.
+ libs <- parallel::clusterEvalQ(cl, .libPaths(tempdir()))[[1]]
+ attr(cl, "libs") <- libs
+
+ ## 'withouts' tops 'withs' for conveniency
+ withs <- setdiff(withs, withouts)
+
+ ## "Install" any 'withs' packages?
+ if (length(withs) > 0L) {
+ paths <- find.package(withs)
+ res <- parallel::clusterCall(cl, fun = sapply, X = paths,
+ FUN = file.copy, to = libs[1],
+ recursive = TRUE)[[1]]
+ res <- parallel::clusterCall(cl, fun = sapply, X = withs,
+ FUN = requireNamespace)[[1]]
+ }
+ attr(cl, "withs") <- res
+
+ ## Check whether 'future' is still available on the worker or not.
+ ## It could be that it is installed in the system library path, which
+ ## in case we cannot "hide" the future package from the worker.
+ res <- parallel::clusterCall(cl, fun = sapply, X = withouts,
+ FUN = requireNamespace)[[1]]
+ attr(cl, "withouts") <- res
+
+ cl
+ }
>
>
> cl <- NULL
> for (type in types) {
+ message(sprintf("Test set #1 with cluster type %s ...", sQuote(type)))
+
+ cl <- setupClusterWithoutPkgs(type, withouts = c("future", "doFuture"))
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## Package 'future' is not installed on worker (r_version: ...)>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dopar% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ cl <- setupClusterWithoutPkgs(type)
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## there is no package called 'doFuture'>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dopar% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ plan(sequential)
+
+ message(sprintf("Test set #1 with cluster type %s ... DONE", sQuote(type)))
+ } ## for (type ...)
Test set #1 with cluster type 'PSOCK' ...
[15:18:38.918] doFuture() ...
[15:18:38.922] - dummy globals (as locals): [1] 'ii'
[15:18:38.922] - R expression:
[15:18:38.923] {
[15:18:38.923] "# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
[15:18:38.923] "# also in nested calls "
[15:18:38.923] doFuture::registerDoFuture()
[15:18:38.923] "# doFuture():::doFuture(): process chunk of elements"
[15:18:38.923] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[15:18:38.923] ...future.x_jj <- ...future.x_ii[[jj]]
[15:18:38.923] {
[15:18:38.923] NULL
[15:18:38.923] ii <- NULL
[15:18:38.923] }
[15:18:38.923] ...future.env <- environment()
[15:18:38.923] local({
[15:18:38.923] for (name in names(...future.x_jj)) {
[15:18:38.923] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[15:18:38.923] inherits = FALSE)
[15:18:38.923] }
[15:18:38.923] })
[15:18:38.923] tryCatch(ii, error = identity)
[15:18:38.923] })
[15:18:38.923] }
[15:18:38.924] - identifying globals and packages ...
[15:18:38.943] List of 1
[15:18:38.943] $ ...future.x_ii: NULL
[15:18:38.943] - attr(*, "where")=List of 1
[15:18:38.943] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[15:18:38.943] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[15:18:38.943] - attr(*, "resolved")= logi FALSE
[15:18:38.943] - attr(*, "total_size")= num 27
[15:18:38.950] - R expression:
[15:18:38.950] {
[15:18:38.950] "# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
[15:18:38.950] "# also in nested calls "
[15:18:38.950] doFuture::registerDoFuture()
[15:18:38.950] "# doFuture():::doFuture(): process chunk of elements"
[15:18:38.950] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[15:18:38.950] ...future.x_jj <- ...future.x_ii[[jj]]
[15:18:38.950] {
[15:18:38.950] NULL
[15:18:38.950] ii <- NULL
[15:18:38.950] }
[15:18:38.950] ...future.env <- environment()
[15:18:38.950] local({
[15:18:38.950] for (name in names(...future.x_jj)) {
[15:18:38.950] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[15:18:38.950] inherits = FALSE)
[15:18:38.950] }
[15:18:38.950] })
[15:18:38.950] tryCatch(ii, error = identity)
[15:18:38.950] })
[15:18:38.950] }
[15:18:38.951] - globals: [1] '...future.x_ii'
[15:18:38.951] List of 1
[15:18:38.951] $ ...future.x_ii: NULL
[15:18:38.951] - attr(*, "where")=List of 1
[15:18:38.951] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[15:18:38.951] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[15:18:38.951] - attr(*, "resolved")= logi FALSE
[15:18:38.951] - attr(*, "total_size")= num 27
[15:18:38.956] - packages: [1] 'doFuture'
[15:18:38.956] - identifying globals and packages ... DONE
[15:18:39.019] Number of chunks: 1
[15:18:39.019] Number of futures (= number of chunks): 1
[15:18:39.019] Launching 1 futures (chunks) ...
[15:18:39.020] Chunk #1 of 1 ...
[15:18:39.020] - Finding globals in 'args_list' chunk #1 ...
[15:18:39.021]
[15:18:39.021]
[15:18:39.022] - Finding globals in 'args_list' for chunk #1 ... DONE
[15:18:39.029] Chunk #1 of 1 ... DONE
[15:18:39.029] Launching 1 futures (chunks) ... DONE
[15:18:39.029] - resolving futures
[15:18:39.030] - gathering results & relaying conditions (except errors)
<FutureInterruptError: A future ('doFuture-1') of class ClusterFuture was interrupted, while running on 'localhost'>
Future UUID: 4e0b1ad2c47842f5b1daebb174e76686-2
DEBUG: BEGIN TROUBLESHOOTING HELP
Future involved:
ClusterFuture:
Label: 'doFuture-1'
Expression:
{
"# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
"# also in nested calls "
doFuture::registerDoFuture()
"# doFuture():::doFuture(): process chunk of elements"
lapply(seq_along(...future.x_ii), FUN = function(jj) {
...future.x_jj <- ...future.x_ii[[jj]]
{
NULL
ii <- NULL
}
...future.env <- environment()
local({
for (name in names(...future.x_jj)) {
assign(name, ...future.x_jj[[name]], envir = ...future.env,
inherits = FALSE)
}
})
tryCatch(ii, error = identity)
})
}
Lazy evaluation: FALSE
Asynchronous evaluation: TRUE
Local evaluation: TRUE
Environment: R_GlobalEnv
Capture standard output: TRUE
Capture condition classes: 'condition' (excluding '<none>')
Immediate condition classes: 'immediateCondition'
Globals: 1 objects totaling 194 bytes (list '...future.x_ii' of 194 bytes)
Packages: 1 packages ('doFuture')
L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
Resolved: TRUE
Value: <not collected>
Conditions captured: <none>
Early signaling: FALSE
Owner process: 4e0b1ad2c47842f5b1daebb174e76686
Class: 'ClusterFuture', 'MultiprocessFuture', 'Future'
DEBUG: END TROUBLESHOOTING HELP
Error in serialize(data, node$con) : error writing to connection
Calls: <Anonymous> ... postNode -> sendData -> sendData.SOCKnode -> serialize
Execution halted
Flavor: r-release-windows-x86_64
Version: 1.0.2
Check: tests
Result: ERROR
Running 'foreach_dofuture,cluster-missing-doFuture-pkg.R' [63s]
Running 'foreach_dofuture,errors.R' [13s]
Running 'foreach_dofuture,globals.R' [9s]
Running 'foreach_dofuture,nested_colon.R' [18s]
Running 'foreach_dofuture,nested_dofuture.R' [20s]
Running 'foreach_dofuture,rng.R' [5s]
Running 'foreach_dofuture.R' [4s]
Running 'foreach_dopar,cluster-missing-doFuture-pkg.R' [63s]
Running 'foreach_dopar,doRNG,dopar.R' [3s]
Running 'foreach_dopar,doRNG,dorng.R' [7s]
Running 'foreach_dopar,errors.R' [10s]
Running 'foreach_dopar,globals.R' [9s]
Running 'foreach_dopar,nested_colon.R' [16s]
Running 'foreach_dopar,nested_dopar.R' [21s]
Running 'foreach_dopar,options-for-export.R' [6s]
Running 'foreach_dopar.R' [4s]
Running 'makeChunks.R' [5s]
Running 'options,nested.R' [4s]
Running 'registerDoFuture.R' [2s]
Running 'times.R' [2s]
Running 'utils.R' [1s]
Running 'withDoRNG.R' [5s]
Running the tests in 'tests/foreach_dofuture,cluster-missing-doFuture-pkg.R' failed.
Complete output:
> source("incl/start.R")
Loading required package: foreach
Loading required package: future
R version 4.4.3 (2025-02-28 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] doFuture_1.0.2 future_1.40.0 foreach_1.5.2
loaded via a namespace (and not attached):
[1] compiler_4.4.3 parallelly_1.43.0 tools_4.4.3
[4] parallel_4.4.3 future.apply_1.11.3 listenv_0.9.1
[7] codetools_0.2-20 iterators_1.0.14 digest_0.6.37
[10] globals_0.17.0
> options(future.debug = FALSE)
>
> message("*** cluster() ...")
*** cluster() ...
>
> message("Library paths: ", paste(sQuote(.libPaths()), collapse = ", "))
Library paths: 'D:/temp/2025_04_23_01_50_00_29948/Rtmpw3HLvJ/RLIBS_2dbb423bd7dce', 'D:/RCompile/recent/R-4.4.3/library'
> message("Package path: ", sQuote(system.file(package = "future")))
Package path: 'D:/RCompile/CRANpkg/lib/4.4/future'
>
> types <- "PSOCK"
> #if (supportsMulticore()) types <- c(types, "FORK")
>
> setupClusterWithoutPkgs <- function(type = "PSOCK",
+ withs = c("digest", "globals",
+ "listenv", "future"),
+ withouts = c("doFuture")) {
+ cl <- parallel::makeCluster(1L, type = type, timeout = 60)
+
+ ## Emulate a worker that does not have 'future' installed.
+ ## by setting a different user library path on the worker.
+ libs <- parallel::clusterEvalQ(cl, .libPaths(tempdir()))[[1]]
+ attr(cl, "libs") <- libs
+
+ ## 'withouts' tops 'withs' for conveniency
+ withs <- setdiff(withs, withouts)
+
+ ## "Install" any 'withs' packages?
+ if (length(withs) > 0L) {
+ paths <- find.package(withs)
+ res <- parallel::clusterCall(cl, fun = sapply, X = paths,
+ FUN = file.copy, to = libs[1],
+ recursive = TRUE)[[1]]
+ res <- parallel::clusterCall(cl, fun = sapply, X = withs,
+ FUN = requireNamespace)[[1]]
+ }
+ attr(cl, "withs") <- res
+
+ ## Check whether 'future' is still available on the worker or not.
+ ## It could be that it is installed in the system library path, which
+ ## in case we cannot "hide" the future package from the worker.
+ res <- parallel::clusterCall(cl, fun = sapply, X = withouts,
+ FUN = requireNamespace)[[1]]
+ attr(cl, "withouts") <- res
+
+ cl
+ }
>
> cl <- NULL
> for (type in types) {
+ message(sprintf("Test set #1 with cluster type %s ...", sQuote(type)))
+
+ cl <- setupClusterWithoutPkgs(type, withouts = c("future", "doFuture"))
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## Package 'future' is not installed on worker (r_version: ...)>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dofuture% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ cl <- setupClusterWithoutPkgs(type)
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## there is no package called 'doFuture'>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dofuture% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ plan(sequential)
+
+ message(sprintf("Test set #1 with cluster type %s ... DONE", sQuote(type)))
+ } ## for (type ...)
Test set #1 with cluster type 'PSOCK' ...
[21:05:08.311] doFuture2() ...
[21:05:08.399] Number of chunks: 1
[21:05:08.400] Number of futures (= number of chunks): 1
[21:05:08.400] seed = FALSE
[21:05:08.401] NULL
[21:05:08.404] seed = FALSE
[21:05:08.404] seed = FALSE
[21:05:08.404] - %dofuture% R expression:
[21:05:08.405] ii
[21:05:08.405] - foreach iterator arguments: [1] 'ii'
[21:05:08.405] - dummy globals (as locals): [1] 'ii'
[21:05:08.406] - R expression (map-reduce expression adjusted for RNG):
[21:05:08.406] {
[21:05:08.406] NULL
[21:05:08.406] "# doFuture():::doFuture2(): process chunk of elements"
[21:05:08.406] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[21:05:08.406] ...future.x_jj <- ...future.x_ii[[jj]]
[21:05:08.406] {
[21:05:08.406] NULL
[21:05:08.406] ii <- NULL
[21:05:08.406] }
[21:05:08.406] ...future.env <- environment()
[21:05:08.406] local({
[21:05:08.406] for (name in names(...future.x_jj)) {
[21:05:08.406] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[21:05:08.406] inherits = FALSE)
[21:05:08.406] }
[21:05:08.406] })
[21:05:08.406] NULL
[21:05:08.406] tryCatch(ii, error = identity)
[21:05:08.406] })
[21:05:08.406] }
[21:05:08.407] - identifying globals and packages ...
[21:05:08.407] - Argument 'globals':
[21:05:08.407] logi TRUE
[21:05:08.407] - attr(*, "add")= chr "...future.x_ii"
[21:05:08.407] - attr(*, "ignore")= chr "ii"
[21:05:08.411] - R expression (map-reduce expression searched for globals):
[21:05:08.411] {
[21:05:08.411] NULL
[21:05:08.411] "# doFuture():::doFuture2(): process chunk of elements"
[21:05:08.411] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[21:05:08.411] ...future.x_jj <- ...future.x_ii[[jj]]
[21:05:08.411] {
[21:05:08.411] NULL
[21:05:08.411] ii <- NULL
[21:05:08.411] }
[21:05:08.411] ...future.env <- environment()
[21:05:08.411] local({
[21:05:08.411] for (name in names(...future.x_jj)) {
[21:05:08.411] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[21:05:08.411] inherits = FALSE)
[21:05:08.411] }
[21:05:08.411] })
[21:05:08.411] NULL
[21:05:08.411] tryCatch(ii, error = identity)
[21:05:08.411] })
[21:05:08.411] }
[21:05:08.433] - R expression (%dofuture% expression searched for globals):
[21:05:08.433] ii
[21:05:08.436] - Globals in %dofuture% R expression not in map-reduce expression:
[21:05:08.437] - Appending 0 globals only found in the vanilla %dofuture% expression:
[21:05:08.437] - globals: [1] '...future.x_ii'
[21:05:08.438] List of 1
[21:05:08.438] $ ...future.x_ii: num 42
[21:05:08.438] - attr(*, "where")=List of 1
[21:05:08.438] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[21:05:08.438] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[21:05:08.438] - attr(*, "resolved")= logi FALSE
[21:05:08.438] - attr(*, "total_size")= num 39
[21:05:08.446] - packages: [1] 'doFuture'
[21:05:08.447] - identifying globals and packages ... DONE
[21:05:08.447] Launching 1 futures (chunks) ...
[21:05:08.447] Chunk #1 of 1 ...
[21:05:08.448] - Finding globals in 'args_list' for chunk #1 ...
[21:05:08.450]
[21:05:08.451]
[21:05:08.451] - Finding globals in 'args_list' for chunk #1 ... DONE
[21:05:08.451] - seeds: <none>
[21:05:08.463] Chunk #1 of 1 ... DONE
[21:05:08.464] Launching 1 futures (chunks) ... DONE
[21:05:08.464] - resolving futures
[21:05:08.464] - gathering results & relaying conditions (except errors)
<FutureInterruptError: A future ('doFuture2-1') of class ClusterFuture was interrupted, while running on 'localhost'>
Future UUID: a17d4b1dac691e8883360a1482701388-2
DEBUG: BEGIN TROUBLESHOOTING HELP
Future involved:
ClusterFuture:
Label: 'doFuture2-1'
Expression:
{
NULL
"# doFuture():::doFuture2(): process chunk of elements"
lapply(seq_along(...future.x_ii), FUN = function(jj) {
...future.x_jj <- ...future.x_ii[[jj]]
{
NULL
ii <- NULL
}
...future.env <- environment()
local({
for (name in names(...future.x_jj)) {
assign(name, ...future.x_jj[[name]], envir = ...future.env,
inherits = FALSE)
}
})
NULL
tryCatch(ii, error = identity)
})
}
Lazy evaluation: FALSE
Asynchronous evaluation: TRUE
Local evaluation: TRUE
Environment: R_GlobalEnv
Capture standard output: TRUE
Capture condition classes: 'condition' (excluding '<none>')
Immediate condition classes: 'immediateCondition'
Globals: 1 objects totaling 194 bytes (list '...future.x_ii' of 194 bytes)
Packages: 1 packages ('doFuture')
L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
Resolved: TRUE
Value: <not collected>
Conditions captured: <none>
Early signaling: FALSE
Owner process: a17d4b1dac691e8883360a1482701388
Class: 'ClusterFuture', 'MultiprocessFuture', 'Future'
DEBUG: END TROUBLESHOOTING HELP
Error in serialize(data, node$con) : error writing to connection
Calls: <Anonymous> ... postNode -> sendData -> sendData.SOCKnode -> serialize
Execution halted
Running the tests in 'tests/foreach_dopar,cluster-missing-doFuture-pkg.R' failed.
Complete output:
> source("incl/start.R")
Loading required package: foreach
Loading required package: future
R version 4.4.3 (2025-02-28 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows Server 2022 x64 (build 20348)
Matrix products: default
locale:
[1] LC_COLLATE=C LC_CTYPE=German_Germany.utf8
[3] LC_MONETARY=C LC_NUMERIC=C
[5] LC_TIME=C
time zone: Europe/Berlin
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] doFuture_1.0.2 future_1.40.0 foreach_1.5.2
loaded via a namespace (and not attached):
[1] compiler_4.4.3 parallelly_1.43.0 tools_4.4.3
[4] parallel_4.4.3 future.apply_1.11.3 listenv_0.9.1
[7] codetools_0.2-20 iterators_1.0.14 digest_0.6.37
[10] globals_0.17.0
> options(future.debug = FALSE)
>
> message("*** cluster() ...")
*** cluster() ...
>
> registerDoFuture()
>
> message("Library paths: ", paste(sQuote(.libPaths()), collapse = ", "))
Library paths: 'D:/temp/2025_04_23_01_50_00_29948/Rtmpw3HLvJ/RLIBS_2dbb423bd7dce', 'D:/RCompile/recent/R-4.4.3/library'
> message("Package path: ", sQuote(system.file(package = "future")))
Package path: 'D:/RCompile/CRANpkg/lib/4.4/future'
>
> types <- "PSOCK"
> #if (supportsMulticore()) types <- c(types, "FORK")
>
> setupClusterWithoutPkgs <- function(type = "PSOCK",
+ withs = c("digest", "globals",
+ "listenv", "future"),
+ withouts = c("doFuture")) {
+ cl <- parallel::makeCluster(1L, type = type, timeout = 60)
+
+ ## Emulate a worker that does not have 'future' installed.
+ ## by setting a different user library path on the worker.
+ libs <- parallel::clusterEvalQ(cl, .libPaths(tempdir()))[[1]]
+ attr(cl, "libs") <- libs
+
+ ## 'withouts' tops 'withs' for conveniency
+ withs <- setdiff(withs, withouts)
+
+ ## "Install" any 'withs' packages?
+ if (length(withs) > 0L) {
+ paths <- find.package(withs)
+ res <- parallel::clusterCall(cl, fun = sapply, X = paths,
+ FUN = file.copy, to = libs[1],
+ recursive = TRUE)[[1]]
+ res <- parallel::clusterCall(cl, fun = sapply, X = withs,
+ FUN = requireNamespace)[[1]]
+ }
+ attr(cl, "withs") <- res
+
+ ## Check whether 'future' is still available on the worker or not.
+ ## It could be that it is installed in the system library path, which
+ ## in case we cannot "hide" the future package from the worker.
+ res <- parallel::clusterCall(cl, fun = sapply, X = withouts,
+ FUN = requireNamespace)[[1]]
+ attr(cl, "withouts") <- res
+
+ cl
+ }
>
>
> cl <- NULL
> for (type in types) {
+ message(sprintf("Test set #1 with cluster type %s ...", sQuote(type)))
+
+ cl <- setupClusterWithoutPkgs(type, withouts = c("future", "doFuture"))
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## Package 'future' is not installed on worker (r_version: ...)>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dopar% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ cl <- setupClusterWithoutPkgs(type)
+ if (all(attr(cl, "withs")) && !all(attr(cl, "withouts"))) {
+ plan(cluster, workers = cl, .init = FALSE)
+
+ ## Here we will get:
+ ## <UnexpectedFutureResultError: Unexpected result (of class
+ ## 'snow-try-error' != 'FutureResult') retrieved for ClusterFuture
+ ## future (label = '<none>', expression = '{ ... }'):
+ ## there is no package called 'doFuture'>
+ ## Note: This error is produced by the future backend when it recieves
+ ## the unexpected results.
+ res <- tryCatch({
+ y <- foreach(ii = 1:3) %dopar% ii
+ }, error = identity)
+ print(res)
+ stopifnot(inherits(res, "FutureError"))
+ }
+ parallel::stopCluster(cl)
+ cl <- NULL
+
+ plan(sequential)
+
+ message(sprintf("Test set #1 with cluster type %s ... DONE", sQuote(type)))
+ } ## for (type ...)
Test set #1 with cluster type 'PSOCK' ...
[21:07:20.193] doFuture() ...
[21:07:20.196] - dummy globals (as locals): [1] 'ii'
[21:07:20.197] - R expression:
[21:07:20.198] {
[21:07:20.198] "# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
[21:07:20.198] "# also in nested calls "
[21:07:20.198] doFuture::registerDoFuture()
[21:07:20.198] "# doFuture():::doFuture(): process chunk of elements"
[21:07:20.198] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[21:07:20.198] ...future.x_jj <- ...future.x_ii[[jj]]
[21:07:20.198] {
[21:07:20.198] NULL
[21:07:20.198] ii <- NULL
[21:07:20.198] }
[21:07:20.198] ...future.env <- environment()
[21:07:20.198] local({
[21:07:20.198] for (name in names(...future.x_jj)) {
[21:07:20.198] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[21:07:20.198] inherits = FALSE)
[21:07:20.198] }
[21:07:20.198] })
[21:07:20.198] tryCatch(ii, error = identity)
[21:07:20.198] })
[21:07:20.198] }
[21:07:20.199] - identifying globals and packages ...
[21:07:20.221] List of 1
[21:07:20.221] $ ...future.x_ii: NULL
[21:07:20.221] - attr(*, "where")=List of 1
[21:07:20.221] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[21:07:20.221] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[21:07:20.221] - attr(*, "resolved")= logi FALSE
[21:07:20.221] - attr(*, "total_size")= num 27
[21:07:20.229] - R expression:
[21:07:20.229] {
[21:07:20.229] "# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
[21:07:20.229] "# also in nested calls "
[21:07:20.229] doFuture::registerDoFuture()
[21:07:20.229] "# doFuture():::doFuture(): process chunk of elements"
[21:07:20.229] lapply(seq_along(...future.x_ii), FUN = function(jj) {
[21:07:20.229] ...future.x_jj <- ...future.x_ii[[jj]]
[21:07:20.229] {
[21:07:20.229] NULL
[21:07:20.229] ii <- NULL
[21:07:20.229] }
[21:07:20.229] ...future.env <- environment()
[21:07:20.229] local({
[21:07:20.229] for (name in names(...future.x_jj)) {
[21:07:20.229] assign(name, ...future.x_jj[[name]], envir = ...future.env,
[21:07:20.229] inherits = FALSE)
[21:07:20.229] }
[21:07:20.229] })
[21:07:20.229] tryCatch(ii, error = identity)
[21:07:20.229] })
[21:07:20.229] }
[21:07:20.230] - globals: [1] '...future.x_ii'
[21:07:20.231] List of 1
[21:07:20.231] $ ...future.x_ii: NULL
[21:07:20.231] - attr(*, "where")=List of 1
[21:07:20.231] ..$ ...future.x_ii:<environment: R_EmptyEnv>
[21:07:20.231] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list"
[21:07:20.231] - attr(*, "resolved")= logi FALSE
[21:07:20.231] - attr(*, "total_size")= num 27
[21:07:20.237] - packages: [1] 'doFuture'
[21:07:20.237] - identifying globals and packages ... DONE
[21:07:20.309] Number of chunks: 1
[21:07:20.310] Number of futures (= number of chunks): 1
[21:07:20.310] Launching 1 futures (chunks) ...
[21:07:20.310] Chunk #1 of 1 ...
[21:07:20.310] - Finding globals in 'args_list' chunk #1 ...
[21:07:20.311]
[21:07:20.312]
[21:07:20.312] - Finding globals in 'args_list' for chunk #1 ... DONE
[21:07:20.319] Chunk #1 of 1 ... DONE
[21:07:20.319] Launching 1 futures (chunks) ... DONE
[21:07:20.320] - resolving futures
[21:07:20.320] - gathering results & relaying conditions (except errors)
<FutureInterruptError: A future ('doFuture-1') of class ClusterFuture was interrupted, while running on 'localhost'>
Future UUID: e3357d392de2bed0ce80c1dba8ebcdc9-2
DEBUG: BEGIN TROUBLESHOOTING HELP
Future involved:
ClusterFuture:
Label: 'doFuture-1'
Expression:
{
"# doFuture():::doFuture(): Make sure that foreach uses 'doFuture'"
"# also in nested calls "
doFuture::registerDoFuture()
"# doFuture():::doFuture(): process chunk of elements"
lapply(seq_along(...future.x_ii), FUN = function(jj) {
...future.x_jj <- ...future.x_ii[[jj]]
{
NULL
ii <- NULL
}
...future.env <- environment()
local({
for (name in names(...future.x_jj)) {
assign(name, ...future.x_jj[[name]], envir = ...future.env,
inherits = FALSE)
}
})
tryCatch(ii, error = identity)
})
}
Lazy evaluation: FALSE
Asynchronous evaluation: TRUE
Local evaluation: TRUE
Environment: R_GlobalEnv
Capture standard output: TRUE
Capture condition classes: 'condition' (excluding '<none>')
Immediate condition classes: 'immediateCondition'
Globals: 1 objects totaling 194 bytes (list '...future.x_ii' of 194 bytes)
Packages: 1 packages ('doFuture')
L'Ecuyer-CMRG RNG seed: <none> (seed = FALSE)
Resolved: TRUE
Value: <not collected>
Conditions captured: <none>
Early signaling: FALSE
Owner process: e3357d392de2bed0ce80c1dba8ebcdc9
Class: 'ClusterFuture', 'MultiprocessFuture', 'Future'
DEBUG: END TROUBLESHOOTING HELP
Error in serialize(data, node$con) : error writing to connection
Calls: <Anonymous> ... postNode -> sendData -> sendData.SOCKnode -> serialize
Execution halted
Flavor: r-oldrel-windows-x86_64
Current CRAN status: ERROR: 4, OK: 9
Version: 1.40.0
Check: tests
Result: ERROR
Running ‘test-FutureError.R’ [1s/1s]
Running ‘test-FutureGlobals.R’ [1s/1s]
Running ‘test-FutureRegistry.R’ [1s/1s]
Running ‘test-adhoc_native_to_utf8.R’ [1s/1s]
Running ‘test-backtrace.R’ [2s/4s]
Running ‘test-bquote.R’ [1s/1s]
Running ‘test-capture_journals.R’ [2s/3s]
Running ‘test-cluster,worker-termination.R’ [1s/4s]
Running ‘test-cluster-connection-clashes.R’ [2s/4s]
Running ‘test-cluster-missing-future-pkg.R’ [1s/2s]
Running ‘test-demo-fibonacci.R’ [2s/3s]
Running ‘test-demo-mandelbrot.R’ [4s/6s]
Running ‘test-dotdotdot.R’ [4s/7s]
Running ‘test-early-signaling.R’ [1s/3s]
Running ‘test-future,labels.R’ [3s/6s]
Running ‘test-future,optsenvvars.R’ [1s/3s]
Running ‘test-future.R’ [1s/1s]
Running ‘test-futureAssign.R’ [4s/7s]
Running ‘test-futureAssign_OP.R’ [6s/9s]
Running ‘test-futureAssign_OP_with_environment.R’ [1s/1s]
Running ‘test-futureAssign_OP_with_listenv.R’ [2s/2s]
Running ‘test-futureCall.R’ [4s/10s]
Running ‘test-futureOf.R’ [1s/1s]
Running ‘test-futureOf_with_environment.R’ [1s/1s]
Running ‘test-futureOf_with_listenv.R’ [1s/1s]
Running ‘test-futureSessionInfo.R’ [1s/2s]
Running ‘test-futures.R’ [20s/28s]
Running ‘test-globals,NSE.R’ [2s/6s]
Running ‘test-globals,S4methods.R’ [2s/5s]
Running ‘test-globals,formulas.R’ [8s/13s]
Running ‘test-globals,locals.R’ [2s/5s]
Running ‘test-globals,manual.R’ [5s/12s]
Running ‘test-globals,resolve.R’ [2s/3s]
Running ‘test-globals,subassignment.R’ [6s/11s]
Running ‘test-globals,toolarge.R’ [1s/2s]
Running ‘test-globals,tricky.R’ [16s/23s]
Running ‘test-globals,tricky_recursive.R’ [2s/3s]
Running ‘test-globalsOf,tweaks.R’ [1s/1s]
Running ‘test-immediateCondition.R’ [1s/3s]
Running ‘test-interrupt-sets.R’ [2s/6s]
Running ‘test-interrupt.R’ [1s/4s]
Running ‘test-interrupts-from-worker-itself.R’ [1s/3s]
Running ‘test-invalid-owner.R’ [2s/5s]
Running ‘test-mandelbrot.R’ [1s/1s]
Running ‘test-misuse-connections.R’ [1s/1s]
Running ‘test-mpi.R’ [1s/1s]
Running ‘test-multicore,multithreading.R’ [2s/2s]
Running ‘test-multicore,worker-termination.R’ [1s/1s]
Running ‘test-nbrOfWorkers.R’ [3s/7s]
Running ‘test-nested_futures,mc.cores.R’ [4s/16s]
Running ‘test-nested_futures.R’ [3s/10s]
Running ‘test-non-exportable,connections.R’ [1s/2s]
Running ‘test-objectSize.R’ [1s/1s]
Running ‘test-plan.R’ [3s/14s]
Running ‘test-relaying,muffle.R’ [1s/1s]
Running ‘test-relaying,split.R’ [1s/1s]
Running ‘test-relaying.R’ [2s/6s]
Running ‘test-requestCore.R’ [1s/2s]
Running ‘test-requestNode.R’ [1s/3s]
Running ‘test-reserved-keyword-functions.R’ [1s/1s]
Running ‘test-reset.R’ [2s/4s]
Running ‘test-resolve.R’ [9s/20s]
Running ‘test-resolved-non-blocking-test.R’ [0s/1s]
Running ‘test-rng.R’ [29s/39s]
Running ‘test-rng_utils.R’ [1s/1s]
Running ‘test-sequential.R’ [1s/1s]
Running ‘test-sessionDetails.R’ [1s/1s]
Running ‘test-startup-onAttach.R’ [1s/1s]
Running ‘test-startup-onLoad.R’ [1s/3s]
Running ‘test-startup-parseCmdArgs.R’ [1s/1s]
Running ‘test-stdout.R’ [5s/8s]
Running ‘test-timeouts.R’ [1s/4s]
Running ‘test-tweak.R’ [2s/4s]
Running ‘test-utils.R’ [1s/1s]
Running ‘test-uuid.R’ [1s/2s]
Running ‘test-value.R’ [14s/30s]
Running ‘test-whichIndex.R’ [1s/1s]
Running the tests in ‘tests/test-early-signaling.R’ failed.
Complete output:
> ## This runs testme test script incl/testme/test-early-signaling.R
> ## Don't edit - it was autogenerated by inst/testme/deploy.R
> future:::testme("early-signaling")
Test 'early-signaling' ...
Sourcing 9 prologue scripts ...
01/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/001.load.R'
02/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/002.record-state.R'
03/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/030.imports.R'
04/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/050.utils.R'
05/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/090.context.R'
06/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/090.options.R'
07/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/091.envvars.R'
08/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/099.future-setup.R'
09/09 prologue script '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/_prologue/995.detrius-connections.R'
Sourcing 9 prologue scripts ... done
Running test script: '/home/hornik/tmp/R.check/r-devel-clang/Work/build/Packages/future/testme/test-early-signaling.R'
> library(future)
[00:00:58.410] Option 'future.startup.script': TRUE
[00:00:58.411] Future startup scripts considered: '.future.R', '~/.future.R'
[00:00:58.411] Future startup scripts found: <none>
> options(future.debug = FALSE)
> message("*** Early signaling of conditions ...")
*** Early signaling of conditions ...
> message("*** Early signaling of conditions with sequential futures ...")
*** Early signaling of conditions with sequential futures ...
> plan(sequential)
> f <- future({
+ stop("bang!")
+ })
> r <- resolved(f)
> stopifnot(r)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- resolved(f)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> plan(sequential, earlySignal = TRUE)
> f <- tryCatch(future({
+ stop("bang!")
+ }), error = identity)
> stopifnot(inherits(f, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- tryCatch(resolved(f), error = identity)
> stopifnot(inherits(r, "error"))
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> f <- future({
+ warning("careful!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> str(res)
List of 2
$ message: chr "careful!"
$ call : language eval(quote({ { ...
- attr(*, "class")= chr [1:3] "simpleWarning" "warning" "condition"
> stopifnot(inherits(res, "warning"))
> f <- future({
+ message("hey!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "message"))
> f <- future({
+ signalCondition(simpleCondition("hmm"))
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "condition"))
> message("*** Early signaling of conditions with sequential futures ... DONE")
*** Early signaling of conditions with sequential futures ... DONE
> message("Number of available cores: ", availableCores())
Number of available cores: 2
> message("*** Early signaling of conditions with multisession futures ...")
*** Early signaling of conditions with multisession futures ...
> plan(multisession)
> f <- future({
+ stop("bang!")
+ })
> Sys.sleep(0.2)
> r <- resolved(f)
> stopifnot(r)
Error: r is not TRUE
Execution halted
Flavor: r-devel-linux-x86_64-debian-clang
Version: 1.40.0
Check: tests
Result: ERROR
Running ‘test-FutureError.R’
Running ‘test-FutureGlobals.R’
Running ‘test-FutureRegistry.R’
Running ‘test-adhoc_native_to_utf8.R’
Running ‘test-backtrace.R’ [4s/13s]
Running ‘test-bquote.R’
Running ‘test-capture_journals.R’
Running ‘test-cluster,worker-termination.R’ [2s/10s]
Running ‘test-cluster-connection-clashes.R’ [3s/20s]
Running ‘test-cluster-missing-future-pkg.R’
Running ‘test-demo-fibonacci.R’
Running ‘test-demo-mandelbrot.R’ [6s/17s]
Running ‘test-dotdotdot.R’ [7s/20s]
Running ‘test-early-signaling.R’
Running ‘test-future,labels.R’ [5s/17s]
Running ‘test-future,optsenvvars.R’ [2s/11s]
Running ‘test-future.R’
Running ‘test-futureAssign.R’ [7s/24s]
Running ‘test-futureAssign_OP.R’ [11s/34s]
Running ‘test-futureAssign_OP_with_environment.R’
Running ‘test-futureAssign_OP_with_listenv.R’
Running ‘test-futureCall.R’ [6s/26s]
Running ‘test-futureOf.R’
Running ‘test-futureOf_with_environment.R’
Running ‘test-futureOf_with_listenv.R’
Running ‘test-futureSessionInfo.R’
Running ‘test-futures.R’ [33s/76s]
Running ‘test-globals,NSE.R’ [3s/14s]
Running ‘test-globals,S4methods.R’ [4s/11s]
Running ‘test-globals,formulas.R’ [13s/36s]
Running ‘test-globals,locals.R’ [4s/13s]
Running ‘test-globals,manual.R’ [8s/26s]
Running ‘test-globals,resolve.R’ [3s/10s]
Running ‘test-globals,subassignment.R’ [11s/35s]
Running ‘test-globals,toolarge.R’
Running ‘test-globals,tricky.R’ [30s/74s]
Running ‘test-globals,tricky_recursive.R’
Running ‘test-globalsOf,tweaks.R’
Running ‘test-immediateCondition.R’
Running ‘test-interrupt-sets.R’ [3s/13s]
Running ‘test-interrupt.R’ [2s/10s]
Running ‘test-interrupts-from-worker-itself.R’
Running ‘test-invalid-owner.R’ [3s/10s]
Running ‘test-mandelbrot.R’
Running ‘test-misuse-connections.R’
Running ‘test-mpi.R’
Running ‘test-multicore,multithreading.R’
Running ‘test-multicore,worker-termination.R’
Running ‘test-nbrOfWorkers.R’ [5s/18s]
Running ‘test-nested_futures,mc.cores.R’ [7s/40s]
Running ‘test-nested_futures.R’ [6s/30s]
Running ‘test-non-exportable,connections.R’
Running ‘test-objectSize.R’
Running ‘test-plan.R’ [4s/33s]
Running ‘test-relaying,muffle.R’
Running ‘test-relaying,split.R’
Running ‘test-relaying.R’ [4s/14s]
Running ‘test-requestCore.R’
Running ‘test-requestNode.R’
Running ‘test-reserved-keyword-functions.R’
Running ‘test-reset.R’ [4s/12s]
Running ‘test-resolve.R’ [13s/41s]
Running ‘test-resolved-non-blocking-test.R’
Running ‘test-rng.R’ [51s/108s]
Running ‘test-rng_utils.R’
Running ‘test-sequential.R’
Running ‘test-sessionDetails.R’
Running ‘test-startup-onAttach.R’
Running ‘test-startup-onLoad.R’
Running ‘test-startup-parseCmdArgs.R’
Running ‘test-stdout.R’ [8s/23s]
Running ‘test-timeouts.R’
Running ‘test-tweak.R’ [4s/11s]
Running ‘test-utils.R’
Running ‘test-uuid.R’
Running ‘test-value.R’ [22s/53s]
Running ‘test-whichIndex.R’
Running the tests in ‘tests/test-early-signaling.R’ failed.
Complete output:
> ## This runs testme test script incl/testme/test-early-signaling.R
> ## Don't edit - it was autogenerated by inst/testme/deploy.R
> future:::testme("early-signaling")
Test 'early-signaling' ...
Sourcing 9 prologue scripts ...
01/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/001.load.R'
02/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/002.record-state.R'
03/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/030.imports.R'
04/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/050.utils.R'
05/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/090.context.R'
06/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/090.options.R'
07/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/091.envvars.R'
08/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/099.future-setup.R'
09/09 prologue script '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/_prologue/995.detrius-connections.R'
Sourcing 9 prologue scripts ... done
Running test script: '/data/gannet/ripley/R/packages/tests-clang/future.Rcheck/future/testme/test-early-signaling.R'
> library(future)
[15:20:05.137] Option 'future.startup.script': TRUE
[15:20:05.139] Future startup scripts considered: '.future.R', '~/.future.R'
[15:20:05.139] Future startup scripts found: <none>
> options(future.debug = FALSE)
> message("*** Early signaling of conditions ...")
*** Early signaling of conditions ...
> message("*** Early signaling of conditions with sequential futures ...")
*** Early signaling of conditions with sequential futures ...
> plan(sequential)
> f <- future({
+ stop("bang!")
+ })
> r <- resolved(f)
> stopifnot(r)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- resolved(f)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> plan(sequential, earlySignal = TRUE)
> f <- tryCatch(future({
+ stop("bang!")
+ }), error = identity)
> stopifnot(inherits(f, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- tryCatch(resolved(f), error = identity)
> stopifnot(inherits(r, "error"))
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> f <- future({
+ warning("careful!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> str(res)
List of 2
$ message: chr "careful!"
$ call : language eval(quote({ { ...
- attr(*, "class")= chr [1:3] "simpleWarning" "warning" "condition"
> stopifnot(inherits(res, "warning"))
> f <- future({
+ message("hey!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "message"))
> f <- future({
+ signalCondition(simpleCondition("hmm"))
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "condition"))
> message("*** Early signaling of conditions with sequential futures ... DONE")
*** Early signaling of conditions with sequential futures ... DONE
> message("Number of available cores: ", availableCores())
Number of available cores: 2
> message("*** Early signaling of conditions with multisession futures ...")
*** Early signaling of conditions with multisession futures ...
> plan(multisession)
> f <- future({
+ stop("bang!")
+ })
> Sys.sleep(0.2)
> r <- resolved(f)
> stopifnot(r)
Error: r is not TRUE
Execution halted
Flavor: r-devel-linux-x86_64-fedora-clang
Version: 1.40.0
Check: tests
Result: ERROR
Running ‘test-FutureError.R’
Running ‘test-FutureGlobals.R’
Running ‘test-FutureRegistry.R’
Running ‘test-adhoc_native_to_utf8.R’
Running ‘test-backtrace.R’
Running ‘test-bquote.R’
Running ‘test-capture_journals.R’
Running ‘test-cluster,worker-termination.R’
Running ‘test-cluster-connection-clashes.R’ [3s/13s]
Running ‘test-cluster-missing-future-pkg.R’
Running ‘test-demo-fibonacci.R’
Running ‘test-demo-mandelbrot.R’ [6s/15s]
Running ‘test-dotdotdot.R’ [6s/19s]
Running ‘test-early-signaling.R’
Running ‘test-future,labels.R’ [5s/14s]
Running ‘test-future,optsenvvars.R’
Running ‘test-future.R’
Running ‘test-futureAssign.R’ [7s/21s]
Running ‘test-futureAssign_OP.R’ [11s/25s]
Running ‘test-futureAssign_OP_with_environment.R’
Running ‘test-futureAssign_OP_with_listenv.R’
Running ‘test-futureCall.R’ [6s/19s]
Running ‘test-futureOf.R’
Running ‘test-futureOf_with_environment.R’
Running ‘test-futureOf_with_listenv.R’
Running ‘test-futureSessionInfo.R’
Running ‘test-futures.R’ [34s/71s]
Running ‘test-globals,NSE.R’ [3s/12s]
Running ‘test-globals,S4methods.R’ [4s/13s]
Running ‘test-globals,formulas.R’ [13s/35s]
Running ‘test-globals,locals.R’ [4s/11s]
Running ‘test-globals,manual.R’ [8s/25s]
Running ‘test-globals,resolve.R’
Running ‘test-globals,subassignment.R’ [11s/29s]
Running ‘test-globals,toolarge.R’
Running ‘test-globals,tricky.R’ [29s/69s]
Running ‘test-globals,tricky_recursive.R’
Running ‘test-globalsOf,tweaks.R’
Running ‘test-immediateCondition.R’
Running ‘test-interrupt-sets.R’ [3s/11s]
Running ‘test-interrupt.R’
Running ‘test-interrupts-from-worker-itself.R’
Running ‘test-invalid-owner.R’ [2s/10s]
Running ‘test-mandelbrot.R’
Running ‘test-misuse-connections.R’
Running ‘test-mpi.R’
Running ‘test-multicore,multithreading.R’
Running ‘test-multicore,worker-termination.R’
Running ‘test-nbrOfWorkers.R’ [4s/15s]
Running ‘test-nested_futures,mc.cores.R’ [6s/32s]
Running ‘test-nested_futures.R’ [5s/21s]
Running ‘test-non-exportable,connections.R’
Running ‘test-objectSize.R’
Running ‘test-plan.R’ [4s/27s]
Running ‘test-relaying,muffle.R’
Running ‘test-relaying,split.R’
Running ‘test-relaying.R’ [4s/11s]
Running ‘test-requestCore.R’
Running ‘test-requestNode.R’
Running ‘test-reserved-keyword-functions.R’
Running ‘test-reset.R’ [3s/13s]
Running ‘test-resolve.R’ [13s/36s]
Running ‘test-resolved-non-blocking-test.R’
Running ‘test-rng.R’ [49s/88s]
Running ‘test-rng_utils.R’
Running ‘test-sequential.R’
Running ‘test-sessionDetails.R’
Running ‘test-startup-onAttach.R’
Running ‘test-startup-onLoad.R’
Running ‘test-startup-parseCmdArgs.R’
Running ‘test-stdout.R’ [8s/19s]
Running ‘test-timeouts.R’
Running ‘test-tweak.R’
Running ‘test-utils.R’ [15s/33s]
Running ‘test-uuid.R’
Running ‘test-value.R’ [21s/51s]
Running ‘test-whichIndex.R’
Running the tests in ‘tests/test-early-signaling.R’ failed.
Complete output:
> ## This runs testme test script incl/testme/test-early-signaling.R
> ## Don't edit - it was autogenerated by inst/testme/deploy.R
> future:::testme("early-signaling")
Test 'early-signaling' ...
Sourcing 9 prologue scripts ...
01/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/001.load.R'
02/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/002.record-state.R'
03/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/030.imports.R'
04/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/050.utils.R'
05/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/090.context.R'
06/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/090.options.R'
07/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/091.envvars.R'
08/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/099.future-setup.R'
09/09 prologue script '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/_prologue/995.detrius-connections.R'
Sourcing 9 prologue scripts ... done
Running test script: '/data/gannet/ripley/R/packages/tests-devel/future.Rcheck/future/testme/test-early-signaling.R'
> library(future)
[19:03:56.175] Option 'future.startup.script': TRUE
[19:03:56.182] Future startup scripts considered: '.future.R', '~/.future.R'
[19:03:56.183] Future startup scripts found: <none>
> options(future.debug = FALSE)
> message("*** Early signaling of conditions ...")
*** Early signaling of conditions ...
> message("*** Early signaling of conditions with sequential futures ...")
*** Early signaling of conditions with sequential futures ...
> plan(sequential)
> f <- future({
+ stop("bang!")
+ })
> r <- resolved(f)
> stopifnot(r)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- resolved(f)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> plan(sequential, earlySignal = TRUE)
> f <- tryCatch(future({
+ stop("bang!")
+ }), error = identity)
> stopifnot(inherits(f, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- tryCatch(resolved(f), error = identity)
> stopifnot(inherits(r, "error"))
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> f <- future({
+ warning("careful!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> str(res)
List of 2
$ message: chr "careful!"
$ call : language eval(quote({ { ...
- attr(*, "class")= chr [1:3] "simpleWarning" "warning" "condition"
> stopifnot(inherits(res, "warning"))
> f <- future({
+ message("hey!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "message"))
> f <- future({
+ signalCondition(simpleCondition("hmm"))
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "condition"))
> message("*** Early signaling of conditions with sequential futures ... DONE")
*** Early signaling of conditions with sequential futures ... DONE
> message("Number of available cores: ", availableCores())
Number of available cores: 2
> message("*** Early signaling of conditions with multisession futures ...")
*** Early signaling of conditions with multisession futures ...
> plan(multisession)
> f <- future({
+ stop("bang!")
+ })
> Sys.sleep(0.2)
> r <- resolved(f)
> stopifnot(r)
Error: r is not TRUE
Execution halted
Flavor: r-devel-linux-x86_64-fedora-gcc
Version: 1.40.0
Check: tests
Result: ERROR
Running ‘test-FutureError.R’ [1s/1s]
Running ‘test-FutureGlobals.R’ [1s/1s]
Running ‘test-FutureRegistry.R’ [1s/2s]
Running ‘test-adhoc_native_to_utf8.R’ [1s/1s]
Running ‘test-backtrace.R’ [2s/4s]
Running ‘test-bquote.R’ [1s/1s]
Running ‘test-capture_journals.R’ [2s/3s]
Running ‘test-cluster,worker-termination.R’ [1s/3s]
Running ‘test-cluster-connection-clashes.R’ [2s/5s]
Running ‘test-cluster-missing-future-pkg.R’ [1s/3s]
Running ‘test-demo-fibonacci.R’ [2s/2s]
Running ‘test-demo-mandelbrot.R’ [3s/6s]
Running ‘test-dotdotdot.R’ [4s/6s]
Running ‘test-early-signaling.R’ [1s/3s]
Running ‘test-future,labels.R’ [3s/6s]
Running ‘test-future,optsenvvars.R’ [1s/3s]
Running ‘test-future.R’ [1s/2s]
Running ‘test-futureAssign.R’ [4s/7s]
Running ‘test-futureAssign_OP.R’ [6s/10s]
Running ‘test-futureAssign_OP_with_environment.R’ [1s/1s]
Running ‘test-futureAssign_OP_with_listenv.R’ [1s/2s]
Running ‘test-futureCall.R’ [3s/9s]
Running ‘test-futureOf.R’ [1s/1s]
Running ‘test-futureOf_with_environment.R’ [1s/1s]
Running ‘test-futureOf_with_listenv.R’ [1s/1s]
Running ‘test-futureSessionInfo.R’ [1s/2s]
Running ‘test-futures.R’ [19s/28s]
Running ‘test-globals,NSE.R’ [2s/4s]
Running ‘test-globals,S4methods.R’ [2s/5s]
Running ‘test-globals,formulas.R’ [7s/13s]
Running ‘test-globals,locals.R’ [2s/5s]
Running ‘test-globals,manual.R’ [5s/12s]
Running ‘test-globals,resolve.R’ [2s/3s]
Running ‘test-globals,subassignment.R’ [6s/11s]
Running ‘test-globals,toolarge.R’ [1s/2s]
Running ‘test-globals,tricky.R’ [16s/25s]
Running ‘test-globals,tricky_recursive.R’ [1s/3s]
Running ‘test-globalsOf,tweaks.R’ [1s/1s]
Running ‘test-immediateCondition.R’ [1s/2s]
Running ‘test-interrupt-sets.R’ [2s/5s]
Running ‘test-interrupt.R’ [1s/4s]
Running ‘test-interrupts-from-worker-itself.R’ [1s/3s]
Running ‘test-invalid-owner.R’ [2s/4s]
Running ‘test-mandelbrot.R’ [1s/1s]
Running ‘test-misuse-connections.R’ [1s/1s]
Running ‘test-mpi.R’ [1s/1s]
Running ‘test-multicore,multithreading.R’ [2s/2s]
Running ‘test-multicore,worker-termination.R’ [1s/1s]
Running ‘test-nbrOfWorkers.R’ [3s/7s]
Running ‘test-nested_futures,mc.cores.R’ [4s/13s]
Running ‘test-nested_futures.R’ [3s/8s]
Running ‘test-non-exportable,connections.R’ [1s/3s]
Running ‘test-objectSize.R’ [1s/1s]
Running ‘test-plan.R’ [3s/13s]
Running ‘test-relaying,muffle.R’ [1s/1s]
Running ‘test-relaying,split.R’ [1s/1s]
Running ‘test-relaying.R’ [3s/5s]
Running ‘test-requestCore.R’ [1s/2s]
Running ‘test-requestNode.R’ [1s/4s]
Running ‘test-reserved-keyword-functions.R’ [1s/1s]
Running ‘test-reset.R’ [3s/7s]
Running ‘test-resolve.R’ [9s/22s]
Running ‘test-resolved-non-blocking-test.R’ [0s/1s]
Running ‘test-rng.R’ [27s/36s]
Running ‘test-rng_utils.R’ [1s/1s]
Running ‘test-sequential.R’ [1s/1s]
Running ‘test-sessionDetails.R’ [1s/1s]
Running ‘test-startup-onAttach.R’ [1s/1s]
Running ‘test-startup-onLoad.R’ [1s/3s]
Running ‘test-startup-parseCmdArgs.R’ [1s/1s]
Running ‘test-stdout.R’ [5s/9s]
Running ‘test-timeouts.R’ [1s/3s]
Running ‘test-tweak.R’ [2s/4s]
Running ‘test-utils.R’ [1s/1s]
Running ‘test-uuid.R’ [1s/2s]
Running ‘test-value.R’ [14s/28s]
Running ‘test-whichIndex.R’ [1s/1s]
Running the tests in ‘tests/test-early-signaling.R’ failed.
Complete output:
> ## This runs testme test script incl/testme/test-early-signaling.R
> ## Don't edit - it was autogenerated by inst/testme/deploy.R
> future:::testme("early-signaling")
Test 'early-signaling' ...
Sourcing 9 prologue scripts ...
01/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/001.load.R'
02/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/002.record-state.R'
03/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/030.imports.R'
04/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/050.utils.R'
05/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/090.context.R'
06/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/090.options.R'
07/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/091.envvars.R'
08/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/099.future-setup.R'
09/09 prologue script '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/_prologue/995.detrius-connections.R'
Sourcing 9 prologue scripts ... done
Running test script: '/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/future/testme/test-early-signaling.R'
> library(future)
[00:01:50.760] Option 'future.startup.script': TRUE
[00:01:50.765] Future startup scripts considered: '.future.R', '~/.future.R'
[00:01:50.765] Future startup scripts found: <none>
> options(future.debug = FALSE)
> message("*** Early signaling of conditions ...")
*** Early signaling of conditions ...
> message("*** Early signaling of conditions with sequential futures ...")
*** Early signaling of conditions with sequential futures ...
> plan(sequential)
> f <- future({
+ stop("bang!")
+ })
> r <- resolved(f)
> stopifnot(r)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- resolved(f)
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> plan(sequential, earlySignal = TRUE)
> f <- tryCatch(future({
+ stop("bang!")
+ }), error = identity)
> stopifnot(inherits(f, "error"))
> message("- with lazy evaluation ...")
- with lazy evaluation ...
> f <- future({
+ stop("bang!")
+ }, lazy = TRUE)
> r <- tryCatch(resolved(f), error = identity)
> stopifnot(inherits(r, "error"))
> v <- tryCatch(value(f), error = identity)
> stopifnot(inherits(v, "error"))
> f <- future({
+ warning("careful!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> str(res)
List of 2
$ message: chr "careful!"
$ call : language eval(quote({ { ...
- attr(*, "class")= chr [1:3] "simpleWarning" "warning" "condition"
> stopifnot(inherits(res, "warning"))
> f <- future({
+ message("hey!")
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "message"))
> f <- future({
+ signalCondition(simpleCondition("hmm"))
+ }, lazy = TRUE)
> res <- tryCatch({
+ r <- resolved(f)
+ }, condition = function(w) w)
> stopifnot(inherits(res, "condition"))
> message("*** Early signaling of conditions with sequential futures ... DONE")
*** Early signaling of conditions with sequential futures ... DONE
> message("Number of available cores: ", availableCores())
Number of available cores: 2
> message("*** Early signaling of conditions with multisession futures ...")
*** Early signaling of conditions with multisession futures ...
> plan(multisession)
> f <- future({
+ stop("bang!")
+ })
> Sys.sleep(0.2)
> r <- resolved(f)
> stopifnot(r)
Error: r is not TRUE
Execution halted
Flavor: r-patched-linux-x86_64
Current CRAN status: OK: 13
Current CRAN status: NOTE: 6, OK: 7
Version: 0.12.1
Check: Rd cross-references
Result: NOTE
Found the following Rd file(s) with Rd \link{} targets missing package
anchors:
nbrOfWorkers.batchtools.Rd: plan
Please provide package anchors for all Rd \link{} targets not in the
package itself and the base packages.
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-windows-x86_64
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: NOTE: 13
Version: 0.16.0
Check: Rd files
Result: NOTE
checkRd: (-1) R.cache-package.Rd:28-30: Lost braces in \itemize; meant \describe ?
checkRd: (-1) R.cache-package.Rd:31-34: Lost braces in \itemize; meant \describe ?
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-macos-arm64, r-release-macos-x86_64, r-release-windows-x86_64, r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64
Current CRAN status: NOTE: 1, OK: 12
Version: 2.17.2
Check: package vignettes
Result: NOTE
Package has ‘vignettes’ subdirectory but apparently no vignettes.
Perhaps the ‘VignetteBuilder’ information is missing from the
DESCRIPTION file?
Flavor: r-oldrel-macos-x86_64
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: NOTE: 13
Version: 3.7.0
Check: Rd files
Result: NOTE
checkRd: (-1) setOption.Matlab.Rd:37-39: Lost braces in \itemize; meant \describe ?
checkRd: (-1) setOption.Matlab.Rd:40-41: Lost braces in \itemize; meant \describe ?
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-macos-arm64, r-release-macos-x86_64, r-release-windows-x86_64, r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: OK: 13
Current CRAN status: NOTE: 13
Version: 0.10.1
Check: Rd files
Result: NOTE
checkRd: (-1) TopDom.Rd:21: Lost braces; missing escapes or markup?
21 | Recommended range is in {5, ..., 20}.}
| ^
Flavors: r-devel-linux-x86_64-debian-clang, r-devel-linux-x86_64-debian-gcc, r-devel-linux-x86_64-fedora-clang, r-devel-linux-x86_64-fedora-gcc, r-devel-windows-x86_64, r-patched-linux-x86_64, r-release-linux-x86_64, r-release-macos-arm64, r-release-macos-x86_64, r-release-windows-x86_64, r-oldrel-macos-arm64, r-oldrel-macos-x86_64, r-oldrel-windows-x86_64
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.