Last updated on 2025-04-30 09:54:17 CEST.
Flavor | Version | Tinstall | Tcheck | Ttotal | Status | Flags |
---|---|---|---|---|---|---|
r-devel-linux-x86_64-debian-clang | 1.40.0 | 10.57 | 296.65 | 307.22 | ERROR | |
r-devel-linux-x86_64-debian-gcc | 1.40.0 | 7.37 | 222.62 | 229.99 | OK | |
r-devel-linux-x86_64-fedora-clang | 1.40.0 | 506.77 | ERROR | |||
r-devel-linux-x86_64-fedora-gcc | 1.40.0 | 527.09 | ERROR | |||
r-devel-windows-x86_64 | 1.40.0 | 14.00 | 354.00 | 368.00 | OK | |
r-patched-linux-x86_64 | 1.40.0 | 12.85 | 282.10 | 294.95 | ERROR | |
r-release-linux-x86_64 | 1.40.0 | 9.22 | 280.40 | 289.62 | OK | |
r-release-macos-arm64 | 1.40.0 | 196.00 | OK | |||
r-release-macos-x86_64 | 1.40.0 | 519.00 | OK | |||
r-release-windows-x86_64 | 1.40.0 | 15.00 | 347.00 | 362.00 | OK | |
r-oldrel-macos-arm64 | 1.40.0 | 235.00 | OK | |||
r-oldrel-macos-x86_64 | 1.40.0 | 511.00 | OK | |||
r-oldrel-windows-x86_64 | 1.40.0 | 17.00 | 396.00 | 413.00 | OK |
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/2s]
Running ‘test-capture_journals.R’ [2s/3s]
Running ‘test-cluster,worker-termination.R’ [1s/4s]
Running ‘test-cluster-connection-clashes.R’ [2s/5s]
Running ‘test-cluster-missing-future-pkg.R’ [1s/3s]
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/5s]
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/11s]
Running ‘test-futureAssign_OP_with_environment.R’ [1s/1s]
Running ‘test-futureAssign_OP_with_listenv.R’ [2s/2s]
Running ‘test-futureCall.R’ [4s/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’ [20s/30s]
Running ‘test-globals,NSE.R’ [2s/6s]
Running ‘test-globals,S4methods.R’ [2s/4s]
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/4s]
Running ‘test-globals,subassignment.R’ [6s/11s]
Running ‘test-globals,toolarge.R’ [1s/2s]
Running ‘test-globals,tricky.R’ [17s/27s]
Running ‘test-globals,tricky_recursive.R’ [1s/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/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/15s]
Running ‘test-nested_futures.R’ [3s/8s]
Running ‘test-non-exportable,connections.R’ [1s/2s]
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’ [2s/5s]
Running ‘test-requestCore.R’ [1s/1s]
Running ‘test-requestNode.R’ [1s/3s]
Running ‘test-reserved-keyword-functions.R’ [1s/1s]
Running ‘test-reset.R’ [3s/8s]
Running ‘test-resolve.R’ [9s/22s]
Running ‘test-resolved-non-blocking-test.R’ [0s/1s]
Running ‘test-rng.R’ [28s/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/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/29s]
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:19:56.070] Option 'future.startup.script': TRUE
[00:19:56.071] Future startup scripts considered: '.future.R', '~/.future.R'
[00:19:56.071] 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/12s]
Running ‘test-bquote.R’
Running ‘test-capture_journals.R’ [3s/15s]
Running ‘test-cluster,worker-termination.R’
Running ‘test-cluster-connection-clashes.R’ [3s/10s]
Running ‘test-cluster-missing-future-pkg.R’
Running ‘test-demo-fibonacci.R’
Running ‘test-demo-mandelbrot.R’ [6s/13s]
Running ‘test-dotdotdot.R’ [6s/11s]
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/38s]
Running ‘test-futureAssign_OP_with_environment.R’
Running ‘test-futureAssign_OP_with_listenv.R’
Running ‘test-futureCall.R’ [5s/17s]
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/85s]
Running ‘test-globals,NSE.R’ [3s/15s]
Running ‘test-globals,S4methods.R’ [4s/16s]
Running ‘test-globals,formulas.R’ [13s/45s]
Running ‘test-globals,locals.R’ [3s/13s]
Running ‘test-globals,manual.R’ [8s/37s]
Running ‘test-globals,resolve.R’ [2s/12s]
Running ‘test-globals,subassignment.R’ [11s/30s]
Running ‘test-globals,toolarge.R’
Running ‘test-globals,tricky.R’ [28s/80s]
Running ‘test-globals,tricky_recursive.R’ [3s/13s]
Running ‘test-globalsOf,tweaks.R’
Running ‘test-immediateCondition.R’
Running ‘test-interrupt-sets.R’ [3s/17s]
Running ‘test-interrupt.R’ [2s/15s]
Running ‘test-interrupts-from-worker-itself.R’
Running ‘test-invalid-owner.R’ [3s/12s]
Running ‘test-mandelbrot.R’
Running ‘test-misuse-connections.R’
Running ‘test-mpi.R’
Running ‘test-multicore,multithreading.R’ [3s/15s]
Running ‘test-multicore,worker-termination.R’
Running ‘test-nbrOfWorkers.R’ [5s/24s]
Running ‘test-nested_futures,mc.cores.R’ [7s/41s]
Running ‘test-nested_futures.R’ [5s/32s]
Running ‘test-non-exportable,connections.R’ [2s/10s]
Running ‘test-objectSize.R’
Running ‘test-plan.R’ [5s/55s]
Running ‘test-relaying,muffle.R’
Running ‘test-relaying,split.R’
Running ‘test-relaying.R’ [4s/20s]
Running ‘test-requestCore.R’
Running ‘test-requestNode.R’ [2s/12s]
Running ‘test-reserved-keyword-functions.R’
Running ‘test-reset.R’ [3s/11s]
Running ‘test-resolve.R’ [14s/56s]
Running ‘test-resolved-non-blocking-test.R’
Running ‘test-rng.R’ [47s/94s]
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/18s]
Running ‘test-timeouts.R’
Running ‘test-tweak.R’
Running ‘test-utils.R’
Running ‘test-uuid.R’
Running ‘test-value.R’ [22s/48s]
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)
[09:43:47.674] Option 'future.startup.script': TRUE
[09:43:47.676] Future startup scripts considered: '.future.R', '~/.future.R'
[09:43:47.676] 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
Running the tests in ‘tests/test-globals,resolve.R’ failed.
Complete output:
> ## This runs testme test script incl/testme/test-globals,resolve.R
> ## Don't edit - it was autogenerated by inst/testme/deploy.R
> future:::testme("globals,resolve")
Test 'globals,resolve' ...
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-globals,resolve.R'
> library(future)
[09:49:25.214] Option 'future.startup.script': TRUE
[09:49:25.216] Future startup scripts considered: '.future.R', '~/.future.R'
[09:49:25.217] Future startup scripts found: <none>
> library(listenv)
> oopts <- c(oopts, options(future.globals.resolve = TRUE))
> setTimeLimit(cpu = 10, elapsed = 10, transient = TRUE)
> message("*** Tricky use cases related to globals (part 2) ...")
*** Tricky use cases related to globals (part 2) ...
> plan(multisession, workers = 2)
[09:49:25.230] plan(<name>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:25.234] | plan(): plan_set(<1 strategies>, skip = FALSE, cleanup = NA, init = TRUE) ...
[09:49:25.235] | : all.equal() for FutureStrategyList ...
[09:49:25.235] | : . New stack:
[09:49:25.235] | : . List of 1
[09:49:25.235] | : . $ :function (..., workers = 2L, envir = parent.frame())
[09:49:25.235] | : . ..- attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ...
[09:49:25.235] | : . ..- attr(*, "init")= logi TRUE
[09:49:25.235] | : . ..- attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...)
[09:49:25.235] | : . .. ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.235] | : . ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.235] | : . ..- attr(*, "untweakable")= chr "persistent"
[09:49:25.235] | : . ..- attr(*, "tweaks")=List of 1
[09:49:25.235] | : . .. ..$ workers: int 2
[09:49:25.235] | : . ..- attr(*, "call")= language plan(multisession, workers = 2L)
[09:49:25.235] | : . - attr(*, "class")= chr [1:2] "FutureStrategyList" "list"
[09:49:25.258] | : . Old stack:
[09:49:25.258] | : . List of 1
[09:49:25.258] | : . $ :function (..., gc = FALSE, earlySignal = FALSE, envir = parent.frame())
[09:49:25.258] | : . ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function"
[09:49:25.258] | : . ..- attr(*, "factory")=function (..., maxSizeOfObjects = +Inf)
[09:49:25.258] | : . .. ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ...
[09:49:25.258] | : . ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ...
[09:49:25.258] | : . ..- attr(*, "call")= language plan(sequential)
[09:49:25.258] | : . - attr(*, "class")= chr [1:2] "FutureStrategyList" "list"
[09:49:25.268] | : . Not identical
[09:49:25.269] | : . all.equal() for future ...
[09:49:25.269] | : . | List of 2
[09:49:25.269] | : . | $ target :function (..., workers = 2L, envir = parent.frame())
[09:49:25.269] | : . | ..- attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ...
[09:49:25.269] | : . | ..- attr(*, "init")= logi TRUE
[09:49:25.269] | : . | ..- attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...)
[09:49:25.269] | : . | .. ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.269] | : . | ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.269] | : . | ..- attr(*, "untweakable")= chr "persistent"
[09:49:25.269] | : . | ..- attr(*, "tweaks")=List of 1
[09:49:25.269] | : . | .. ..$ workers: int 2
[09:49:25.269] | : . | ..- attr(*, "call")= language plan(multisession, workers = 2L)
[09:49:25.269] | : . | $ current:function (..., gc = FALSE, earlySignal = FALSE, envir = parent.frame())
[09:49:25.269] | : . | ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function"
[09:49:25.269] | : . | ..- attr(*, "factory")=function (..., maxSizeOfObjects = +Inf)
[09:49:25.269] | : . | .. ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ...
[09:49:25.269] | : . | ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ...
[09:49:25.269] | : . | ..- attr(*, "call")= language plan(sequential)
[09:49:25.299] | : . | Formals differ
[09:49:25.299] | : . all.equal() for future ... done
[09:49:25.300] | : . Future strategies differ at level 1
[09:49:25.300] | : all.equal() for FutureStrategyList ... done
[09:49:25.300] | : plan(): Setting new future strategy stack:
[09:49:25.301] | : List of future strategies:
[09:49:25.301] | : 1. multisession:
[09:49:25.301] | : - args: function (..., workers = 2L, envir = parent.frame())
[09:49:25.301] | : - tweaked: TRUE
[09:49:25.301] | : - call: plan(multisession, workers = 2L)
[09:49:25.303] | : List of 1
[09:49:25.303] | : $ :function (..., workers = 2L, envir = parent.frame())
[09:49:25.303] | : ..- attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ...
[09:49:25.303] | : ..- attr(*, "init")= logi TRUE
[09:49:25.303] | : ..- attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...)
[09:49:25.303] | : .. ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.303] | : ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.303] | : ..- attr(*, "untweakable")= chr "persistent"
[09:49:25.303] | : ..- attr(*, "tweaks")=List of 1
[09:49:25.303] | : .. ..$ workers: int 2
[09:49:25.303] | : ..- attr(*, "call")= language plan(multisession, workers = 2L)
[09:49:25.303] | : - attr(*, "class")= chr [1:2] "FutureStrategyList" "list"
[09:49:25.338] | : plan(): plan_cleanup('sequential', 'uniprocess', 'future', 'function', cleanup = NA) ...
[09:49:25.338] | : . plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:25.343] | : . | Getting current ("next") strategy: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function'
[09:49:25.343] | : . plan(<FutureStrategy>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:25.344] | : . Legacy shutdown of cluster workers ...
[09:49:25.345] | : . | Stopping existing cluster ...
[09:49:25.345] | : . | : No pre-existing cluster. Skipping
[09:49:25.345] | : . | Stopping existing cluster ... done
[09:49:25.346] | : . Legacy shutdown of cluster workers ... done
[09:49:25.346] | : plan(): plan_cleanup('sequential', 'uniprocess', 'future', 'function', cleanup = NA) ... done
[09:49:25.351] | : plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ...
[09:49:25.351] | : . function (..., workers = 2L, envir = parent.frame())
[09:49:25.351] | : . - attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ...
[09:49:25.351] | : . - attr(*, "init")= logi TRUE
[09:49:25.351] | : . - attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...)
[09:49:25.351] | : . ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.351] | : . - attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ...
[09:49:25.351] | : . - attr(*, "untweakable")= chr "persistent"
[09:49:25.351] | : . - attr(*, "tweaks")=List of 1
[09:49:25.351] | : . ..$ workers: int 2
[09:49:25.351] | : . - attr(*, "call")= language plan(multisession, workers = 2L)
[09:49:25.375] | : . init: TRUE
[09:49:25.376] | : . makeFutureBackend(<tweaked>) ...
[09:49:25.376] | : . | Backend function: <'NULL'>
[09:49:25.377] | : . | ClusterFutureBackend(..., persistent = FALSE, gc = TRUE, earlySignal = TRUE) ...
[09:49:25.377] | : . | : workers: 2
[09:49:25.378] | : . | : getCluster() ...
[09:49:25.378] | : . | : getCluster() ... done
[09:49:25.383] | : . | : Stopping existing cluster ...
[09:49:25.383] | : . | : . No pre-existing cluster. Skipping
[09:49:25.384] | : . | : Stopping existing cluster ... done
[09:49:25.384] | : . | : Starting new cluster ...
[09:49:25.384] | : . | : . makeCluster(workers, ...) ...
[09:49:25.385] | : . | : . | Arguments:
[09:49:25.385] | : . | : . | List of 1
[09:49:25.385] | : . | : . | $ : int 2
[09:49:29.817] | : . | : . | Generated cluster UUID
[09:49:29.818] | : . | : . | Cluster UUID: 'd64086e51cfa4a946a85ae7277b86087'
[09:49:29.818] | : . | : . | Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R Under development (unstable) (2025-04-26 r88181), platform x86_64-pc-linux-gnu)
[09:49:29.835] | : . | : . makeCluster(workers, ...) ... done
[09:49:29.840] | : . | : . Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R Under development (unstable) (2025-04-26 r88181), platform x86_64-pc-linux-gnu)
[09:49:29.850] | : . | : Starting new cluster ... done
[09:49:29.850] | : . | : Number of workers: 2
[09:49:29.851] | : . | : Workers UUID: 'd64086e51cfa4a946a85ae7277b86087'
[09:49:29.856] | : . | ClusterFutureBackend(..., persistent = FALSE, gc = TRUE, earlySignal = TRUE) ... done
[09:49:29.856] | : . | Backend: <'MultisessionFutureBackend', 'ClusterFutureBackend', 'MultiprocessFutureBackend', 'FutureBackend', 'environment'>
[09:49:29.857] | : . makeFutureBackend(<tweaked>) ... done
[09:49:29.857] | : plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... done
[09:49:29.858] | : plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:29.859] | : . Getting current ("next") strategy: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function'
[09:49:29.859] | : plan(<FutureStrategy>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:29.864] | : plan(): nbrOfWorkers() = 2
[09:49:29.864] | plan(): plan_set(<1 strategies>, skip = FALSE, cleanup = NA, init = TRUE) ... done
[09:49:29.865] plan(<tweaked>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
> env <- new.env()
> env$a %<-% {
+ 5
+ }
Warning in getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, :
R option 'future.globals.resolve' may only be used for troubleshooting. It must not be used in production since it changes how futures are evaluated and there is a great risk that the results cannot be reproduced elsewhere: 'TRUE'
[09:49:29.879] getGlobalsAndPackages() ...
[09:49:29.880] | Searching for globals ...
[09:49:29.923] | : globals found: [1] '{'
[09:49:29.928] | Searching for globals ... DONE
[09:49:29.928] | Resolving globals: TRUE
[09:49:29.929] | Resolving any globals that are futures ...
[09:49:29.929] | : globals: [1] '{'
[09:49:29.930] | Resolving any globals that are futures ... DONE
[09:49:29.930] | Search for packages associated with the globals ...
[09:49:29.931] | : Packages associated with globals: [1] 'base'
[09:49:29.936] | : Packages: [1] 'base'
[09:49:29.937] | Search for packages associated with the globals ... DONE
[09:49:29.937] | Packages after dropping 'base': [0]
[09:49:29.938] | globals: [0]
[09:49:29.938] | packages: [0]
[09:49:29.939] getGlobalsAndPackages() ... done
[09:49:29.946] run() for Future ('Future') ...
[09:49:29.947] | state: 'created'
[09:49:29.947] | plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:29.948] | plan(<tweaked>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:29.948] | Using MultisessionFutureBackend ...
[09:49:29.953] | : Launching futures ...
[09:49:29.955] | : . launchFuture() for ClusterFutureBackend ...
[09:49:29.955] | : . | Workers: [n=2]
[09:49:29.955] | : . | Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R Under development (unstable) (2025-04-26 r88181), platform x86_64-pc-linux-gnu)
[09:49:29.971] | : . | FutureRegistry: 'workers-d64086e51cfa4a946a85ae7277b86087'
[09:49:29.971] | : . | requestWorker() ...
[09:49:29.972] | : . | : requestNode() ...
[09:49:29.972] | : . | : . Number of workers: 2
[09:49:29.977] | : . | : . Polling for a free worker ...
[09:49:29.977] | : . | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ...
[09:49:29.978] | : . | : . | : Created empty registry 'workers-d64086e51cfa4a946a85ae7277b86087'
[09:49:29.978] | : . | : . | : Listing all futures
[09:49:29.979] | : . | : . | : Number of registered futures: 0
[09:49:29.979] | : . | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ... done
[09:49:29.980] | : . | : . | Total time: 0
[09:49:29.980] | : . | : . Polling for a free worker ... done
[09:49:29.985] | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ...
[09:49:29.985] | : . | : . | Listing all futures
[09:49:29.986] | : . | : . | Number of registered futures: 0
[09:49:29.986] | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ... done
[09:49:29.987] | : . | : . Index of first available worker: 1
[09:49:29.987] | : . | : . Validate that the worker is functional ...
[09:49:30.572] | : . | : . | Worker is functional
[09:49:30.572] | : . | : . requestNode() ... done
[09:49:30.573] | : . | : . cluster node index: 1
[09:49:30.573] | : . | : requestWorker() ... done
[09:49:30.574] | : . | : eraseGlobalEnvironment() ...
[09:49:30.595] | : . | : eraseGlobalEnvironment() ... done
[09:49:30.595] | : . | : launchFuture() ...
[09:49:30.596] | : . | : . cluster node index: 1
[09:49:30.596] | : . | : . getFutureData() ...
[09:49:30.597] | : . | : . | getFutureCore() ...
[09:49:30.598] | : . | : . | : Packages needed by the future expression (n = 0): <none>
[09:49:30.598] | : . | : . | getFutureCore() ... done
[09:49:30.623] | : . | : . | getFutureCapture() ...
[09:49:30.623] | : . | : . | getFutureCapture() ... done
[09:49:30.624] | : . | : . | getFutureContext() ...
[09:49:30.625] | : . | : . | : plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:30.625] | : . | : . | : . Getting stack without first strategy: [n=0]
[09:49:30.626] | : . | : . | : plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:30.626] | : . | : . | : Packages needed by future strategies (n = 0): <none>
[09:49:30.651] | : . | : . | getFutureContext() ... done
[09:49:30.652] | : . | : . getFutureData() ... done
[09:49:30.678] | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'add', earlySignal = 0) ...
[09:49:30.678] | : . | : . | Appended future to position #1
[09:49:30.679] | : . | : . | Number of registered futures: 1
[09:49:30.679] | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'add', earlySignal = 0) ... done
[09:49:30.680] | : . | : launchFuture() ... done
[09:49:30.680] | : . | : MultisessionFuture started
[09:49:30.681] | : . | launchFuture() for ClusterFutureBackend ... done
[09:49:30.681] | : . Launching futures ... done
[09:49:30.710] | : . Future launched: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future'
[09:49:30.711] | : Using MultisessionFutureBackend ... done
[09:49:30.711] | run() for Future ('MultisessionFuture') ... done
> b %<-% {
+ "a"
+ }
Warning in getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, :
R option 'future.globals.resolve' may only be used for troubleshooting. It must not be used in production since it changes how futures are evaluated and there is a great risk that the results cannot be reproduced elsewhere: 'TRUE'
[09:49:30.713] | getGlobalsAndPackages() ...
[09:49:30.742] | : Searching for globals ...
[09:49:30.745] | : . globals found: [1] '{'
[09:49:30.745] | : Searching for globals ... DONE
[09:49:30.774] | : Resolving globals: TRUE
[09:49:30.775] | : Resolving any globals that are futures ...
[09:49:30.775] | : . globals: [1] '{'
[09:49:30.776] | : Resolving any globals that are futures ... DONE
[09:49:30.776] | : Search for packages associated with the globals ...
[09:49:30.777] | : . Packages associated with globals: [1] 'base'
[09:49:30.806] | : . Packages: [1] 'base'
[09:49:30.807] | : Search for packages associated with the globals ... DONE
[09:49:30.807] | : Packages after dropping 'base': [0]
[09:49:30.808] | : globals: [0]
[09:49:30.808] | : packages: [0]
[09:49:30.809] | getGlobalsAndPackages() ... done
[09:49:30.837] | run() for Future ('Future') ...
[09:49:30.837] | : state: 'created'
[09:49:30.838] | : plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:30.838] | : plan(<tweaked>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:30.839] | : Using MultisessionFutureBackend ...
[09:49:30.840] | : . Launching futures ...
[09:49:30.863] | : . | launchFuture() for ClusterFutureBackend ...
[09:49:30.864] | : . | : Workers: [n=2]
[09:49:30.865] | : . | : Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R Under development (unstable) (2025-04-26 r88181), platform x86_64-pc-linux-gnu)
[09:49:30.935] | : . | : FutureRegistry: 'workers-d64086e51cfa4a946a85ae7277b86087'
[09:49:30.935] | : . | : requestWorker() ...
[09:49:30.936] | : . | : . requestNode() ...
[09:49:30.936] | : . | : . | Number of workers: 2
[09:49:30.937] | : . | : . | Polling for a free worker ...
[09:49:30.937] | : . | : . | : FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ...
[09:49:30.965] | : . | : . | : . Listing all futures
[09:49:30.965] | : . | : . | : . Number of registered futures: 1
[09:49:30.966] | : . | : . | : FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ... done
[09:49:30.966] | : . | : . | : Total time: 0
[09:49:30.967] | : . | : . | Polling for a free worker ... done
[09:49:30.967] | : . | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ...
[09:49:30.968] | : . | : . | : Listing all futures
[09:49:30.968] | : . | : . | : Number of registered futures: 1
[09:49:30.996] | : . | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ... done
[09:49:30.997] | : . | : . | Index of first available worker: 2
[09:49:30.997] | : . | : . | Validate that the worker is functional ...
[09:49:32.187] | : . | : . | : Worker is functional
[09:49:32.187] | : . | : . | requestNode() ... done
[09:49:32.188] | : . | : . | cluster node index: 2
[09:49:32.188] | : . | : . requestWorker() ... done
[09:49:32.189] | : . | : . eraseGlobalEnvironment() ...
[09:49:32.205] | : . | : . eraseGlobalEnvironment() ... done
[09:49:32.205] | : . | : . launchFuture() ...
[09:49:32.206] | : . | : . | cluster node index: 2
[09:49:32.206] | : . | : . | getFutureData() ...
[09:49:32.207] | : . | : . | : getFutureCore() ...
[09:49:32.207] | : . | : . | : . Packages needed by the future expression (n = 0): <none>
[09:49:32.208] | : . | : . | : getFutureCore() ... done
[09:49:32.208] | : . | : . | : getFutureCapture() ...
[09:49:32.229] | : . | : . | : getFutureCapture() ... done
[09:49:32.229] | : . | : . | : getFutureContext() ...
[09:49:32.230] | : . | : . | : . plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:32.230] | : . | : . | : . | Getting stack without first strategy: [n=0]
[09:49:32.231] | : . | : . | : . plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:32.232] | : . | : . | : . Packages needed by future strategies (n = 0): <none>
[09:49:32.232] | : . | : . | : getFutureContext() ... done
[09:49:32.253] | : . | : . | getFutureData() ... done
[09:49:32.257] | : . | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'add', earlySignal = 0) ...
[09:49:32.338] | : . | : . | : Appended future to position #2
[09:49:32.359] | : . | : . | : Number of registered futures: 2
[09:49:32.359] | : . | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'add', earlySignal = 0) ... done
[09:49:32.360] | : . | : . launchFuture() ... done
[09:49:32.360] | : . | : . MultisessionFuture started
[09:49:32.361] | : . | : launchFuture() for ClusterFutureBackend ... done
[09:49:32.361] | : . | Launching futures ... done
[09:49:32.362] | : . | Future launched: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future'
[09:49:32.362] | : . Using MultisessionFutureBackend ... done
[09:49:32.383] | : run() for Future ('MultisessionFuture') ... done
> message(sprintf("b = %s\n", sQuote(b)))
[09:49:32.386] | : result() for ClusterFuture ...
[09:49:32.408] | : . assertValidConnection() ...
[09:49:32.408] | : . | cluster node index: 2
[09:49:32.422] | : . assertValidConnection() ... done
[09:49:32.424] | : . receiveMessageFromWorker() for ClusterFuture ...
[09:49:32.425] | : . | cluster node index: 2
[09:49:33.465] | : . | [1] TRUE
[09:49:33.466] | : . | received data:
[09:49:33.467] | : . | List of 5
[09:49:33.467] | : . | $ type : chr "VALUE"
[09:49:33.467] | : . | $ value :List of 13
[09:49:33.467] | : . | ..$ value : chr "a"
[09:49:33.467] | : . | ..$ visible : logi TRUE
[09:49:33.467] | : . | ..$ stdout : chr ""
[09:49:33.467] | : . | ..$ conditions : list()
[09:49:33.467] | : . | ..$ rng : logi FALSE
[09:49:33.467] | : . | ..$ misuseGlobalEnv : NULL
[09:49:33.467] | : . | ..$ misuseConnections:List of 3
[09:49:33.467] | : . | .. ..$ added : NULL
[09:49:33.467] | : . | .. ..$ removed : NULL
[09:49:33.467] | : . | .. ..$ replaced: NULL
[09:49:33.467] | : . | ..$ misuseDevices : NULL
[09:49:33.467] | : . | ..$ started : POSIXct[1:1], format: "2025-04-29 09:49:32"
[09:49:33.467] | : . | ..$ finished : POSIXct[1:1], format: "2025-04-29 09:49:33"
[09:49:33.467] | : . | ..$ session_uuid : chr "fa97d1ab01d298c98e186186ba84a326"
[09:49:33.467] | : . | .. ..- attr(*, "source")=List of 5
[09:49:33.467] | : . | .. .. ..$ host : Named chr "gannet.stats.ox.ac.uk"
[09:49:33.467] | : . | .. .. .. ..- attr(*, "names")= chr "HOST"
[09:49:33.467] | : . | .. .. ..$ info : Named chr [1:8] "Linux" "6.13.5-100.fc40.x86_64" "#1 SMP PREEMPT_DYNAMIC Thu Feb 27 15:10:07 UTC 2025" "gannet.stats.ox.ac.uk" ...
[09:49:33.467] | : . | .. .. .. ..- attr(*, "names")= chr [1:8] "sysname" "release" "version" "nodename" ...
[09:49:33.467] | : . | .. .. ..$ pid : int 807350
[09:49:33.467] | : . | .. .. ..$ time : POSIXct[1:1], format: "2025-04-29 09:49:32"
[09:49:33.467] | : . | .. .. ..$ random: int 2147483647
[09:49:33.467] | : . | ..$ r_info :List of 4
[09:49:33.467] | : . | .. ..$ version :Classes 'R_system_version', 'package_version', 'numeric_version' hidden list of 1
[09:49:33.467] | : . | .. .. ..$ : int [1:3] 4 6 0
[09:49:33.467] | : . | .. ..$ os : chr "unix"
[09:49:33.467] | : . | .. ..$ os_name : chr "Linux"
[09:49:33.467] | : . | .. ..$ captures_utf8: logi TRUE
[09:49:33.467] | : . | ..$ version : chr "1.8"
[09:49:33.467] | : . | ..- attr(*, "class")= chr "FutureResult"
[09:49:33.467] | : . | $ success: logi TRUE
[09:49:33.467] | : . | $ time : 'proc_time' Named num [1:5] 0.198 0.006 1.157 0 0
[09:49:33.467] | : . | ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ...
[09:49:33.467] | : . | $ tag : NULL
[09:49:33.777] | : . | Received FutureResult
[09:49:33.778] | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'remove', earlySignal = 0) ...
[09:49:33.778] | : . | : Removed future from position #2
[09:49:33.795] | : . | : Number of registered futures: 1
[09:49:33.796] | : . | FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'remove', earlySignal = 0) ... done
[09:49:33.796] | : . | Erased future from future backend
[09:49:33.797] | : . | result() for ClusterFuture ...
[09:49:33.798] | : . | : result already collected: FutureResult
[09:49:33.815] | : . | result() for ClusterFuture ... done
[09:49:33.815] | : . receiveMessageFromWorker() for ClusterFuture ... done
[09:49:33.816] | : result() for ClusterFuture ... done
[09:49:33.816] | : result() for ClusterFuture ...
[09:49:33.817] | : . result already collected: FutureResult
[09:49:33.817] | : result() for ClusterFuture ... done
b = 'a'
> y %<-% {
+ env[[b]]
+ }
Warning in getGlobalsAndPackages(expr, envir = envir, tweak = tweakExpression, :
R option 'future.globals.resolve' may only be used for troubleshooting. It must not be used in production since it changes how futures are evaluated and there is a great risk that the results cannot be reproduced elsewhere: 'TRUE'
[09:49:33.836] | : getGlobalsAndPackages() ...
[09:49:33.836] | : . Searching for globals ...
[09:49:33.905] | : . | globals found: [4] '{', '[[', 'env', 'b'
[09:49:33.905] | : . Searching for globals ... DONE
[09:49:33.906] | : . Resolving globals: TRUE
[09:49:33.906] | : . Resolving any globals that are futures ...
[09:49:33.927] | : . | globals: [4] '{', '[[', 'env', 'b'
[09:49:33.927] | : . Resolving any globals that are futures ... DONE
[09:49:33.928] | : . Search for packages associated with the globals ...
[09:49:33.929] | : . | Packages associated with globals: [1] 'base'
[09:49:33.930] | : . | Packages: [1] 'base'
[09:49:33.930] | : . Search for packages associated with the globals ... DONE
[09:49:33.947] | : . Resolving futures part of globals (recursively) ...
[09:49:33.949] | : . | resolve() on FutureGlobals ...resolve() on Globals ...resolve() on list ...
[09:49:33.950] | : . | : recursive: 99
[09:49:33.971] | : . | : length: 2
[09:49:33.972] | : . | : elements: 'env', 'b'
[09:49:33.972] | : . | : 'obj' is environment
[09:49:33.973] | : . | : resolve(obj, ...) ...
[09:49:33.974] | : . | : . resolve() on environment ...
[09:49:33.995] | : . | : . | recursive: 98
[09:49:33.996] | : . | : . | elements: [1] '.future_a', 'a'
[09:49:33.998] | : . | : . | isFutureResolved() ...
[09:49:34.015] | : . | : . | : assertValidConnection() ...
[09:49:34.016] | : . | : . | : . cluster node index: 1
[09:49:34.017] | : . | : . | : assertValidConnection() ... done
[09:49:34.018] | : . | : . | : receiveMessageFromWorker() for ClusterFuture ...
[09:49:34.035] | : . | : . | : . cluster node index: 1
[09:49:34.036] | : . | : . | : . [1] TRUE
[09:49:34.037] | : . | : . | : . received data:
[09:49:34.037] | : . | : . | : . List of 5
[09:49:34.037] | : . | : . | : . $ type : chr "VALUE"
[09:49:34.037] | : . | : . | : . $ value :List of 13
[09:49:34.037] | : . | : . | : . ..$ value : num 5
[09:49:34.037] | : . | : . | : . ..$ visible : logi TRUE
[09:49:34.037] | : . | : . | : . ..$ stdout : chr ""
[09:49:34.037] | : . | : . | : . ..$ conditions : list()
[09:49:34.037] | : . | : . | : . ..$ rng : logi FALSE
[09:49:34.037] | : . | : . | : . ..$ misuseGlobalEnv : NULL
[09:49:34.037] | : . | : . | : . ..$ misuseConnections:List of 3
[09:49:34.037] | : . | : . | : . .. ..$ added : NULL
[09:49:34.037] | : . | : . | : . .. ..$ removed : NULL
[09:49:34.037] | : . | : . | : . .. ..$ replaced: NULL
[09:49:34.037] | : . | : . | : . ..$ misuseDevices : NULL
[09:49:34.037] | : . | : . | : . ..$ started : POSIXct[1:1], format: "2025-04-29 09:49:30"
[09:49:34.037] | : . | : . | : . ..$ finished : POSIXct[1:1], format: "2025-04-29 09:49:31"
[09:49:34.037] | : . | : . | : . ..$ session_uuid : chr "96e82a246183bbd4e205b1aca014723c"
[09:49:34.037] | : . | : . | : . .. ..- attr(*, "source")=List of 5
[09:49:34.037] | : . | : . | : . .. .. ..$ host : Named chr "gannet.stats.ox.ac.uk"
[09:49:34.037] | : . | : . | : . .. .. .. ..- attr(*, "names")= chr "HOST"
[09:49:34.037] | : . | : . | : . .. .. ..$ info : Named chr [1:8] "Linux" "6.13.5-100.fc40.x86_64" "#1 SMP PREEMPT_DYNAMIC Thu Feb 27 15:10:07 UTC 2025" "gannet.stats.ox.ac.uk" ...
[09:49:34.037] | : . | : . | : . .. .. .. ..- attr(*, "names")= chr [1:8] "sysname" "release" "version" "nodename" ...
[09:49:34.037] | : . | : . | : . .. .. ..$ pid : int 807349
[09:49:34.037] | : . | : . | : . .. .. ..$ time : POSIXct[1:1], format: "2025-04-29 09:49:30"
[09:49:34.037] | : . | : . | : . .. .. ..$ random: int 2147483647
[09:49:34.037] | : . | : . | : . ..$ r_info :List of 4
[09:49:34.037] | : . | : . | : . .. ..$ version :Classes 'R_system_version', 'package_version', 'numeric_version' hidden list of 1
[09:49:34.037] | : . | : . | : . .. .. ..$ : int [1:3] 4 6 0
[09:49:34.037] | : . | : . | : . .. ..$ os : chr "unix"
[09:49:34.037] | : . | : . | : . .. ..$ os_name : chr "Linux"
[09:49:34.037] | : . | : . | : . .. ..$ captures_utf8: logi TRUE
[09:49:34.037] | : . | : . | : . ..$ version : chr "1.8"
[09:49:34.037] | : . | : . | : . ..- attr(*, "class")= chr "FutureResult"
[09:49:34.037] | : . | : . | : . $ success: logi TRUE
[09:49:34.037] | : . | : . | : . $ time : 'proc_time' Named num [1:5] 0.199 0.008 1.194 0 0
[09:49:34.037] | : . | : . | : . ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ...
[09:49:34.037] | : . | : . | : . $ tag : NULL
[09:49:34.264] | : . | : . | : . Received FutureResult
[09:49:34.264] | : . | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'remove', earlySignal = 0) ...
[09:49:34.265] | : . | : . | : . | Removed future from position #1
[09:49:34.265] | : . | : . | : . | Number of registered futures: 0
[09:49:34.278] | : . | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'remove', earlySignal = 0) ... done
[09:49:34.278] | : . | : . | : . Erased future from future backend
[09:49:34.279] | : . | : . | : . result() for ClusterFuture ...
[09:49:34.279] | : . | : . | : . | result already collected: FutureResult
[09:49:34.279] | : . | : . | : . result() for ClusterFuture ... done
[09:49:34.280] | : . | : . | : receiveMessageFromWorker() for ClusterFuture ... done
[09:49:34.280] | : . | : . | isFutureResolved() ... done
[09:49:34.281] | : . | : . | Future #1
[09:49:34.281] | : . | : . | result() for ClusterFuture ...
[09:49:34.294] | : . | : . | : result already collected: FutureResult
[09:49:34.294] | : . | : . | result() for ClusterFuture ... done
[09:49:34.295] | : . | : . | result() for ClusterFuture ...
[09:49:34.295] | : . | : . | : result already collected: FutureResult
[09:49:34.296] | : . | : . | result() for ClusterFuture ... done
[09:49:34.301] | : . | : . | A MultisessionFuture was resolved
[09:49:34.313] | : . | : . | length: 0 (resolved future 1)
[09:49:34.313] | : . | : . resolve() on environment ... done
[09:49:34.314] | : . | : resolve(obj, ...) ... done
[09:49:34.315] | : . | : length: 1 (resolved future 1)
[09:49:34.316] | : . | : 'obj' is atomic
[09:49:34.333] | : . | : length: 0 (resolved future 2)
[09:49:34.333] | : . | resolve() on FutureGlobals ... doneresolve() on Globals ... doneresolve() on list ... done
[09:49:34.334] | : . | globals: [2] 'env', 'b'
[09:49:34.334] | : . Resolving futures part of globals (recursively) ... DONE
[09:49:34.335] | : . Packages after dropping 'base': [0]
[09:49:34.335] | : . globals: [2] 'env', 'b'
[09:49:34.336] | : . packages: [0]
[09:49:34.336] | : getGlobalsAndPackages() ... done
[09:49:34.353] | : run() for Future ('Future') ...
[09:49:34.353] | : . state: 'created'
[09:49:34.354] | : . plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:34.354] | : . plan(<tweaked>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:34.355] | : . Using MultisessionFutureBackend ...
[09:49:34.355] | : . | Launching futures ...
[09:49:34.368] | : . | : launchFuture() for ClusterFutureBackend ...
[09:49:34.368] | : . | : . Workers: [n=2]
[09:49:34.369] | : . | : . Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R Under development (unstable) (2025-04-26 r88181), platform x86_64-pc-linux-gnu)
[09:49:34.387] | : . | : . FutureRegistry: 'workers-d64086e51cfa4a946a85ae7277b86087'
[09:49:34.404] | : . | : . requestWorker() ...
[09:49:34.404] | : . | : . | requestNode() ...
[09:49:34.405] | : . | : . | : Number of workers: 2
[09:49:34.405] | : . | : . | : Polling for a free worker ...
[09:49:34.405] | : . | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ...
[09:49:34.406] | : . | : . | : . | Listing all futures
[09:49:34.406] | : . | : . | : . | Number of registered futures: 0
[09:49:34.407] | : . | : . | : . FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ... done
[09:49:34.407] | : . | : . | : . Total time: 0
[09:49:34.419] | : . | : . | : Polling for a free worker ... done
[09:49:34.420] | : . | : . | : FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ...
[09:49:34.420] | : . | : . | : . Listing all futures
[09:49:34.421] | : . | : . | : . Number of registered futures: 0
[09:49:34.421] | : . | : . | : FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'list', earlySignal = 0) ... done
[09:49:34.422] | : . | : . | : Index of first available worker: 1
[09:49:34.422] | : . | : . | : Validate that the worker is functional ...
[09:49:34.927] | : . | : . | : . Worker is functional
[09:49:34.927] | : . | : . | : requestNode() ... done
[09:49:34.928] | : . | : . | : cluster node index: 1
[09:49:34.928] | : . | : . | requestWorker() ... done
[09:49:34.928] | : . | : . | eraseGlobalEnvironment() ...
[09:49:34.938] | : . | : . | eraseGlobalEnvironment() ... done
[09:49:34.938] | : . | : . | launchFuture() ...
[09:49:34.946] | : . | : . | : cluster node index: 1
[09:49:34.947] | : . | : . | : getFutureData() ...
[09:49:34.947] | : . | : . | : . getFutureCore() ...
[09:49:34.947] | : . | : . | : . | Packages needed by the future expression (n = 0): <none>
[09:49:34.948] | : . | : . | : . getFutureCore() ... done
[09:49:34.948] | : . | : . | : . getFutureCapture() ...
[09:49:34.949] | : . | : . | : . getFutureCapture() ... done
[09:49:34.949] | : . | : . | : . getFutureContext() ...
[09:49:34.966] | : . | : . | : . | plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ...
[09:49:34.967] | : . | : . | : . | : Getting stack without first strategy: [n=0]
[09:49:34.967] | : . | : . | : . | plan(<character>, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done
[09:49:34.968] | : . | : . | : . | Packages needed by future strategies (n = 0): <none>
[09:49:34.968] | : . | : . | : . getFutureContext() ... done
[09:49:34.969] | : . | : . | : getFutureData() ... done
[09:49:35.113] | : . | : . | : FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'add', earlySignal = 0) ...
[09:49:35.114] | : . | : . | : . Appended future to position #1
[09:49:35.114] | : . | : . | : . Number of registered futures: 1
[09:49:35.115] | : . | : . | : FutureRegistry('workers-d64086e51cfa4a946a85ae7277b86087', action = 'add', earlySignal = 0) ... done
[09:49:35.128] | : . | : . | launchFuture() ... done
[09:49:35.128] | : . | : . | MultisessionFuture started
[09:49:35.129] | : . | : . launchFuture() for ClusterFutureBackend ... done
[09:49:35.129] | : . | : Launching futures ... done
[09:49:35.129] | : . | : Future launched: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future'
[09:49:35.130] | : . | Using MultisessionFutureBackend ... done
[09:49:35.130] | : . run() for Future ('MultisessionFuture') ... done
> message(sprintf("y = %s\n", y))
[09:49:35.131] | : . result() for ClusterFuture ...
[09:49:35.144] | : . | assertValidConnection() ...
[09:49:35.145] | : . | : cluster node index: 1
[09:49:35.146] | : . | assertValidConnection() ... done
[09:49:35.146] | : . | receiveMessageFromWorker() for ClusterFuture ...
[09:49:35.147] | : . | : cluster node index: 1
[09:49:35.238] | : . | : [1] TRUE
Error in stop_if_not(isTRUE(ack)) : reached elapsed time limit
Calls: <Anonymous> -> source -> withVisible -> eval -> eval -> source -> withVisible -> eval -> eval -> message -> sprintf -> local -> eval.parent -> eval -> eval -> eval -> eval -> value -> value.Future -> result -> result.ClusterFuture -> receiveMessageFromWorker -> stop_if_not
[09:49:35.239] | : . | receiveMessageFromWorker() for ClusterFuture ... done
[09:49:35.239] | : . result() for ClusterFuture ... done
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’ [4s/18s]
Running ‘test-bquote.R’
Running ‘test-capture_journals.R’ [3s/10s]
Running ‘test-cluster,worker-termination.R’
Running ‘test-cluster-connection-clashes.R’ [3s/16s]
Running ‘test-cluster-missing-future-pkg.R’
Running ‘test-demo-fibonacci.R’
Running ‘test-demo-mandelbrot.R’ [6s/15s]
Running ‘test-dotdotdot.R’ [6s/20s]
Running ‘test-early-signaling.R’
Running ‘test-future,labels.R’ [4s/12s]
Running ‘test-future,optsenvvars.R’
Running ‘test-future.R’
Running ‘test-futureAssign.R’ [7s/15s]
Running ‘test-futureAssign_OP.R’ [11s/27s]
Running ‘test-futureAssign_OP_with_environment.R’
Running ‘test-futureAssign_OP_with_listenv.R’
Running ‘test-futureCall.R’ [5s/14s]
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/57s]
Running ‘test-globals,NSE.R’ [3s/11s]
Running ‘test-globals,S4methods.R’ [4s/11s]
Running ‘test-globals,formulas.R’ [12s/27s]
Running ‘test-globals,locals.R’
Running ‘test-globals,manual.R’ [9s/19s]
Running ‘test-globals,resolve.R’
Running ‘test-globals,subassignment.R’ [10s/17s]
Running ‘test-globals,toolarge.R’
Running ‘test-globals,tricky.R’ [28s/43s]
Running ‘test-globals,tricky_recursive.R’
Running ‘test-globalsOf,tweaks.R’
Running ‘test-immediateCondition.R’
Running ‘test-interrupt-sets.R’
Running ‘test-interrupt.R’
Running ‘test-interrupts-from-worker-itself.R’
Running ‘test-invalid-owner.R’
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/11s]
Running ‘test-nested_futures,mc.cores.R’ [7s/26s]
Running ‘test-nested_futures.R’ [6s/15s]
Running ‘test-non-exportable,connections.R’
Running ‘test-objectSize.R’
Running ‘test-plan.R’ [5s/24s]
Running ‘test-relaying,muffle.R’
Running ‘test-relaying,split.R’
Running ‘test-relaying.R’
Running ‘test-requestCore.R’
Running ‘test-requestNode.R’
Running ‘test-reserved-keyword-functions.R’
Running ‘test-reset.R’
Running ‘test-resolve.R’ [13s/25s]
Running ‘test-resolved-non-blocking-test.R’
Running ‘test-rng.R’ [46s/51s]
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’ [9s/11s]
Running ‘test-timeouts.R’
Running ‘test-tweak.R’
Running ‘test-utils.R’ [16s/17s]
Running ‘test-uuid.R’
Running ‘test-value.R’ [21s/30s]
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)
[16:32:45.835] Option 'future.startup.script': TRUE
[16:32:45.839] Future startup scripts considered: '.future.R', '~/.future.R'
[16:32:45.839] 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/4s]
Running ‘test-cluster-missing-future-pkg.R’ [1s/3s]
Running ‘test-demo-fibonacci.R’ [2s/2s]
Running ‘test-demo-mandelbrot.R’ [3s/5s]
Running ‘test-dotdotdot.R’ [4s/6s]
Running ‘test-early-signaling.R’ [1s/2s]
Running ‘test-future,labels.R’ [3s/4s]
Running ‘test-future,optsenvvars.R’ [1s/2s]
Running ‘test-future.R’ [1s/1s]
Running ‘test-futureAssign.R’ [4s/6s]
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’ [4s/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/27s]
Running ‘test-globals,NSE.R’ [2s/4s]
Running ‘test-globals,S4methods.R’ [2s/4s]
Running ‘test-globals,formulas.R’ [7s/12s]
Running ‘test-globals,locals.R’ [2s/5s]
Running ‘test-globals,manual.R’ [5s/11s]
Running ‘test-globals,resolve.R’ [2s/3s]
Running ‘test-globals,subassignment.R’ [6s/10s]
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/6s]
Running ‘test-nested_futures,mc.cores.R’ [4s/16s]
Running ‘test-nested_futures.R’ [3s/10s]
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’ [2s/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/5s]
Running ‘test-resolve.R’ [9s/21s]
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/2s]
Running ‘test-startup-parseCmdArgs.R’ [1s/1s]
Running ‘test-stdout.R’ [5s/8s]
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/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-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:08:16.883] Option 'future.startup.script': TRUE
[00:08:16.883] Future startup scripts considered: '.future.R', '~/.future.R'
[00:08:16.884] 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