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