R version 4.5.0 RC (2025-04-04 r88126 ucrt) -- "How About a Twenty-Six" Copyright (C) 2025 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > ## 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 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/001.load.R' 02/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/002.record-state.R' 03/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/030.imports.R' 04/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/050.utils.R' 05/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/090.context.R' 06/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/090.options.R' 07/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/091.envvars.R' 08/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/099.future-setup.R' 09/09 prologue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_prologue/995.detrius-connections.R' Sourcing 9 prologue scripts ... done Running test script: 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/test-globals,resolve.R' > library(future) [08:48:10.546] Option 'future.startup.script': TRUE [08:48:10.547] Future startup scripts considered: '.future.R', '~/.future.R' [08:48:10.548] Future startup scripts found: > 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) [08:48:10.554] plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:10.555] | plan(): plan_set(<1 strategies>, skip = FALSE, cleanup = NA, init = TRUE) ... [08:48:10.556] | : all.equal() for FutureStrategyList ... [08:48:10.556] | : . New stack: [08:48:10.556] | : . List of 1 [08:48:10.556] | : . $ :function (..., workers = 2L, envir = parent.frame()) [08:48:10.556] | : . ..- attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ... [08:48:10.556] | : . ..- attr(*, "init")= logi TRUE [08:48:10.556] | : . ..- attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...) [08:48:10.556] | : . .. ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.556] | : . ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.556] | : . ..- attr(*, "untweakable")= chr "persistent" [08:48:10.556] | : . ..- attr(*, "tweaks")=List of 1 [08:48:10.556] | : . .. ..$ workers: int 2 [08:48:10.556] | : . ..- attr(*, "call")= language plan(multisession, workers = 2L) [08:48:10.556] | : . - attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [08:48:10.564] | : . Old stack: [08:48:10.564] | : . List of 1 [08:48:10.564] | : . $ :function (..., gc = FALSE, earlySignal = FALSE, envir = parent.frame()) [08:48:10.564] | : . ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" [08:48:10.564] | : . ..- attr(*, "factory")=function (..., maxSizeOfObjects = +Inf) [08:48:10.564] | : . .. ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ... [08:48:10.564] | : . ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ... [08:48:10.564] | : . ..- attr(*, "call")= language plan(sequential) [08:48:10.564] | : . - attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [08:48:10.568] | : . Not identical [08:48:10.568] | : . all.equal() for future ... [08:48:10.568] | : . | List of 2 [08:48:10.568] | : . | $ target :function (..., workers = 2L, envir = parent.frame()) [08:48:10.568] | : . | ..- attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ... [08:48:10.568] | : . | ..- attr(*, "init")= logi TRUE [08:48:10.568] | : . | ..- attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...) [08:48:10.568] | : . | .. ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.568] | : . | ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.568] | : . | ..- attr(*, "untweakable")= chr "persistent" [08:48:10.568] | : . | ..- attr(*, "tweaks")=List of 1 [08:48:10.568] | : . | .. ..$ workers: int 2 [08:48:10.568] | : . | ..- attr(*, "call")= language plan(multisession, workers = 2L) [08:48:10.568] | : . | $ current:function (..., gc = FALSE, earlySignal = FALSE, envir = parent.frame()) [08:48:10.568] | : . | ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" [08:48:10.568] | : . | ..- attr(*, "factory")=function (..., maxSizeOfObjects = +Inf) [08:48:10.568] | : . | .. ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ... [08:48:10.568] | : . | ..- attr(*, "tweakable")= chr [1:5] "maxSizeOfObjects" "earlySignal" "gc" "interrupts" ... [08:48:10.568] | : . | ..- attr(*, "call")= language plan(sequential) [08:48:10.579] | : . | Formals differ [08:48:10.579] | : . all.equal() for future ... done [08:48:10.579] | : . Future strategies differ at level 1 [08:48:10.579] | : all.equal() for FutureStrategyList ... done [08:48:10.580] | : plan(): Setting new future strategy stack: [08:48:10.580] | : List of future strategies: [08:48:10.580] | : 1. multisession: [08:48:10.580] | : - args: function (..., workers = 2L, envir = parent.frame()) [08:48:10.580] | : - tweaked: TRUE [08:48:10.580] | : - call: plan(multisession, workers = 2L) [08:48:10.580] | : List of 1 [08:48:10.580] | : $ :function (..., workers = 2L, envir = parent.frame()) [08:48:10.580] | : ..- attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ... [08:48:10.580] | : ..- attr(*, "init")= logi TRUE [08:48:10.580] | : ..- attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...) [08:48:10.580] | : .. ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.580] | : ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.580] | : ..- attr(*, "untweakable")= chr "persistent" [08:48:10.580] | : ..- attr(*, "tweaks")=List of 1 [08:48:10.580] | : .. ..$ workers: int 2 [08:48:10.580] | : ..- attr(*, "call")= language plan(multisession, workers = 2L) [08:48:10.580] | : - attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [08:48:10.585] | : plan(): plan_cleanup('sequential', 'uniprocess', 'future', 'function', cleanup = NA) ... [08:48:10.585] | : . plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:10.585] | : . | Getting current ("next") strategy: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [08:48:10.585] | : . plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:10.586] | : . Legacy shutdown of cluster workers ... [08:48:10.586] | : . | Stopping existing cluster ... [08:48:10.586] | : . | : No pre-existing cluster. Skipping [08:48:10.587] | : . | Stopping existing cluster ... done [08:48:10.587] | : . Legacy shutdown of cluster workers ... done [08:48:10.587] | : plan(): plan_cleanup('sequential', 'uniprocess', 'future', 'function', cleanup = NA) ... done [08:48:10.587] | : plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... [08:48:10.587] | : . function (..., workers = 2L, envir = parent.frame()) [08:48:10.587] | : . - attr(*, "class")= chr [1:6] "tweaked" "multisession" "cluster" "multiprocess" ... [08:48:10.587] | : . - attr(*, "init")= logi TRUE [08:48:10.587] | : . - attr(*, "factory")=function (workers = availableCores(), interrupts = TRUE, ...) [08:48:10.587] | : . ..- attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.587] | : . - attr(*, "tweakable")= chr [1:10] "workers" "interrupts" "gc" "earlySignal" ... [08:48:10.587] | : . - attr(*, "untweakable")= chr "persistent" [08:48:10.587] | : . - attr(*, "tweaks")=List of 1 [08:48:10.587] | : . ..$ workers: int 2 [08:48:10.587] | : . - attr(*, "call")= language plan(multisession, workers = 2L) [08:48:10.591] | : . init: TRUE [08:48:10.591] | : . makeFutureBackend() ... [08:48:10.591] | : . | Backend function: <'NULL'> [08:48:10.592] | : . | ClusterFutureBackend(..., persistent = FALSE, gc = TRUE, earlySignal = TRUE) ... [08:48:10.592] | : . | : workers: 2 [08:48:10.592] | : . | : getCluster() ... [08:48:10.592] | : . | : getCluster() ... done [08:48:10.592] | : . | : Stopping existing cluster ... [08:48:10.593] | : . | : . No pre-existing cluster. Skipping [08:48:10.593] | : . | : Stopping existing cluster ... done [08:48:10.593] | : . | : Starting new cluster ... [08:48:10.593] | : . | : . makeCluster(workers, ...) ... [08:48:10.593] | : . | : . | Arguments: [08:48:10.593] | : . | : . | List of 1 [08:48:10.593] | : . | : . | $ : int 2 [08:48:11.480] | : . | : . | Generated cluster UUID [08:48:11.480] | : . | : . | Cluster UUID: '204da929938858d2b9ec4b5fa1871fc8' [08:48:11.481] | : . | : . | Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R version 4.5.0 RC (2025-04-04 r88126 ucrt), platform x86_64-w64-mingw32) [08:48:11.485] | : . | : . makeCluster(workers, ...) ... done [08:48:11.486] | : . | : . Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R version 4.5.0 RC (2025-04-04 r88126 ucrt), platform x86_64-w64-mingw32) [08:48:11.488] | : . | : Starting new cluster ... done [08:48:11.489] | : . | : Number of workers: 2 [08:48:11.489] | : . | : Workers UUID: '204da929938858d2b9ec4b5fa1871fc8' [08:48:11.490] | : . | ClusterFutureBackend(..., persistent = FALSE, gc = TRUE, earlySignal = TRUE) ... done [08:48:11.490] | : . | Backend: <'MultisessionFutureBackend', 'ClusterFutureBackend', 'MultiprocessFutureBackend', 'FutureBackend', 'environment'> [08:48:11.490] | : . makeFutureBackend() ... done [08:48:11.491] | : plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... done [08:48:11.491] | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:11.491] | : . Getting current ("next") strategy: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [08:48:11.492] | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:11.492] | : plan(): nbrOfWorkers() = 2 [08:48:11.493] | plan(): plan_set(<1 strategies>, skip = FALSE, cleanup = NA, init = TRUE) ... done [08:48:11.493] plan(, .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' [08:48:11.497] getGlobalsAndPackages() ... [08:48:11.497] | Searching for globals ... [08:48:11.502] | : globals found: [1] '{' [08:48:11.503] | Searching for globals ... DONE [08:48:11.503] | Resolving globals: TRUE [08:48:11.503] | Resolving any globals that are futures ... [08:48:11.504] | : globals: [1] '{' [08:48:11.504] | Resolving any globals that are futures ... DONE [08:48:11.504] | Search for packages associated with the globals ... [08:48:11.505] | : Packages associated with globals: [1] 'base' [08:48:11.506] | : Packages: [1] 'base' [08:48:11.506] | Search for packages associated with the globals ... DONE [08:48:11.506] | Packages after dropping 'base': [0] [08:48:11.507] | globals: [0] [08:48:11.507] | packages: [0] [08:48:11.507] getGlobalsAndPackages() ... done [08:48:11.509] run() for Future ('Future') ... [08:48:11.509] | state: 'created' [08:48:11.509] | plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:11.510] | plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:11.510] | Using MultisessionFutureBackend ... [08:48:11.510] | : Launching futures ... [08:48:11.511] | : . launchFuture() for ClusterFutureBackend ... [08:48:11.511] | : . | Workers: [n=2] [08:48:11.512] | : . | Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R version 4.5.0 RC (2025-04-04 r88126 ucrt), platform x86_64-w64-mingw32) [08:48:11.515] | : . | FutureRegistry: 'workers-204da929938858d2b9ec4b5fa1871fc8' [08:48:11.516] | : . | requestWorker() ... [08:48:11.516] | : . | : requestNode() ... [08:48:11.516] | : . | : . Number of workers: 2 [08:48:11.516] | : . | : . Polling for a free worker ... [08:48:11.517] | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:11.517] | : . | : . | : Created empty registry 'workers-204da929938858d2b9ec4b5fa1871fc8' [08:48:11.517] | : . | : . | : Listing all futures [08:48:11.518] | : . | : . | : Number of registered futures: 0 [08:48:11.518] | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:11.518] | : . | : . | Total time: 0 [08:48:11.519] | : . | : . Polling for a free worker ... done [08:48:11.519] | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:11.519] | : . | : . | Listing all futures [08:48:11.519] | : . | : . | Number of registered futures: 0 [08:48:11.520] | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:11.520] | : . | : . Index of first available worker: 1 [08:48:11.520] | : . | : . Validate that the worker is functional ... [08:48:11.698] | : . | : . | Worker is functional [08:48:11.699] | : . | : . requestNode() ... done [08:48:11.699] | : . | : . cluster node index: 1 [08:48:11.699] | : . | : requestWorker() ... done [08:48:11.700] | : . | : eraseGlobalEnvironment() ... [08:48:11.701] | : . | : eraseGlobalEnvironment() ... done [08:48:11.701] | : . | : launchFuture() ... [08:48:11.701] | : . | : . cluster node index: 1 [08:48:11.702] | : . | : . getFutureData() ... [08:48:11.702] | : . | : . | getFutureCore() ... [08:48:11.702] | : . | : . | : Packages needed by the future expression (n = 0): [08:48:11.703] | : . | : . | getFutureCore() ... done [08:48:11.703] | : . | : . | getFutureCapture() ... [08:48:11.703] | : . | : . | getFutureCapture() ... done [08:48:11.704] | : . | : . | getFutureContext() ... [08:48:11.704] | : . | : . | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:11.705] | : . | : . | : . Getting stack without first strategy: [n=0] [08:48:11.705] | : . | : . | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:11.705] | : . | : . | : Packages needed by future strategies (n = 0): [08:48:11.706] | : . | : . | getFutureContext() ... done [08:48:11.706] | : . | : . getFutureData() ... done [08:48:11.707] | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... [08:48:11.708] | : . | : . | Appended future to position #1 [08:48:11.708] | : . | : . | Number of registered futures: 1 [08:48:11.708] | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... done [08:48:11.708] | : . | : launchFuture() ... done [08:48:11.709] | : . | : MultisessionFuture started [08:48:11.709] | : . | launchFuture() for ClusterFutureBackend ... done [08:48:11.709] | : . Launching futures ... done [08:48:11.710] | : . Future launched: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:48:11.710] | : Using MultisessionFutureBackend ... done [08:48:11.710] | 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' [08:48:11.711] | getGlobalsAndPackages() ... [08:48:11.712] | : Searching for globals ... [08:48:11.713] | : . globals found: [1] '{' [08:48:11.714] | : Searching for globals ... DONE [08:48:11.714] | : Resolving globals: TRUE [08:48:11.714] | : Resolving any globals that are futures ... [08:48:11.715] | : . globals: [1] '{' [08:48:11.715] | : Resolving any globals that are futures ... DONE [08:48:11.715] | : Search for packages associated with the globals ... [08:48:11.716] | : . Packages associated with globals: [1] 'base' [08:48:11.716] | : . Packages: [1] 'base' [08:48:11.716] | : Search for packages associated with the globals ... DONE [08:48:11.717] | : Packages after dropping 'base': [0] [08:48:11.717] | : globals: [0] [08:48:11.717] | : packages: [0] [08:48:11.718] | getGlobalsAndPackages() ... done [08:48:11.718] | run() for Future ('Future') ... [08:48:11.718] | : state: 'created' [08:48:11.719] | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:11.719] | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:11.719] | : Using MultisessionFutureBackend ... [08:48:11.720] | : . Launching futures ... [08:48:11.720] | : . | launchFuture() for ClusterFutureBackend ... [08:48:11.720] | : . | : Workers: [n=2] [08:48:11.721] | : . | : Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R version 4.5.0 RC (2025-04-04 r88126 ucrt), platform x86_64-w64-mingw32) [08:48:11.724] | : . | : FutureRegistry: 'workers-204da929938858d2b9ec4b5fa1871fc8' [08:48:11.725] | : . | : requestWorker() ... [08:48:11.725] | : . | : . requestNode() ... [08:48:11.725] | : . | : . | Number of workers: 2 [08:48:11.726] | : . | : . | Polling for a free worker ... [08:48:11.726] | : . | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:11.726] | : . | : . | : . Listing all futures [08:48:11.726] | : . | : . | : . Number of registered futures: 1 [08:48:11.727] | : . | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:11.727] | : . | : . | : Total time: 0 [08:48:11.727] | : . | : . | Polling for a free worker ... done [08:48:11.728] | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:11.728] | : . | : . | : Listing all futures [08:48:11.728] | : . | : . | : Number of registered futures: 1 [08:48:11.729] | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:11.729] | : . | : . | Index of first available worker: 2 [08:48:11.729] | : . | : . | Validate that the worker is functional ... [08:48:11.894] | : . | : . | : Worker is functional [08:48:11.895] | : . | : . | requestNode() ... done [08:48:11.895] | : . | : . | cluster node index: 2 [08:48:11.895] | : . | : . requestWorker() ... done [08:48:11.896] | : . | : . eraseGlobalEnvironment() ... [08:48:11.897] | : . | : . eraseGlobalEnvironment() ... done [08:48:11.897] | : . | : . launchFuture() ... [08:48:11.897] | : . | : . | cluster node index: 2 [08:48:11.898] | : . | : . | getFutureData() ... [08:48:11.898] | : . | : . | : getFutureCore() ... [08:48:11.898] | : . | : . | : . Packages needed by the future expression (n = 0): [08:48:11.899] | : . | : . | : getFutureCore() ... done [08:48:11.899] | : . | : . | : getFutureCapture() ... [08:48:11.899] | : . | : . | : getFutureCapture() ... done [08:48:11.900] | : . | : . | : getFutureContext() ... [08:48:11.900] | : . | : . | : . plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:11.900] | : . | : . | : . | Getting stack without first strategy: [n=0] [08:48:11.901] | : . | : . | : . plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:11.901] | : . | : . | : . Packages needed by future strategies (n = 0): [08:48:11.901] | : . | : . | : getFutureContext() ... done [08:48:11.902] | : . | : . | getFutureData() ... done [08:48:11.903] | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... [08:48:11.908] | : . | : . | : Appended future to position #2 [08:48:11.908] | : . | : . | : Number of registered futures: 2 [08:48:11.909] | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... done [08:48:11.909] | : . | : . launchFuture() ... done [08:48:11.909] | : . | : . MultisessionFuture started [08:48:11.909] | : . | : launchFuture() for ClusterFutureBackend ... done [08:48:11.909] | : . | Launching futures ... done [08:48:11.910] | : . | Future launched: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:48:11.910] | : . Using MultisessionFutureBackend ... done [08:48:11.910] | : run() for Future ('MultisessionFuture') ... done > message(sprintf("b = %s\n", sQuote(b))) [08:48:11.911] | : result() for ClusterFuture ... [08:48:11.912] | : . assertValidConnection() ... [08:48:11.912] | : . | cluster node index: 2 [08:48:11.913] | : . assertValidConnection() ... done [08:48:11.913] | : . receiveMessageFromWorker() for ClusterFuture ... [08:48:11.914] | : . | cluster node index: 2 [08:48:11.985] | : . | [1] TRUE [08:48:11.986] | : . | received data: [08:48:11.986] | : . | List of 5 [08:48:11.986] | : . | $ type : chr "VALUE" [08:48:11.986] | : . | $ value :List of 13 [08:48:11.986] | : . | ..$ value : chr "a" [08:48:11.986] | : . | ..$ visible : logi TRUE [08:48:11.986] | : . | ..$ stdout : chr "" [08:48:11.986] | : . | ..$ conditions : list() [08:48:11.986] | : . | ..$ rng : logi FALSE [08:48:11.986] | : . | ..$ misuseGlobalEnv : NULL [08:48:11.986] | : . | ..$ misuseConnections:List of 3 [08:48:11.986] | : . | .. ..$ added : NULL [08:48:11.986] | : . | .. ..$ removed : NULL [08:48:11.986] | : . | .. ..$ replaced: NULL [08:48:11.986] | : . | ..$ misuseDevices : NULL [08:48:11.986] | : . | ..$ started : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:11.986] | : . | ..$ finished : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:11.986] | : . | ..$ session_uuid : chr "61075209aabb040dc7ee48772525e4ba" [08:48:11.986] | : . | .. ..- attr(*, "source")=List of 5 [08:48:11.986] | : . | .. .. ..$ host : Named chr "CRANWIN3" [08:48:11.986] | : . | .. .. .. ..- attr(*, "names")= chr "COMPUTERNAME" [08:48:11.986] | : . | .. .. ..$ info : Named chr [1:9] "Windows" "Server x64" "build 20348" "CRANWIN3" ... [08:48:11.986] | : . | .. .. .. ..- attr(*, "names")= chr [1:9] "sysname" "release" "version" "nodename" ... [08:48:11.986] | : . | .. .. ..$ pid : int 49856 [08:48:11.986] | : . | .. .. ..$ time : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:11.986] | : . | .. .. ..$ random: int 2147483647 [08:48:11.986] | : . | ..$ r_info :List of 4 [08:48:11.986] | : . | .. ..$ version :Classes 'R_system_version', 'package_version', 'numeric_version' hidden list of 1 [08:48:11.986] | : . | .. .. ..$ : int [1:3] 4 5 0 [08:48:11.986] | : . | .. ..$ os : chr "windows" [08:48:11.986] | : . | .. ..$ os_name : chr "Windows" [08:48:11.986] | : . | .. ..$ captures_utf8: logi TRUE [08:48:11.986] | : . | ..$ version : chr "1.8" [08:48:11.986] | : . | ..- attr(*, "class")= chr "FutureResult" [08:48:11.986] | : . | $ success: logi TRUE [08:48:11.986] | : . | $ time : 'proc_time' Named num [1:5] 0.08 0.01 0.1 NA NA [08:48:11.986] | : . | ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ... [08:48:11.986] | : . | $ tag : NULL [08:48:12.011] | : . | Received FutureResult [08:48:12.012] | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... [08:48:12.012] | : . | : Removed future from position #2 [08:48:12.012] | : . | : Number of registered futures: 1 [08:48:12.013] | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... done [08:48:12.013] | : . | Erased future from future backend [08:48:12.014] | : . | result() for ClusterFuture ... [08:48:12.014] | : . | : result already collected: FutureResult [08:48:12.015] | : . | result() for ClusterFuture ... done [08:48:12.015] | : . receiveMessageFromWorker() for ClusterFuture ... done [08:48:12.015] | : result() for ClusterFuture ... done [08:48:12.016] | : result() for ClusterFuture ... [08:48:12.016] | : . result already collected: FutureResult [08:48:12.016] | : 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' [08:48:12.018] | : getGlobalsAndPackages() ... [08:48:12.018] | : . Searching for globals ... [08:48:12.028] | : . | globals found: [4] '{', '[[', 'env', 'b' [08:48:12.028] | : . Searching for globals ... DONE [08:48:12.029] | : . Resolving globals: TRUE [08:48:12.029] | : . Resolving any globals that are futures ... [08:48:12.029] | : . | globals: [4] '{', '[[', 'env', 'b' [08:48:12.029] | : . Resolving any globals that are futures ... DONE [08:48:12.029] | : . Search for packages associated with the globals ... [08:48:12.030] | : . | Packages associated with globals: [1] 'base' [08:48:12.030] | : . | Packages: [1] 'base' [08:48:12.030] | : . Search for packages associated with the globals ... DONE [08:48:12.031] | : . Resolving futures part of globals (recursively) ... [08:48:12.032] | : . | resolve() on FutureGlobals ...resolve() on Globals ...resolve() on list ... [08:48:12.032] | : . | : recursive: 99 [08:48:12.033] | : . | : length: 2 [08:48:12.033] | : . | : elements: 'env', 'b' [08:48:12.033] | : . | : 'obj' is environment [08:48:12.034] | : . | : resolve(obj, ...) ... [08:48:12.034] | : . | : . resolve() on environment ... [08:48:12.034] | : . | : . | recursive: 98 [08:48:12.035] | : . | : . | elements: [1] '.future_a', 'a' [08:48:12.036] | : . | : . | isFutureResolved() ... [08:48:12.037] | : . | : . | : assertValidConnection() ... [08:48:12.037] | : . | : . | : . cluster node index: 1 [08:48:12.038] | : . | : . | : assertValidConnection() ... done [08:48:12.038] | : . | : . | : receiveMessageFromWorker() for ClusterFuture ... [08:48:12.038] | : . | : . | : . cluster node index: 1 [08:48:12.039] | : . | : . | : . [1] TRUE [08:48:12.039] | : . | : . | : . received data: [08:48:12.040] | : . | : . | : . List of 5 [08:48:12.040] | : . | : . | : . $ type : chr "VALUE" [08:48:12.040] | : . | : . | : . $ value :List of 13 [08:48:12.040] | : . | : . | : . ..$ value : num 5 [08:48:12.040] | : . | : . | : . ..$ visible : logi TRUE [08:48:12.040] | : . | : . | : . ..$ stdout : chr "" [08:48:12.040] | : . | : . | : . ..$ conditions : list() [08:48:12.040] | : . | : . | : . ..$ rng : logi FALSE [08:48:12.040] | : . | : . | : . ..$ misuseGlobalEnv : NULL [08:48:12.040] | : . | : . | : . ..$ misuseConnections:List of 3 [08:48:12.040] | : . | : . | : . .. ..$ added : NULL [08:48:12.040] | : . | : . | : . .. ..$ removed : NULL [08:48:12.040] | : . | : . | : . .. ..$ replaced: NULL [08:48:12.040] | : . | : . | : . ..$ misuseDevices : NULL [08:48:12.040] | : . | : . | : . ..$ started : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:12.040] | : . | : . | : . ..$ finished : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:12.040] | : . | : . | : . ..$ session_uuid : chr "8e340216b4da19c6c650392c71816006" [08:48:12.040] | : . | : . | : . .. ..- attr(*, "source")=List of 5 [08:48:12.040] | : . | : . | : . .. .. ..$ host : Named chr "CRANWIN3" [08:48:12.040] | : . | : . | : . .. .. .. ..- attr(*, "names")= chr "COMPUTERNAME" [08:48:12.040] | : . | : . | : . .. .. ..$ info : Named chr [1:9] "Windows" "Server x64" "build 20348" "CRANWIN3" ... [08:48:12.040] | : . | : . | : . .. .. .. ..- attr(*, "names")= chr [1:9] "sysname" "release" "version" "nodename" ... [08:48:12.040] | : . | : . | : . .. .. ..$ pid : int 23928 [08:48:12.040] | : . | : . | : . .. .. ..$ time : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:12.040] | : . | : . | : . .. .. ..$ random: int 2147483647 [08:48:12.040] | : . | : . | : . ..$ r_info :List of 4 [08:48:12.040] | : . | : . | : . .. ..$ version :Classes 'R_system_version', 'package_version', 'numeric_version' hidden list of 1 [08:48:12.040] | : . | : . | : . .. .. ..$ : int [1:3] 4 5 0 [08:48:12.040] | : . | : . | : . .. ..$ os : chr "windows" [08:48:12.040] | : . | : . | : . .. ..$ os_name : chr "Windows" [08:48:12.040] | : . | : . | : . .. ..$ captures_utf8: logi TRUE [08:48:12.040] | : . | : . | : . ..$ version : chr "1.8" [08:48:12.040] | : . | : . | : . ..- attr(*, "class")= chr "FutureResult" [08:48:12.040] | : . | : . | : . $ success: logi TRUE [08:48:12.040] | : . | : . | : . $ time : 'proc_time' Named num [1:5] 0.06 0 0.07 NA NA [08:48:12.040] | : . | : . | : . ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ... [08:48:12.040] | : . | : . | : . $ tag : NULL [08:48:12.061] | : . | : . | : . Received FutureResult [08:48:12.061] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... [08:48:12.062] | : . | : . | : . | Removed future from position #1 [08:48:12.062] | : . | : . | : . | Number of registered futures: 0 [08:48:12.062] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... done [08:48:12.062] | : . | : . | : . Erased future from future backend [08:48:12.063] | : . | : . | : . result() for ClusterFuture ... [08:48:12.063] | : . | : . | : . | result already collected: FutureResult [08:48:12.063] | : . | : . | : . result() for ClusterFuture ... done [08:48:12.064] | : . | : . | : receiveMessageFromWorker() for ClusterFuture ... done [08:48:12.064] | : . | : . | isFutureResolved() ... done [08:48:12.064] | : . | : . | Future #1 [08:48:12.065] | : . | : . | result() for ClusterFuture ... [08:48:12.065] | : . | : . | : result already collected: FutureResult [08:48:12.065] | : . | : . | result() for ClusterFuture ... done [08:48:12.066] | : . | : . | result() for ClusterFuture ... [08:48:12.066] | : . | : . | : result already collected: FutureResult [08:48:12.066] | : . | : . | result() for ClusterFuture ... done [08:48:12.067] | : . | : . | A MultisessionFuture was resolved [08:48:12.067] | : . | : . | length: 0 (resolved future 1) [08:48:12.068] | : . | : . resolve() on environment ... done [08:48:12.068] | : . | : resolve(obj, ...) ... done [08:48:12.069] | : . | : length: 1 (resolved future 1) [08:48:12.069] | : . | : 'obj' is atomic [08:48:12.070] | : . | : length: 0 (resolved future 2) [08:48:12.070] | : . | resolve() on FutureGlobals ... doneresolve() on Globals ... doneresolve() on list ... done [08:48:12.070] | : . | globals: [2] 'env', 'b' [08:48:12.071] | : . Resolving futures part of globals (recursively) ... DONE [08:48:12.071] | : . Packages after dropping 'base': [0] [08:48:12.071] | : . globals: [2] 'env', 'b' [08:48:12.072] | : . packages: [0] [08:48:12.072] | : getGlobalsAndPackages() ... done [08:48:12.073] | : run() for Future ('Future') ... [08:48:12.073] | : . state: 'created' [08:48:12.073] | : . plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:12.074] | : . plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:12.074] | : . Using MultisessionFutureBackend ... [08:48:12.074] | : . | Launching futures ... [08:48:12.075] | : . | : launchFuture() for ClusterFutureBackend ... [08:48:12.075] | : . | : . Workers: [n=2] [08:48:12.075] | : . | : . Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R version 4.5.0 RC (2025-04-04 r88126 ucrt), platform x86_64-w64-mingw32) [08:48:12.078] | : . | : . FutureRegistry: 'workers-204da929938858d2b9ec4b5fa1871fc8' [08:48:12.079] | : . | : . requestWorker() ... [08:48:12.079] | : . | : . | requestNode() ... [08:48:12.079] | : . | : . | : Number of workers: 2 [08:48:12.080] | : . | : . | : Polling for a free worker ... [08:48:12.080] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:12.080] | : . | : . | : . | Listing all futures [08:48:12.080] | : . | : . | : . | Number of registered futures: 0 [08:48:12.081] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:12.081] | : . | : . | : . Total time: 0 [08:48:12.081] | : . | : . | : Polling for a free worker ... done [08:48:12.082] | : . | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:12.082] | : . | : . | : . Listing all futures [08:48:12.082] | : . | : . | : . Number of registered futures: 0 [08:48:12.082] | : . | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:12.083] | : . | : . | : Index of first available worker: 1 [08:48:12.083] | : . | : . | : Validate that the worker is functional ... [08:48:12.138] | : . | : . | : . Worker is functional [08:48:12.139] | : . | : . | : requestNode() ... done [08:48:12.139] | : . | : . | : cluster node index: 1 [08:48:12.139] | : . | : . | requestWorker() ... done [08:48:12.140] | : . | : . | eraseGlobalEnvironment() ... [08:48:12.141] | : . | : . | eraseGlobalEnvironment() ... done [08:48:12.141] | : . | : . | launchFuture() ... [08:48:12.141] | : . | : . | : cluster node index: 1 [08:48:12.141] | : . | : . | : getFutureData() ... [08:48:12.142] | : . | : . | : . getFutureCore() ... [08:48:12.142] | : . | : . | : . | Packages needed by the future expression (n = 0): [08:48:12.142] | : . | : . | : . getFutureCore() ... done [08:48:12.143] | : . | : . | : . getFutureCapture() ... [08:48:12.143] | : . | : . | : . getFutureCapture() ... done [08:48:12.143] | : . | : . | : . getFutureContext() ... [08:48:12.144] | : . | : . | : . | plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:12.144] | : . | : . | : . | : Getting stack without first strategy: [n=0] [08:48:12.144] | : . | : . | : . | plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:12.145] | : . | : . | : . | Packages needed by future strategies (n = 0): [08:48:12.145] | : . | : . | : . getFutureContext() ... done [08:48:12.145] | : . | : . | : getFutureData() ... done [08:48:12.160] | : . | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... [08:48:12.161] | : . | : . | : . Appended future to position #1 [08:48:12.161] | : . | : . | : . Number of registered futures: 1 [08:48:12.161] | : . | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... done [08:48:12.161] | : . | : . | launchFuture() ... done [08:48:12.161] | : . | : . | MultisessionFuture started [08:48:12.162] | : . | : . launchFuture() for ClusterFutureBackend ... done [08:48:12.162] | : . | : Launching futures ... done [08:48:12.162] | : . | : Future launched: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:48:12.162] | : . | Using MultisessionFutureBackend ... done [08:48:12.162] | : . run() for Future ('MultisessionFuture') ... done > message(sprintf("y = %s\n", y)) [08:48:12.163] | : . result() for ClusterFuture ... [08:48:12.163] | : . | assertValidConnection() ... [08:48:12.163] | : . | : cluster node index: 1 [08:48:12.164] | : . | assertValidConnection() ... done [08:48:12.164] | : . | receiveMessageFromWorker() for ClusterFuture ... [08:48:12.164] | : . | : cluster node index: 1 [08:48:12.171] | : . | : [1] TRUE [08:48:12.172] | : . | : received data: [08:48:12.172] | : . | : List of 5 [08:48:12.172] | : . | : $ type : chr "VALUE" [08:48:12.172] | : . | : $ value :List of 13 [08:48:12.172] | : . | : ..$ value : num 5 [08:48:12.172] | : . | : ..$ visible : logi TRUE [08:48:12.172] | : . | : ..$ stdout : chr "" [08:48:12.172] | : . | : ..$ conditions : list() [08:48:12.172] | : . | : ..$ rng : logi FALSE [08:48:12.172] | : . | : ..$ misuseGlobalEnv : NULL [08:48:12.172] | : . | : ..$ misuseConnections:List of 3 [08:48:12.172] | : . | : .. ..$ added : NULL [08:48:12.172] | : . | : .. ..$ removed : NULL [08:48:12.172] | : . | : .. ..$ replaced: NULL [08:48:12.172] | : . | : ..$ misuseDevices : NULL [08:48:12.172] | : . | : ..$ started : POSIXct[1:1], format: "2025-04-10 08:48:12" [08:48:12.172] | : . | : ..$ finished : POSIXct[1:1], format: "2025-04-10 08:48:12" [08:48:12.172] | : . | : ..$ session_uuid : chr "8e340216b4da19c6c650392c71816006" [08:48:12.172] | : . | : .. ..- attr(*, "source")=List of 5 [08:48:12.172] | : . | : .. .. ..$ host : Named chr "CRANWIN3" [08:48:12.172] | : . | : .. .. .. ..- attr(*, "names")= chr "COMPUTERNAME" [08:48:12.172] | : . | : .. .. ..$ info : Named chr [1:9] "Windows" "Server x64" "build 20348" "CRANWIN3" ... [08:48:12.172] | : . | : .. .. .. ..- attr(*, "names")= chr [1:9] "sysname" "release" "version" "nodename" ... [08:48:12.172] | : . | : .. .. ..$ pid : int 23928 [08:48:12.172] | : . | : .. .. ..$ time : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:12.172] | : . | : .. .. ..$ random: int 2147483647 [08:48:12.172] | : . | : ..$ r_info :List of 4 [08:48:12.172] | : . | : .. ..$ version :Classes 'R_system_version', 'package_version', 'numeric_version' hidden list of 1 [08:48:12.172] | : . | : .. .. ..$ : int [1:3] 4 5 0 [08:48:12.172] | : . | : .. ..$ os : chr "windows" [08:48:12.172] | : . | : .. ..$ os_name : chr "Windows" [08:48:12.172] | : . | : .. ..$ captures_utf8: logi TRUE [08:48:12.172] | : . | : ..$ version : chr "1.8" [08:48:12.172] | : . | : ..- attr(*, "class")= chr "FutureResult" [08:48:12.172] | : . | : $ success: logi TRUE [08:48:12.172] | : . | : $ time : 'proc_time' Named num [1:5] 0 0 0 NA NA [08:48:12.172] | : . | : ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ... [08:48:12.172] | : . | : $ tag : NULL [08:48:12.192] | : . | : Received FutureResult [08:48:12.192] | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... [08:48:12.193] | : . | : . Removed future from position #1 [08:48:12.193] | : . | : . Number of registered futures: 0 [08:48:12.193] | : . | : FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... done [08:48:12.194] | : . | : Erased future from future backend [08:48:12.194] | : . | : result() for ClusterFuture ... [08:48:12.194] | : . | : . result already collected: FutureResult [08:48:12.195] | : . | : result() for ClusterFuture ... done [08:48:12.195] | : . | receiveMessageFromWorker() for ClusterFuture ... done [08:48:12.195] | : . result() for ClusterFuture ... done [08:48:12.196] | : . result() for ClusterFuture ... [08:48:12.196] | : . | result already collected: FutureResult [08:48:12.196] | : . result() for ClusterFuture ... done y = 5 > str(as.list(env)) [08:48:12.197] | : . result() for ClusterFuture ... [08:48:12.197] | : . | result already collected: FutureResult [08:48:12.198] | : . result() for ClusterFuture ... done [08:48:12.198] | : . result() for ClusterFuture ... [08:48:12.198] | : . | result already collected: FutureResult [08:48:12.199] | : . result() for ClusterFuture ... done List of 1 $ a: num 5 > 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' [08:48:12.201] | : . getGlobalsAndPackages() ... [08:48:12.202] | : . | Searching for globals ... [08:48:12.204] | : . | : globals found: [4] '{', '[[', 'env', 'b' [08:48:12.204] | : . | Searching for globals ... DONE [08:48:12.204] | : . | Resolving globals: TRUE [08:48:12.205] | : . | Resolving any globals that are futures ... [08:48:12.205] | : . | : globals: [4] '{', '[[', 'env', 'b' [08:48:12.205] | : . | Resolving any globals that are futures ... DONE [08:48:12.206] | : . | Search for packages associated with the globals ... [08:48:12.206] | : . | : Packages associated with globals: [1] 'base' [08:48:12.207] | : . | : Packages: [1] 'base' [08:48:12.207] | : . | Search for packages associated with the globals ... DONE [08:48:12.208] | : . | Resolving futures part of globals (recursively) ... [08:48:12.208] | : . | : resolve() on FutureGlobals ...resolve() on Globals ...resolve() on list ... [08:48:12.209] | : . | : . recursive: 99 [08:48:12.209] | : . | : . length: 2 [08:48:12.209] | : . | : . elements: 'env', 'b' [08:48:12.210] | : . | : . 'obj' is environment [08:48:12.210] | : . | : . resolve(obj, ...) ... [08:48:12.210] | : . | : . | resolve() on environment ... [08:48:12.211] | : . | : . | : recursive: 98 [08:48:12.212] | : . | : . | : elements: [1] 'a' [08:48:12.212] | : . | : . | : length: 0 (resolved future 1) [08:48:12.212] | : . | : . | resolve() on environment ... done [08:48:12.213] | : . | : . resolve(obj, ...) ... done [08:48:12.213] | : . | : . length: 1 (resolved future 1) [08:48:12.214] | : . | : . 'obj' is atomic [08:48:12.214] | : . | : . length: 0 (resolved future 2) [08:48:12.215] | : . | : resolve() on FutureGlobals ... doneresolve() on Globals ... doneresolve() on list ... done [08:48:12.215] | : . | : globals: [2] 'env', 'b' [08:48:12.215] | : . | Resolving futures part of globals (recursively) ... DONE [08:48:12.216] | : . | Packages after dropping 'base': [0] [08:48:12.216] | : . | globals: [2] 'env', 'b' [08:48:12.216] | : . | packages: [0] [08:48:12.217] | : . getGlobalsAndPackages() ... done [08:48:12.217] | : . run() for Future ('Future') ... [08:48:12.218] | : . | state: 'created' [08:48:12.218] | : . | plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:12.218] | : . | plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:12.219] | : . | Using MultisessionFutureBackend ... [08:48:12.219] | : . | : Launching futures ... [08:48:12.220] | : . | : . launchFuture() for ClusterFutureBackend ... [08:48:12.220] | : . | : . | Workers: [n=2] [08:48:12.220] | : . | : . | Socket cluster with 2 nodes where 2 nodes are on host 'localhost' (R version 4.5.0 RC (2025-04-04 r88126 ucrt), platform x86_64-w64-mingw32) [08:48:12.224] | : . | : . | FutureRegistry: 'workers-204da929938858d2b9ec4b5fa1871fc8' [08:48:12.224] | : . | : . | requestWorker() ... [08:48:12.225] | : . | : . | : requestNode() ... [08:48:12.225] | : . | : . | : . Number of workers: 2 [08:48:12.225] | : . | : . | : . Polling for a free worker ... [08:48:12.226] | : . | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:12.226] | : . | : . | : . | : Listing all futures [08:48:12.226] | : . | : . | : . | : Number of registered futures: 0 [08:48:12.227] | : . | : . | : . | FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:12.227] | : . | : . | : . | Total time: 0 [08:48:12.228] | : . | : . | : . Polling for a free worker ... done [08:48:12.228] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... [08:48:12.228] | : . | : . | : . | Listing all futures [08:48:12.228] | : . | : . | : . | Number of registered futures: 0 [08:48:12.229] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'list', earlySignal = 0) ... done [08:48:12.229] | : . | : . | : . Index of first available worker: 1 [08:48:12.229] | : . | : . | : . Validate that the worker is functional ... [08:48:12.287] | : . | : . | : . | Worker is functional [08:48:12.288] | : . | : . | : . requestNode() ... done [08:48:12.288] | : . | : . | : . cluster node index: 1 [08:48:12.289] | : . | : . | : requestWorker() ... done [08:48:12.289] | : . | : . | : eraseGlobalEnvironment() ... [08:48:12.290] | : . | : . | : eraseGlobalEnvironment() ... done [08:48:12.290] | : . | : . | : launchFuture() ... [08:48:12.290] | : . | : . | : . cluster node index: 1 [08:48:12.291] | : . | : . | : . getFutureData() ... [08:48:12.291] | : . | : . | : . | getFutureCore() ... [08:48:12.291] | : . | : . | : . | : Packages needed by the future expression (n = 0): [08:48:12.291] | : . | : . | : . | getFutureCore() ... done [08:48:12.292] | : . | : . | : . | getFutureCapture() ... [08:48:12.292] | : . | : . | : . | getFutureCapture() ... done [08:48:12.292] | : . | : . | : . | getFutureContext() ... [08:48:12.293] | : . | : . | : . | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... [08:48:12.293] | : . | : . | : . | : . Getting stack without first strategy: [n=0] [08:48:12.293] | : . | : . | : . | : plan(, .skip = FALSE, .cleanup = NA, .init = TRUE) ... done [08:48:12.294] | : . | : . | : . | : Packages needed by future strategies (n = 0): [08:48:12.294] | : . | : . | : . | getFutureContext() ... done [08:48:12.294] | : . | : . | : . getFutureData() ... done [08:48:12.295] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... [08:48:12.295] | : . | : . | : . | Appended future to position #1 [08:48:12.295] | : . | : . | : . | Number of registered futures: 1 [08:48:12.296] | : . | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'add', earlySignal = 0) ... done [08:48:12.296] | : . | : . | : launchFuture() ... done [08:48:12.296] | : . | : . | : MultisessionFuture started [08:48:12.297] | : . | : . | launchFuture() for ClusterFutureBackend ... done [08:48:12.297] | : . | : . Launching futures ... done [08:48:12.297] | : . | : . Future launched: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future' [08:48:12.297] | : . | : Using MultisessionFutureBackend ... done [08:48:12.298] | : . | run() for Future ('MultisessionFuture') ... done > message(sprintf("y = %s\n", y)) [08:48:12.298] | : . | result() for ClusterFuture ... [08:48:12.299] | : . | : assertValidConnection() ... [08:48:12.299] | : . | : . cluster node index: 1 [08:48:12.300] | : . | : assertValidConnection() ... done [08:48:12.300] | : . | : receiveMessageFromWorker() for ClusterFuture ... [08:48:12.300] | : . | : . cluster node index: 1 [08:48:12.301] | : . | : . [1] TRUE [08:48:12.301] | : . | : . received data: [08:48:12.302] | : . | : . List of 5 [08:48:12.302] | : . | : . $ type : chr "VALUE" [08:48:12.302] | : . | : . $ value :List of 13 [08:48:12.302] | : . | : . ..$ value : num 5 [08:48:12.302] | : . | : . ..$ visible : logi TRUE [08:48:12.302] | : . | : . ..$ stdout : chr "" [08:48:12.302] | : . | : . ..$ conditions : list() [08:48:12.302] | : . | : . ..$ rng : logi FALSE [08:48:12.302] | : . | : . ..$ misuseGlobalEnv : NULL [08:48:12.302] | : . | : . ..$ misuseConnections:List of 3 [08:48:12.302] | : . | : . .. ..$ added : NULL [08:48:12.302] | : . | : . .. ..$ removed : NULL [08:48:12.302] | : . | : . .. ..$ replaced: NULL [08:48:12.302] | : . | : . ..$ misuseDevices : NULL [08:48:12.302] | : . | : . ..$ started : POSIXct[1:1], format: "2025-04-10 08:48:12" [08:48:12.302] | : . | : . ..$ finished : POSIXct[1:1], format: "2025-04-10 08:48:12" [08:48:12.302] | : . | : . ..$ session_uuid : chr "8e340216b4da19c6c650392c71816006" [08:48:12.302] | : . | : . .. ..- attr(*, "source")=List of 5 [08:48:12.302] | : . | : . .. .. ..$ host : Named chr "CRANWIN3" [08:48:12.302] | : . | : . .. .. .. ..- attr(*, "names")= chr "COMPUTERNAME" [08:48:12.302] | : . | : . .. .. ..$ info : Named chr [1:9] "Windows" "Server x64" "build 20348" "CRANWIN3" ... [08:48:12.302] | : . | : . .. .. .. ..- attr(*, "names")= chr [1:9] "sysname" "release" "version" "nodename" ... [08:48:12.302] | : . | : . .. .. ..$ pid : int 23928 [08:48:12.302] | : . | : . .. .. ..$ time : POSIXct[1:1], format: "2025-04-10 08:48:11" [08:48:12.302] | : . | : . .. .. ..$ random: int 2147483647 [08:48:12.302] | : . | : . ..$ r_info :List of 4 [08:48:12.302] | : . | : . .. ..$ version :Classes 'R_system_version', 'package_version', 'numeric_version' hidden list of 1 [08:48:12.302] | : . | : . .. .. ..$ : int [1:3] 4 5 0 [08:48:12.302] | : . | : . .. ..$ os : chr "windows" [08:48:12.302] | : . | : . .. ..$ os_name : chr "Windows" [08:48:12.302] | : . | : . .. ..$ captures_utf8: logi TRUE [08:48:12.302] | : . | : . ..$ version : chr "1.8" [08:48:12.302] | : . | : . ..- attr(*, "class")= chr "FutureResult" [08:48:12.302] | : . | : . $ success: logi TRUE [08:48:12.302] | : . | : . $ time : 'proc_time' Named num [1:5] 0.01 0 0.02 NA NA [08:48:12.302] | : . | : . ..- attr(*, "names")= chr [1:5] "user.self" "sys.self" "elapsed" "user.child" ... [08:48:12.302] | : . | : . $ tag : NULL [08:48:12.325] | : . | : . Received FutureResult [08:48:12.325] | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... [08:48:12.326] | : . | : . | Removed future from position #1 [08:48:12.326] | : . | : . | Number of registered futures: 0 [08:48:12.327] | : . | : . FutureRegistry('workers-204da929938858d2b9ec4b5fa1871fc8', action = 'remove', earlySignal = 0) ... done [08:48:12.327] | : . | : . Erased future from future backend [08:48:12.327] | : . | : . result() for ClusterFuture ... [08:48:12.328] | : . | : . | result already collected: FutureResult [08:48:12.328] | : . | : . result() for ClusterFuture ... done [08:48:12.328] | : . | : receiveMessageFromWorker() for ClusterFuture ... done [08:48:12.329] | : . | result() for ClusterFuture ... done [08:48:12.329] | : . | result() for ClusterFuture ... [08:48:12.329] | : . | : result already collected: FutureResult [08:48:12.330] | : . | result() for ClusterFuture ... done y = 5 > message("*** Tricky use cases related to globals (part 2) ... DONE") *** Tricky use cases related to globals (part 2) ... DONE > setTimeLimit() Sourcing 6 epilogue scripts ... 01/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_epilogue/001.undo-future.R' 02/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_epilogue/002.undo-state.R' Failed to undo environment variables: - Expected environment variables: [n=213] '!ExitCode', 'ALLUSERSPROFILE', 'APPDATA', 'BIBINPUTS', 'BINDIR', 'BSTINPUTS', 'COMMONPROGRAMFILES', 'COMPUTERNAME', 'COMSPEC', 'CURL_CA_BUNDLE', 'CYGWIN', 'CommonProgramFiles(x86)', 'CommonProgramW6432', 'DriverData', 'HOME', 'HOMEDRIVE', 'HOMEPATH', 'JAGS_ROOT', 'JAVA_HOME', 'LANGUAGE', 'LC_COLLATE', 'LC_MONETARY', 'LC_TIME', 'LOCALAPPDATA', 'LOGONSERVER', 'LS_HOME', 'LS_LICENSE_PATH', 'MAKE', 'MAKEFLAGS', 'MAKELEVEL', 'MFLAGS', 'MSMPI_BENCHMARKS', 'MSMPI_BIN', 'MSYS2_ENV_CONV_EXCL', 'NUMBER_OF_PROCESSORS', 'OCL', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', 'RTOOLS44_HOME', 'RTOOLS45_HOME', 'R_ARCH', 'R_BROWSER', 'R_BZIPCMD', 'R_CMD', 'R_COMPILED_BY', 'R_CRAN_WEB', 'R_CUSTOM_TOOLS_PATH', 'R_CUSTOM_TOOLS_SOFT', 'R_DOC_DIR', 'R_ENVIRON_USER', 'R_GSCMD', 'R_GZIPCMD', 'R_HOME', 'R_INCLUDE_DIR', 'R_INSTALL_TAR', 'R_LIBS', 'R_LIBS_SITE', 'R_LIBS_USER', 'R_MAX_NUM_DLLS', 'R_OSTYPE', 'R_PAPERSIZE', 'R_PAPERSIZE_USER', 'R_PARALLELLY_MAKENODEPSOCK_AUTOKILL', 'R_PARALLELLY_MAKENODEPSOCK_CONNECTTIMEOUT', 'R_PARALLELLY_MAKENODEPSOCK_RSCRIPT_LABEL', 'R_PARALLELLY_MAKENODEPSOCK_SESSIONINFO_PKGS', 'R_PARALLELLY_MAKENODEPSOCK_TIMEOUT', 'R_PARALLELLY_RANDOM_PORTS', 'R_PARALLEL_PORT', 'R_RD4PDF', 'R_RTOOLS45_PATH', 'R_SCRIPT_LEGACY', 'R_SHARE_DIR', 'R_TESTME_NAME', 'R_TESTME_PACKAGE', 'R_TESTME_PATH', 'R_TESTS', 'R_UNZIPCMD', 'R_USER', 'R_VERSION', 'R_ZIPCMD', 'SED', 'SHLVL', 'SYSTEMDRIVE', 'SYSTEMROOT', 'TAR', 'TAR_OPTIONS', 'TEMP', 'TERM', 'TEXINPUTS', 'TMP', 'TMPDIR', 'USERDOMAIN', 'USERDOMAIN_ROAMINGPROFILE', 'USERNAME', 'USERPROFILE', 'WINDIR', '_', '_R_CHECK_AUTOCONF_', '_R_CHECK_BOGUS_RETURN_', '_R_CHECK_BROWSER_NONINTERACTIVE_', '_R_CHECK_BUILD_VIGNETTES_SEPARATELY_', '_R_CHECK_CODETOOLS_PROFILE_', '_R_CHECK_CODE_ASSIGN_TO_GLOBALENV_', '_R_CHECK_CODE_ATTACH_', '_R_CHECK_CODE_CLASS_IS_STRING_', '_R_CHECK_CODE_DATA_INTO_GLOBALENV_', '_R_CHECK_CODE_USAGE_VIA_NAMESPACES_', '_R_CHECK_CODE_USAGE_WITHOUT_LOADING_', '_R_CHECK_CODE_USAGE_WITH_ONLY_BASE_ATTACHED_', '_R_CHECK_CODOC_VARIABLES_IN_USAGES_', '_R_CHECK_COMPACT_DATA2_', '_R_CHECK_COMPILATION_FLAGS_', '_R_CHECK_CONNECTIONS_LEFT_OPEN_', '_R_CHECK_CRAN_INCOMING_', '_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_MAYBE_', '_R_CHECK_CRAN_INCOMING_ASPELL_RECHECK_START_', '_R_CHECK_CRAN_INCOMING_CHECK_FILE_URIS_', '_R_CHECK_CRAN_INCOMING_CHECK_URLS_IN_PARALLEL_', '_R_CHECK_CRAN_INCOMING_NOTE_GNU_MAKE_', '_R_CHECK_CRAN_INCOMING_REMOTE_', '_R_CHECK_CRAN_INCOMING_USE_ASPELL_', '_R_CHECK_DATALIST_', '_R_CHECK_DEPRECATED_DEFUNCT_', '_R_CHECK_DOC_SIZES2_', '_R_CHECK_DOT_FIRSTLIB_', '_R_CHECK_DOT_INTERNAL_', '_R_CHECK_EXAMPLE_TIMING_THRESHOLD_', '_R_CHECK_EXECUTABLES_', '_R_CHECK_EXECUTABLES_EXCLUSIONS_', '_R_CHECK_FF_CALLS_', '_R_CHECK_FF_DUP_', '_R_CHECK_FORCE_SUGGESTS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_', '_R_CHECK_FUTURE_FILE_TIMESTAMPS_LEEWAY_', '_R_CHECK_HAVE_MYSQL_', '_R_CHECK_HAVE_ODBC_', '_R_CHECK_HAVE_PERL_', '_R_CHECK_HAVE_POSTGRES_', '_R_CHECK_INSTALL_DEPENDS_', '_R_CHECK_INTERNALS2_', '_R_CHECK_LENGTH_1_CONDITION_', '_R_CHECK_LICENSE_', '_R_CHECK_LIMIT_CORES_', '_R_CHECK_LOG_USE_INFO_', '_R_CHECK_MATRIX_DATA_', '_R_CHECK_MBCS_CONVERSION_FAILURE_', '_R_CHECK_NATIVE_ROUTINE_REGISTRATION_', '_R_CHECK_NEWS_IN_PLAIN_TEXT_', '_R_CHECK_NO_RECOMMENDED_', '_R_CHECK_NO_STOP_ON_TEST_ERROR_', '_R_CHECK_ORPHANED_', '_R_CHECK_OVERWRITE_REGISTERED_S3_METHODS_', '_R_CHECK_PACKAGES_USED_IGNORE_UNUSED_IMPORTS_', '_R_CHECK_PACKAGES_USED_IN_TESTS_USE_SUBDIRS_', '_R_CHECK_PACKAGE_DATASETS_SUPPRESS_NOTES_', '_R_CHECK_PACKAGE_NAME_', '_R_CHECK_PKG_SIZES_', '_R_CHECK_PKG_SIZES_THRESHOLD_', '_R_CHECK_PRAGMAS_', '_R_CHECK_RD_EXAMPLES_T_AND_F_', '_R_CHECK_RD_LINE_WIDTHS_', '_R_CHECK_RD_MATH_RENDERING_', '_R_CHECK_RD_NOTE_LOST_BRACES_', '_R_CHECK_RD_VALIDATE_RD2HTML_', '_R_CHECK_REPLACING_IMPORTS_', '_R_CHECK_R_DEPENDS_', '_R_CHECK_S3_METHODS_SHOW_POSSIBLE_ISSUES_', '_R_CHECK_SCREEN_DEVICE_', '_R_CHECK_SERIALIZATION_', '_R_CHECK_SHLIB_OPENMP_FLAGS_', '_R_CHECK_SRC_MINUS_W_IMPLICIT_', '_R_CHECK_SUBDIRS_NOCASE_', '_R_CHECK_SUGGESTS_ONLY_', '_R_CHECK_SYSTEM_CLOCK_', '_R_CHECK_TESTS_NLINES_', '_R_CHECK_TEST_TIMING_', '_R_CHECK_TIMINGS_', '_R_CHECK_TOPLEVEL_FILES_', '_R_CHECK_UNDOC_USE_ALL_NAMES_', '_R_CHECK_UNSAFE_CALLS_', '_R_CHECK_URLS_SHOW_301_STATUS_', '_R_CHECK_VC_DIRS_', '_R_CHECK_VIGNETTES_NLINES_', '_R_CHECK_VIGNETTES_SKIP_RUN_MAYBE_', '_R_CHECK_VIGNETTE_TIMING_', '_R_CHECK_VIGNETTE_TITLES_', '_R_CHECK_WINDOWS_DEVICE_', '_R_CHECK_XREFS_NOTE_MISSING_PACKAGE_ANCHORS_', '_R_CHECK_XREFS_USE_ALIASES_FROM_CRAN_', '_R_CLASS_MATRIX_ARRAY_', '_R_DEPRECATED_IS_R_', '_R_S3_METHOD_LOOKUP_BASEENV_AFTER_GLOBALENV_', '_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_', '_R_USE_STRICT_R_HEADERS_', '__R_CHECK_DOC_FILES_NOTE_IF_ALL_SPECIAL__', 'maj.version', 'nextArg--timingsnextArg--install', 'tempdirname' - Environment variables still there: [n=0] - Environment variables missing: [n=1] 'MAKEFLAGS' Differences environment variable by environment variable: 03/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_epilogue/090.gc.R' 04/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_epilogue/099.session_info.R' 05/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_epilogue/995.detritus-connections.R' 06/06 epilogue script 'D:/RCompile/CRANincoming/R-devel/lib/future/testme/_epilogue/999.detritus-files.R' Skipping, because path appears not to be an 'R CMD check' folder: 'D:/temp/2025_04_10_08_45_16_15127' Sourcing 6 epilogue scripts ... done Test time: user.self=0.8s, sys.self=0.07s, elapsed=2s, user.child=NAs, sys.child=NAs Test 'globals,resolve' ... success > > proc.time() user system elapsed 0.95 0.21 2.25