R Under development (unstable) (2023-06-30 r84625 ucrt) -- "Unsuffered Consequences" Copyright (C) 2023 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. > source("incl/start.R") [18:02:09.300] plan(): Setting new future strategy stack: [18:02:09.301] List of future strategies: [18:02:09.301] 1. sequential: [18:02:09.301] - args: function (..., envir = parent.frame()) [18:02:09.301] - tweaked: FALSE [18:02:09.301] - call: future::plan("sequential") [18:02:09.317] plan(): nbrOfWorkers() = 1 > > ## Local functions > usedNodes <- function(future) { + ## Number of unresolved cluster futures + workers <- future$workers + reg <- sprintf("workers-%s", attr(workers, "name")) + c(used = length(future:::FutureRegistry(reg, action = "list")), total = length(workers)) + } > > ## This test requires at least two background processes > plan(multisession, workers = 2L) [18:02:09.326] plan(): Setting new future strategy stack: [18:02:09.326] List of future strategies: [18:02:09.326] 1. multisession: [18:02:09.326] - args: function (..., workers = 2L, envir = parent.frame()) [18:02:09.326] - tweaked: TRUE [18:02:09.326] - call: plan(multisession, workers = 2L) [18:02:09.339] plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... [18:02:09.339] multisession: [18:02:09.339] - args: function (..., workers = 2L, envir = parent.frame()) [18:02:09.339] - tweaked: TRUE [18:02:09.339] - call: plan(multisession, workers = 2L) [18:02:09.341] getGlobalsAndPackages() ... [18:02:09.342] Not searching for globals [18:02:09.342] - globals: [0] [18:02:09.342] getGlobalsAndPackages() ... DONE [18:02:09.343] [local output] makeClusterPSOCK() ... [18:02:09.369] [local output] Workers: [n = 2] 'localhost', 'localhost' [18:02:09.376] [local output] Base port: 29589 [18:02:09.376] [local output] Getting setup options for 2 cluster nodes ... [18:02:09.377] [local output] - Node 1 of 2 ... [18:02:09.377] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:09.378] Testing if worker's PID can be inferred: '"D:/RCompile/recent/R/bin/x64/Rscript" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmpi2faH3/worker.rank=1.parallelly.parent=72288.11a6049512464.pid\")), silent = TRUE)" -e "file.exists(\"D:/temp/Rtmpi2faH3/worker.rank=1.parallelly.parent=72288.11a6049512464.pid\")"' [18:02:09.824] - Possible to infer worker's PID: TRUE [18:02:09.824] [local output] Rscript port: 29589 [18:02:09.825] [local output] - Node 2 of 2 ... [18:02:09.825] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:09.827] [local output] Rscript port: 29589 [18:02:09.827] [local output] Getting setup options for 2 cluster nodes ... done [18:02:09.827] [local output] - Parallel setup requested for some PSOCK nodes [18:02:09.828] [local output] Setting up PSOCK nodes in parallel [18:02:09.828] List of 36 [18:02:09.828] $ worker : chr "localhost" [18:02:09.828] ..- attr(*, "localhost")= logi TRUE [18:02:09.828] $ master : chr "localhost" [18:02:09.828] $ port : int 29589 [18:02:09.828] $ connectTimeout : num 120 [18:02:09.828] $ timeout : num 120 [18:02:09.828] $ rscript : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\"" [18:02:09.828] $ homogeneous : logi TRUE [18:02:09.828] $ rscript_args : chr "--default-packages=datasets,utils,grDevices,graphics,stats,methods -e \"#label=invalid-owner.R:72288:CRANWIN3:C"| __truncated__ [18:02:09.828] $ rscript_envs : NULL [18:02:09.828] $ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:09.828] $ rscript_startup : NULL [18:02:09.828] $ rscript_sh : chr "cmd" [18:02:09.828] $ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:09.828] $ methods : logi TRUE [18:02:09.828] $ socketOptions : chr "no-delay" [18:02:09.828] $ useXDR : logi FALSE [18:02:09.828] $ outfile : chr "/dev/null" [18:02:09.828] $ renice : int NA [18:02:09.828] $ rshcmd : NULL [18:02:09.828] $ user : chr(0) [18:02:09.828] $ revtunnel : logi FALSE [18:02:09.828] $ rshlogfile : NULL [18:02:09.828] $ rshopts : chr(0) [18:02:09.828] $ rank : int 1 [18:02:09.828] $ manual : logi FALSE [18:02:09.828] $ dryrun : logi FALSE [18:02:09.828] $ quiet : logi FALSE [18:02:09.828] $ setup_strategy : chr "parallel" [18:02:09.828] $ local_cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:09.828] $ pidfile : chr "D:/temp/Rtmpi2faH3/worker.rank=1.parallelly.parent=72288.11a6049512464.pid" [18:02:09.828] $ rshcmd_label : NULL [18:02:09.828] $ rsh_call : NULL [18:02:09.828] $ cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:09.828] $ localMachine : logi TRUE [18:02:09.828] $ make_fcn :function (worker = getOption2("parallelly.localhost.hostname", "localhost"), [18:02:09.828] master = NULL, port, connectTimeout = getOption2("parallelly.makeNodePSOCK.connectTimeout", [18:02:09.828] 2 * 60), timeout = getOption2("parallelly.makeNodePSOCK.timeout", [18:02:09.828] 30 * 24 * 60 * 60), rscript = NULL, homogeneous = NULL, rscript_args = NULL, [18:02:09.828] rscript_envs = NULL, rscript_libs = NULL, rscript_startup = NULL, rscript_sh = c("auto", [18:02:09.828] "cmd", "sh"), default_packages = c("datasets", "utils", "grDevices", [18:02:09.828] "graphics", "stats", if (methods) "methods"), methods = TRUE, socketOptions = getOption2("parallelly.makeNodePSOCK.socketOptions", [18:02:09.828] "no-delay"), useXDR = getOption2("parallelly.makeNodePSOCK.useXDR", [18:02:09.828] FALSE), outfile = "/dev/null", renice = NA_integer_, rshcmd = getOption2("parallelly.makeNodePSOCK.rshcmd", [18:02:09.828] NULL), user = NULL, revtunnel = NA, rshlogfile = NULL, rshopts = getOption2("parallelly.makeNodePSOCK.rshopts", [18:02:09.828] NULL), rank = 1L, manual = FALSE, dryrun = FALSE, quiet = FALSE, [18:02:09.828] setup_strategy = getOption2("parallelly.makeNodePSOCK.setup_strategy", [18:02:09.828] "parallel"), action = c("launch", "options"), verbose = FALSE) [18:02:09.828] $ arguments :List of 28 [18:02:09.828] ..$ worker : chr "localhost" [18:02:09.828] ..$ master : NULL [18:02:09.828] ..$ port : int 29589 [18:02:09.828] ..$ connectTimeout : num 120 [18:02:09.828] ..$ timeout : num 120 [18:02:09.828] ..$ rscript : NULL [18:02:09.828] ..$ homogeneous : NULL [18:02:09.828] ..$ rscript_args : NULL [18:02:09.828] ..$ rscript_envs : NULL [18:02:09.828] ..$ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:09.828] ..$ rscript_startup : NULL [18:02:09.828] ..$ rscript_sh : chr [1:3] "auto" "cmd" "sh" [18:02:09.828] ..$ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:09.828] ..$ methods : logi TRUE [18:02:09.828] ..$ socketOptions : chr "no-delay" [18:02:09.828] ..$ useXDR : logi FALSE [18:02:09.828] ..$ outfile : chr "/dev/null" [18:02:09.828] ..$ renice : int NA [18:02:09.828] ..$ rshcmd : NULL [18:02:09.828] ..$ user : NULL [18:02:09.828] ..$ revtunnel : logi NA [18:02:09.828] ..$ rshlogfile : NULL [18:02:09.828] ..$ rshopts : NULL [18:02:09.828] ..$ rank : int 1 [18:02:09.828] ..$ manual : logi FALSE [18:02:09.828] ..$ dryrun : logi FALSE [18:02:09.828] ..$ quiet : logi FALSE [18:02:09.828] ..$ setup_strategy : chr "parallel" [18:02:09.828] - attr(*, "class")= chr [1:2] "makeNodePSOCKOptions" "makeNodeOptions" [18:02:09.852] [local output] System call to launch all workers: [18:02:09.852] [local output] "D:/RCompile/recent/R/bin/x64/Rscript" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "#label=invalid-owner.R:72288:CRANWIN3:CRAN" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmpi2faH3/worker.rank=1.parallelly.parent=72288.11a6049512464.pid\")), silent = TRUE)" -e "options(socketOptions = \"no-delay\")" -e ".libPaths(c(\"D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c\",\"D:/RCompile/recent/R/library\"))" -e "workRSOCK <- tryCatch(parallel:::.workRSOCK, error=function(e) parallel:::.slaveRSOCK); workRSOCK()" MASTER=localhost PORT=29589 OUT=/dev/null TIMEOUT=120 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=parallel [18:02:09.853] [local output] Starting PSOCK main server [18:02:09.862] [local output] Workers launched [18:02:09.862] [local output] Waiting for workers to connect back [18:02:09.862] - [local output] 0 workers out of 2 ready [18:02:10.037] - [local output] 0 workers out of 2 ready [18:02:10.038] - [local output] 1 workers out of 2 ready [18:02:10.039] - [local output] 2 workers out of 2 ready [18:02:10.039] [local output] Launching of workers completed [18:02:10.039] [local output] Collecting session information from workers [18:02:10.040] [local output] - Worker #1 of 2 [18:02:10.041] [local output] - Worker #2 of 2 [18:02:10.041] [local output] makeClusterPSOCK() ... done [18:02:10.056] Packages needed by the future expression (n = 0): [18:02:10.056] Packages needed by future strategies (n = 0): [18:02:10.057] { [18:02:10.057] { [18:02:10.057] { [18:02:10.057] ...future.startTime <- base::Sys.time() [18:02:10.057] { [18:02:10.057] { [18:02:10.057] { [18:02:10.057] { [18:02:10.057] base::local({ [18:02:10.057] has_future <- base::requireNamespace("future", [18:02:10.057] quietly = TRUE) [18:02:10.057] if (has_future) { [18:02:10.057] ns <- base::getNamespace("future") [18:02:10.057] version <- ns[[".package"]][["version"]] [18:02:10.057] if (is.null(version)) [18:02:10.057] version <- utils::packageVersion("future") [18:02:10.057] } [18:02:10.057] else { [18:02:10.057] version <- NULL [18:02:10.057] } [18:02:10.057] if (!has_future || version < "1.8.0") { [18:02:10.057] info <- base::c(r_version = base::gsub("R version ", [18:02:10.057] "", base::R.version$version.string), [18:02:10.057] platform = base::sprintf("%s (%s-bit)", [18:02:10.057] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:10.057] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.057] "release", "version")], collapse = " "), [18:02:10.057] hostname = base::Sys.info()[["nodename"]]) [18:02:10.057] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.057] info) [18:02:10.057] info <- base::paste(info, collapse = "; ") [18:02:10.057] if (!has_future) { [18:02:10.057] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.057] info) [18:02:10.057] } [18:02:10.057] else { [18:02:10.057] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.057] info, version) [18:02:10.057] } [18:02:10.057] base::stop(msg) [18:02:10.057] } [18:02:10.057] }) [18:02:10.057] } [18:02:10.057] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.057] base::options(mc.cores = 1L) [18:02:10.057] } [18:02:10.057] options(future.plan = NULL) [18:02:10.057] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.057] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.057] } [18:02:10.057] ...future.workdir <- getwd() [18:02:10.057] } [18:02:10.057] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.057] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.057] } [18:02:10.057] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.057] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.057] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.057] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.057] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.057] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.057] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.057] base::names(...future.oldOptions)) [18:02:10.057] } [18:02:10.057] if (FALSE) { [18:02:10.057] } [18:02:10.057] else { [18:02:10.057] if (TRUE) { [18:02:10.057] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.057] open = "w") [18:02:10.057] } [18:02:10.057] else { [18:02:10.057] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.057] windows = "NUL", "/dev/null"), open = "w") [18:02:10.057] } [18:02:10.057] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.057] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.057] base::sink(type = "output", split = FALSE) [18:02:10.057] base::close(...future.stdout) [18:02:10.057] }, add = TRUE) [18:02:10.057] } [18:02:10.057] ...future.frame <- base::sys.nframe() [18:02:10.057] ...future.conditions <- base::list() [18:02:10.057] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.057] if (FALSE) { [18:02:10.057] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.057] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.057] } [18:02:10.057] ...future.result <- base::tryCatch({ [18:02:10.057] base::withCallingHandlers({ [18:02:10.057] ...future.value <- base::withVisible(base::local({ [18:02:10.057] ...future.makeSendCondition <- local({ [18:02:10.057] sendCondition <- NULL [18:02:10.057] function(frame = 1L) { [18:02:10.057] if (is.function(sendCondition)) [18:02:10.057] return(sendCondition) [18:02:10.057] ns <- getNamespace("parallel") [18:02:10.057] if (exists("sendData", mode = "function", [18:02:10.057] envir = ns)) { [18:02:10.057] parallel_sendData <- get("sendData", mode = "function", [18:02:10.057] envir = ns) [18:02:10.057] envir <- sys.frame(frame) [18:02:10.057] master <- NULL [18:02:10.057] while (!identical(envir, .GlobalEnv) && [18:02:10.057] !identical(envir, emptyenv())) { [18:02:10.057] if (exists("master", mode = "list", envir = envir, [18:02:10.057] inherits = FALSE)) { [18:02:10.057] master <- get("master", mode = "list", [18:02:10.057] envir = envir, inherits = FALSE) [18:02:10.057] if (inherits(master, c("SOCKnode", [18:02:10.057] "SOCK0node"))) { [18:02:10.057] sendCondition <<- function(cond) { [18:02:10.057] data <- list(type = "VALUE", value = cond, [18:02:10.057] success = TRUE) [18:02:10.057] parallel_sendData(master, data) [18:02:10.057] } [18:02:10.057] return(sendCondition) [18:02:10.057] } [18:02:10.057] } [18:02:10.057] frame <- frame + 1L [18:02:10.057] envir <- sys.frame(frame) [18:02:10.057] } [18:02:10.057] } [18:02:10.057] sendCondition <<- function(cond) NULL [18:02:10.057] } [18:02:10.057] }) [18:02:10.057] withCallingHandlers({ [18:02:10.057] NA [18:02:10.057] }, immediateCondition = function(cond) { [18:02:10.057] sendCondition <- ...future.makeSendCondition() [18:02:10.057] sendCondition(cond) [18:02:10.057] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.057] { [18:02:10.057] inherits <- base::inherits [18:02:10.057] invokeRestart <- base::invokeRestart [18:02:10.057] is.null <- base::is.null [18:02:10.057] muffled <- FALSE [18:02:10.057] if (inherits(cond, "message")) { [18:02:10.057] muffled <- grepl(pattern, "muffleMessage") [18:02:10.057] if (muffled) [18:02:10.057] invokeRestart("muffleMessage") [18:02:10.057] } [18:02:10.057] else if (inherits(cond, "warning")) { [18:02:10.057] muffled <- grepl(pattern, "muffleWarning") [18:02:10.057] if (muffled) [18:02:10.057] invokeRestart("muffleWarning") [18:02:10.057] } [18:02:10.057] else if (inherits(cond, "condition")) { [18:02:10.057] if (!is.null(pattern)) { [18:02:10.057] computeRestarts <- base::computeRestarts [18:02:10.057] grepl <- base::grepl [18:02:10.057] restarts <- computeRestarts(cond) [18:02:10.057] for (restart in restarts) { [18:02:10.057] name <- restart$name [18:02:10.057] if (is.null(name)) [18:02:10.057] next [18:02:10.057] if (!grepl(pattern, name)) [18:02:10.057] next [18:02:10.057] invokeRestart(restart) [18:02:10.057] muffled <- TRUE [18:02:10.057] break [18:02:10.057] } [18:02:10.057] } [18:02:10.057] } [18:02:10.057] invisible(muffled) [18:02:10.057] } [18:02:10.057] muffleCondition(cond) [18:02:10.057] }) [18:02:10.057] })) [18:02:10.057] future::FutureResult(value = ...future.value$value, [18:02:10.057] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.057] ...future.rng), globalenv = if (FALSE) [18:02:10.057] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.057] ...future.globalenv.names)) [18:02:10.057] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.057] }, condition = base::local({ [18:02:10.057] c <- base::c [18:02:10.057] inherits <- base::inherits [18:02:10.057] invokeRestart <- base::invokeRestart [18:02:10.057] length <- base::length [18:02:10.057] list <- base::list [18:02:10.057] seq.int <- base::seq.int [18:02:10.057] signalCondition <- base::signalCondition [18:02:10.057] sys.calls <- base::sys.calls [18:02:10.057] `[[` <- base::`[[` [18:02:10.057] `+` <- base::`+` [18:02:10.057] `<<-` <- base::`<<-` [18:02:10.057] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.057] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.057] 3L)] [18:02:10.057] } [18:02:10.057] function(cond) { [18:02:10.057] is_error <- inherits(cond, "error") [18:02:10.057] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.057] NULL) [18:02:10.057] if (is_error) { [18:02:10.057] sessionInformation <- function() { [18:02:10.057] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.057] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.057] search = base::search(), system = base::Sys.info()) [18:02:10.057] } [18:02:10.057] ...future.conditions[[length(...future.conditions) + [18:02:10.057] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.057] cond$call), session = sessionInformation(), [18:02:10.057] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.057] signalCondition(cond) [18:02:10.057] } [18:02:10.057] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.057] "immediateCondition"))) { [18:02:10.057] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.057] ...future.conditions[[length(...future.conditions) + [18:02:10.057] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.057] if (TRUE && !signal) { [18:02:10.057] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.057] { [18:02:10.057] inherits <- base::inherits [18:02:10.057] invokeRestart <- base::invokeRestart [18:02:10.057] is.null <- base::is.null [18:02:10.057] muffled <- FALSE [18:02:10.057] if (inherits(cond, "message")) { [18:02:10.057] muffled <- grepl(pattern, "muffleMessage") [18:02:10.057] if (muffled) [18:02:10.057] invokeRestart("muffleMessage") [18:02:10.057] } [18:02:10.057] else if (inherits(cond, "warning")) { [18:02:10.057] muffled <- grepl(pattern, "muffleWarning") [18:02:10.057] if (muffled) [18:02:10.057] invokeRestart("muffleWarning") [18:02:10.057] } [18:02:10.057] else if (inherits(cond, "condition")) { [18:02:10.057] if (!is.null(pattern)) { [18:02:10.057] computeRestarts <- base::computeRestarts [18:02:10.057] grepl <- base::grepl [18:02:10.057] restarts <- computeRestarts(cond) [18:02:10.057] for (restart in restarts) { [18:02:10.057] name <- restart$name [18:02:10.057] if (is.null(name)) [18:02:10.057] next [18:02:10.057] if (!grepl(pattern, name)) [18:02:10.057] next [18:02:10.057] invokeRestart(restart) [18:02:10.057] muffled <- TRUE [18:02:10.057] break [18:02:10.057] } [18:02:10.057] } [18:02:10.057] } [18:02:10.057] invisible(muffled) [18:02:10.057] } [18:02:10.057] muffleCondition(cond, pattern = "^muffle") [18:02:10.057] } [18:02:10.057] } [18:02:10.057] else { [18:02:10.057] if (TRUE) { [18:02:10.057] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.057] { [18:02:10.057] inherits <- base::inherits [18:02:10.057] invokeRestart <- base::invokeRestart [18:02:10.057] is.null <- base::is.null [18:02:10.057] muffled <- FALSE [18:02:10.057] if (inherits(cond, "message")) { [18:02:10.057] muffled <- grepl(pattern, "muffleMessage") [18:02:10.057] if (muffled) [18:02:10.057] invokeRestart("muffleMessage") [18:02:10.057] } [18:02:10.057] else if (inherits(cond, "warning")) { [18:02:10.057] muffled <- grepl(pattern, "muffleWarning") [18:02:10.057] if (muffled) [18:02:10.057] invokeRestart("muffleWarning") [18:02:10.057] } [18:02:10.057] else if (inherits(cond, "condition")) { [18:02:10.057] if (!is.null(pattern)) { [18:02:10.057] computeRestarts <- base::computeRestarts [18:02:10.057] grepl <- base::grepl [18:02:10.057] restarts <- computeRestarts(cond) [18:02:10.057] for (restart in restarts) { [18:02:10.057] name <- restart$name [18:02:10.057] if (is.null(name)) [18:02:10.057] next [18:02:10.057] if (!grepl(pattern, name)) [18:02:10.057] next [18:02:10.057] invokeRestart(restart) [18:02:10.057] muffled <- TRUE [18:02:10.057] break [18:02:10.057] } [18:02:10.057] } [18:02:10.057] } [18:02:10.057] invisible(muffled) [18:02:10.057] } [18:02:10.057] muffleCondition(cond, pattern = "^muffle") [18:02:10.057] } [18:02:10.057] } [18:02:10.057] } [18:02:10.057] })) [18:02:10.057] }, error = function(ex) { [18:02:10.057] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.057] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.057] ...future.rng), started = ...future.startTime, [18:02:10.057] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.057] version = "1.8"), class = "FutureResult") [18:02:10.057] }, finally = { [18:02:10.057] if (!identical(...future.workdir, getwd())) [18:02:10.057] setwd(...future.workdir) [18:02:10.057] { [18:02:10.057] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.057] ...future.oldOptions$nwarnings <- NULL [18:02:10.057] } [18:02:10.057] base::options(...future.oldOptions) [18:02:10.057] if (.Platform$OS.type == "windows") { [18:02:10.057] old_names <- names(...future.oldEnvVars) [18:02:10.057] envs <- base::Sys.getenv() [18:02:10.057] names <- names(envs) [18:02:10.057] common <- intersect(names, old_names) [18:02:10.057] added <- setdiff(names, old_names) [18:02:10.057] removed <- setdiff(old_names, names) [18:02:10.057] changed <- common[...future.oldEnvVars[common] != [18:02:10.057] envs[common]] [18:02:10.057] NAMES <- toupper(changed) [18:02:10.057] args <- list() [18:02:10.057] for (kk in seq_along(NAMES)) { [18:02:10.057] name <- changed[[kk]] [18:02:10.057] NAME <- NAMES[[kk]] [18:02:10.057] if (name != NAME && is.element(NAME, old_names)) [18:02:10.057] next [18:02:10.057] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.057] } [18:02:10.057] NAMES <- toupper(added) [18:02:10.057] for (kk in seq_along(NAMES)) { [18:02:10.057] name <- added[[kk]] [18:02:10.057] NAME <- NAMES[[kk]] [18:02:10.057] if (name != NAME && is.element(NAME, old_names)) [18:02:10.057] next [18:02:10.057] args[[name]] <- "" [18:02:10.057] } [18:02:10.057] NAMES <- toupper(removed) [18:02:10.057] for (kk in seq_along(NAMES)) { [18:02:10.057] name <- removed[[kk]] [18:02:10.057] NAME <- NAMES[[kk]] [18:02:10.057] if (name != NAME && is.element(NAME, old_names)) [18:02:10.057] next [18:02:10.057] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.057] } [18:02:10.057] if (length(args) > 0) [18:02:10.057] base::do.call(base::Sys.setenv, args = args) [18:02:10.057] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.057] } [18:02:10.057] else { [18:02:10.057] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.057] } [18:02:10.057] { [18:02:10.057] if (base::length(...future.futureOptionsAdded) > [18:02:10.057] 0L) { [18:02:10.057] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.057] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.057] base::options(opts) [18:02:10.057] } [18:02:10.057] { [18:02:10.057] { [18:02:10.057] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.057] NULL [18:02:10.057] } [18:02:10.057] options(future.plan = NULL) [18:02:10.057] if (is.na(NA_character_)) [18:02:10.057] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.057] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.057] future::plan(list(function (..., workers = 2L, [18:02:10.057] envir = parent.frame()) [18:02:10.057] strategy(..., workers = workers, envir = envir)), [18:02:10.057] .cleanup = FALSE, .init = FALSE) [18:02:10.057] } [18:02:10.057] } [18:02:10.057] } [18:02:10.057] }) [18:02:10.057] if (TRUE) { [18:02:10.057] base::sink(type = "output", split = FALSE) [18:02:10.057] if (TRUE) { [18:02:10.057] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.057] } [18:02:10.057] else { [18:02:10.057] ...future.result["stdout"] <- base::list(NULL) [18:02:10.057] } [18:02:10.057] base::close(...future.stdout) [18:02:10.057] ...future.stdout <- NULL [18:02:10.057] } [18:02:10.057] ...future.result$conditions <- ...future.conditions [18:02:10.057] ...future.result$finished <- base::Sys.time() [18:02:10.057] ...future.result [18:02:10.057] } [18:02:10.145] MultisessionFuture started [18:02:10.145] result() for ClusterFuture ... [18:02:10.146] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.146] - Validating connection of MultisessionFuture [18:02:10.219] - received message: FutureResult [18:02:10.219] - Received FutureResult [18:02:10.223] - Erased future from FutureRegistry [18:02:10.223] result() for ClusterFuture ... [18:02:10.223] - result already collected: FutureResult [18:02:10.224] result() for ClusterFuture ... done [18:02:10.224] receiveMessageFromWorker() for ClusterFuture ... done [18:02:10.224] result() for ClusterFuture ... done [18:02:10.224] result() for ClusterFuture ... [18:02:10.224] - result already collected: FutureResult [18:02:10.224] result() for ClusterFuture ... done [18:02:10.225] plan(): plan_init() of 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... DONE [18:02:10.225] plan(): nbrOfWorkers() = 2 > > message("*** future() - invalid ownership ...") *** future() - invalid ownership ... > > ## This R process > session_uuid <- future:::session_uuid(attributes = TRUE) > cat(sprintf("Main R process: %s\n", session_uuid)) Main R process: a5c6de4e-598d-8aa8-f321-f3a534fd5dec > > message("- Asserting ownership ...") - Asserting ownership ... > > message("Creating future #1:") Creating future #1: > f1 <- future({ future:::session_uuid(attributes = TRUE) }) [18:02:10.226] getGlobalsAndPackages() ... [18:02:10.226] Searching for globals... [18:02:10.235] - globals found: [2] '{', ':::' [18:02:10.235] Searching for globals ... DONE [18:02:10.235] Resolving globals: FALSE [18:02:10.236] [18:02:10.236] [18:02:10.236] getGlobalsAndPackages() ... DONE [18:02:10.237] run() for 'Future' ... [18:02:10.237] - state: 'created' [18:02:10.237] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:10.250] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:10.250] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:10.250] - Field: 'node' [18:02:10.250] - Field: 'label' [18:02:10.250] - Field: 'local' [18:02:10.251] - Field: 'owner' [18:02:10.251] - Field: 'envir' [18:02:10.251] - Field: 'workers' [18:02:10.251] - Field: 'packages' [18:02:10.251] - Field: 'gc' [18:02:10.252] - Field: 'conditions' [18:02:10.252] - Field: 'persistent' [18:02:10.252] - Field: 'expr' [18:02:10.252] - Field: 'uuid' [18:02:10.252] - Field: 'seed' [18:02:10.253] - Field: 'version' [18:02:10.253] - Field: 'result' [18:02:10.253] - Field: 'asynchronous' [18:02:10.253] - Field: 'calls' [18:02:10.253] - Field: 'globals' [18:02:10.254] - Field: 'stdout' [18:02:10.254] - Field: 'earlySignal' [18:02:10.254] - Field: 'lazy' [18:02:10.254] - Field: 'state' [18:02:10.254] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:10.255] - Launch lazy future ... [18:02:10.255] Packages needed by the future expression (n = 0): [18:02:10.255] Packages needed by future strategies (n = 0): [18:02:10.256] { [18:02:10.256] { [18:02:10.256] { [18:02:10.256] ...future.startTime <- base::Sys.time() [18:02:10.256] { [18:02:10.256] { [18:02:10.256] { [18:02:10.256] { [18:02:10.256] base::local({ [18:02:10.256] has_future <- base::requireNamespace("future", [18:02:10.256] quietly = TRUE) [18:02:10.256] if (has_future) { [18:02:10.256] ns <- base::getNamespace("future") [18:02:10.256] version <- ns[[".package"]][["version"]] [18:02:10.256] if (is.null(version)) [18:02:10.256] version <- utils::packageVersion("future") [18:02:10.256] } [18:02:10.256] else { [18:02:10.256] version <- NULL [18:02:10.256] } [18:02:10.256] if (!has_future || version < "1.8.0") { [18:02:10.256] info <- base::c(r_version = base::gsub("R version ", [18:02:10.256] "", base::R.version$version.string), [18:02:10.256] platform = base::sprintf("%s (%s-bit)", [18:02:10.256] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:10.256] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.256] "release", "version")], collapse = " "), [18:02:10.256] hostname = base::Sys.info()[["nodename"]]) [18:02:10.256] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.256] info) [18:02:10.256] info <- base::paste(info, collapse = "; ") [18:02:10.256] if (!has_future) { [18:02:10.256] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.256] info) [18:02:10.256] } [18:02:10.256] else { [18:02:10.256] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.256] info, version) [18:02:10.256] } [18:02:10.256] base::stop(msg) [18:02:10.256] } [18:02:10.256] }) [18:02:10.256] } [18:02:10.256] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.256] base::options(mc.cores = 1L) [18:02:10.256] } [18:02:10.256] options(future.plan = NULL) [18:02:10.256] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.256] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.256] } [18:02:10.256] ...future.workdir <- getwd() [18:02:10.256] } [18:02:10.256] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.256] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.256] } [18:02:10.256] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.256] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.256] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.256] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.256] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.256] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.256] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.256] base::names(...future.oldOptions)) [18:02:10.256] } [18:02:10.256] if (FALSE) { [18:02:10.256] } [18:02:10.256] else { [18:02:10.256] if (TRUE) { [18:02:10.256] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.256] open = "w") [18:02:10.256] } [18:02:10.256] else { [18:02:10.256] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.256] windows = "NUL", "/dev/null"), open = "w") [18:02:10.256] } [18:02:10.256] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.256] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.256] base::sink(type = "output", split = FALSE) [18:02:10.256] base::close(...future.stdout) [18:02:10.256] }, add = TRUE) [18:02:10.256] } [18:02:10.256] ...future.frame <- base::sys.nframe() [18:02:10.256] ...future.conditions <- base::list() [18:02:10.256] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.256] if (FALSE) { [18:02:10.256] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.256] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.256] } [18:02:10.256] ...future.result <- base::tryCatch({ [18:02:10.256] base::withCallingHandlers({ [18:02:10.256] ...future.value <- base::withVisible(base::local({ [18:02:10.256] ...future.makeSendCondition <- local({ [18:02:10.256] sendCondition <- NULL [18:02:10.256] function(frame = 1L) { [18:02:10.256] if (is.function(sendCondition)) [18:02:10.256] return(sendCondition) [18:02:10.256] ns <- getNamespace("parallel") [18:02:10.256] if (exists("sendData", mode = "function", [18:02:10.256] envir = ns)) { [18:02:10.256] parallel_sendData <- get("sendData", mode = "function", [18:02:10.256] envir = ns) [18:02:10.256] envir <- sys.frame(frame) [18:02:10.256] master <- NULL [18:02:10.256] while (!identical(envir, .GlobalEnv) && [18:02:10.256] !identical(envir, emptyenv())) { [18:02:10.256] if (exists("master", mode = "list", envir = envir, [18:02:10.256] inherits = FALSE)) { [18:02:10.256] master <- get("master", mode = "list", [18:02:10.256] envir = envir, inherits = FALSE) [18:02:10.256] if (inherits(master, c("SOCKnode", [18:02:10.256] "SOCK0node"))) { [18:02:10.256] sendCondition <<- function(cond) { [18:02:10.256] data <- list(type = "VALUE", value = cond, [18:02:10.256] success = TRUE) [18:02:10.256] parallel_sendData(master, data) [18:02:10.256] } [18:02:10.256] return(sendCondition) [18:02:10.256] } [18:02:10.256] } [18:02:10.256] frame <- frame + 1L [18:02:10.256] envir <- sys.frame(frame) [18:02:10.256] } [18:02:10.256] } [18:02:10.256] sendCondition <<- function(cond) NULL [18:02:10.256] } [18:02:10.256] }) [18:02:10.256] withCallingHandlers({ [18:02:10.256] { [18:02:10.256] future:::session_uuid(attributes = TRUE) [18:02:10.256] } [18:02:10.256] }, immediateCondition = function(cond) { [18:02:10.256] sendCondition <- ...future.makeSendCondition() [18:02:10.256] sendCondition(cond) [18:02:10.256] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.256] { [18:02:10.256] inherits <- base::inherits [18:02:10.256] invokeRestart <- base::invokeRestart [18:02:10.256] is.null <- base::is.null [18:02:10.256] muffled <- FALSE [18:02:10.256] if (inherits(cond, "message")) { [18:02:10.256] muffled <- grepl(pattern, "muffleMessage") [18:02:10.256] if (muffled) [18:02:10.256] invokeRestart("muffleMessage") [18:02:10.256] } [18:02:10.256] else if (inherits(cond, "warning")) { [18:02:10.256] muffled <- grepl(pattern, "muffleWarning") [18:02:10.256] if (muffled) [18:02:10.256] invokeRestart("muffleWarning") [18:02:10.256] } [18:02:10.256] else if (inherits(cond, "condition")) { [18:02:10.256] if (!is.null(pattern)) { [18:02:10.256] computeRestarts <- base::computeRestarts [18:02:10.256] grepl <- base::grepl [18:02:10.256] restarts <- computeRestarts(cond) [18:02:10.256] for (restart in restarts) { [18:02:10.256] name <- restart$name [18:02:10.256] if (is.null(name)) [18:02:10.256] next [18:02:10.256] if (!grepl(pattern, name)) [18:02:10.256] next [18:02:10.256] invokeRestart(restart) [18:02:10.256] muffled <- TRUE [18:02:10.256] break [18:02:10.256] } [18:02:10.256] } [18:02:10.256] } [18:02:10.256] invisible(muffled) [18:02:10.256] } [18:02:10.256] muffleCondition(cond) [18:02:10.256] }) [18:02:10.256] })) [18:02:10.256] future::FutureResult(value = ...future.value$value, [18:02:10.256] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.256] ...future.rng), globalenv = if (FALSE) [18:02:10.256] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.256] ...future.globalenv.names)) [18:02:10.256] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.256] }, condition = base::local({ [18:02:10.256] c <- base::c [18:02:10.256] inherits <- base::inherits [18:02:10.256] invokeRestart <- base::invokeRestart [18:02:10.256] length <- base::length [18:02:10.256] list <- base::list [18:02:10.256] seq.int <- base::seq.int [18:02:10.256] signalCondition <- base::signalCondition [18:02:10.256] sys.calls <- base::sys.calls [18:02:10.256] `[[` <- base::`[[` [18:02:10.256] `+` <- base::`+` [18:02:10.256] `<<-` <- base::`<<-` [18:02:10.256] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.256] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.256] 3L)] [18:02:10.256] } [18:02:10.256] function(cond) { [18:02:10.256] is_error <- inherits(cond, "error") [18:02:10.256] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.256] NULL) [18:02:10.256] if (is_error) { [18:02:10.256] sessionInformation <- function() { [18:02:10.256] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.256] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.256] search = base::search(), system = base::Sys.info()) [18:02:10.256] } [18:02:10.256] ...future.conditions[[length(...future.conditions) + [18:02:10.256] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.256] cond$call), session = sessionInformation(), [18:02:10.256] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.256] signalCondition(cond) [18:02:10.256] } [18:02:10.256] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.256] "immediateCondition"))) { [18:02:10.256] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.256] ...future.conditions[[length(...future.conditions) + [18:02:10.256] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.256] if (TRUE && !signal) { [18:02:10.256] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.256] { [18:02:10.256] inherits <- base::inherits [18:02:10.256] invokeRestart <- base::invokeRestart [18:02:10.256] is.null <- base::is.null [18:02:10.256] muffled <- FALSE [18:02:10.256] if (inherits(cond, "message")) { [18:02:10.256] muffled <- grepl(pattern, "muffleMessage") [18:02:10.256] if (muffled) [18:02:10.256] invokeRestart("muffleMessage") [18:02:10.256] } [18:02:10.256] else if (inherits(cond, "warning")) { [18:02:10.256] muffled <- grepl(pattern, "muffleWarning") [18:02:10.256] if (muffled) [18:02:10.256] invokeRestart("muffleWarning") [18:02:10.256] } [18:02:10.256] else if (inherits(cond, "condition")) { [18:02:10.256] if (!is.null(pattern)) { [18:02:10.256] computeRestarts <- base::computeRestarts [18:02:10.256] grepl <- base::grepl [18:02:10.256] restarts <- computeRestarts(cond) [18:02:10.256] for (restart in restarts) { [18:02:10.256] name <- restart$name [18:02:10.256] if (is.null(name)) [18:02:10.256] next [18:02:10.256] if (!grepl(pattern, name)) [18:02:10.256] next [18:02:10.256] invokeRestart(restart) [18:02:10.256] muffled <- TRUE [18:02:10.256] break [18:02:10.256] } [18:02:10.256] } [18:02:10.256] } [18:02:10.256] invisible(muffled) [18:02:10.256] } [18:02:10.256] muffleCondition(cond, pattern = "^muffle") [18:02:10.256] } [18:02:10.256] } [18:02:10.256] else { [18:02:10.256] if (TRUE) { [18:02:10.256] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.256] { [18:02:10.256] inherits <- base::inherits [18:02:10.256] invokeRestart <- base::invokeRestart [18:02:10.256] is.null <- base::is.null [18:02:10.256] muffled <- FALSE [18:02:10.256] if (inherits(cond, "message")) { [18:02:10.256] muffled <- grepl(pattern, "muffleMessage") [18:02:10.256] if (muffled) [18:02:10.256] invokeRestart("muffleMessage") [18:02:10.256] } [18:02:10.256] else if (inherits(cond, "warning")) { [18:02:10.256] muffled <- grepl(pattern, "muffleWarning") [18:02:10.256] if (muffled) [18:02:10.256] invokeRestart("muffleWarning") [18:02:10.256] } [18:02:10.256] else if (inherits(cond, "condition")) { [18:02:10.256] if (!is.null(pattern)) { [18:02:10.256] computeRestarts <- base::computeRestarts [18:02:10.256] grepl <- base::grepl [18:02:10.256] restarts <- computeRestarts(cond) [18:02:10.256] for (restart in restarts) { [18:02:10.256] name <- restart$name [18:02:10.256] if (is.null(name)) [18:02:10.256] next [18:02:10.256] if (!grepl(pattern, name)) [18:02:10.256] next [18:02:10.256] invokeRestart(restart) [18:02:10.256] muffled <- TRUE [18:02:10.256] break [18:02:10.256] } [18:02:10.256] } [18:02:10.256] } [18:02:10.256] invisible(muffled) [18:02:10.256] } [18:02:10.256] muffleCondition(cond, pattern = "^muffle") [18:02:10.256] } [18:02:10.256] } [18:02:10.256] } [18:02:10.256] })) [18:02:10.256] }, error = function(ex) { [18:02:10.256] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.256] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.256] ...future.rng), started = ...future.startTime, [18:02:10.256] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.256] version = "1.8"), class = "FutureResult") [18:02:10.256] }, finally = { [18:02:10.256] if (!identical(...future.workdir, getwd())) [18:02:10.256] setwd(...future.workdir) [18:02:10.256] { [18:02:10.256] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.256] ...future.oldOptions$nwarnings <- NULL [18:02:10.256] } [18:02:10.256] base::options(...future.oldOptions) [18:02:10.256] if (.Platform$OS.type == "windows") { [18:02:10.256] old_names <- names(...future.oldEnvVars) [18:02:10.256] envs <- base::Sys.getenv() [18:02:10.256] names <- names(envs) [18:02:10.256] common <- intersect(names, old_names) [18:02:10.256] added <- setdiff(names, old_names) [18:02:10.256] removed <- setdiff(old_names, names) [18:02:10.256] changed <- common[...future.oldEnvVars[common] != [18:02:10.256] envs[common]] [18:02:10.256] NAMES <- toupper(changed) [18:02:10.256] args <- list() [18:02:10.256] for (kk in seq_along(NAMES)) { [18:02:10.256] name <- changed[[kk]] [18:02:10.256] NAME <- NAMES[[kk]] [18:02:10.256] if (name != NAME && is.element(NAME, old_names)) [18:02:10.256] next [18:02:10.256] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.256] } [18:02:10.256] NAMES <- toupper(added) [18:02:10.256] for (kk in seq_along(NAMES)) { [18:02:10.256] name <- added[[kk]] [18:02:10.256] NAME <- NAMES[[kk]] [18:02:10.256] if (name != NAME && is.element(NAME, old_names)) [18:02:10.256] next [18:02:10.256] args[[name]] <- "" [18:02:10.256] } [18:02:10.256] NAMES <- toupper(removed) [18:02:10.256] for (kk in seq_along(NAMES)) { [18:02:10.256] name <- removed[[kk]] [18:02:10.256] NAME <- NAMES[[kk]] [18:02:10.256] if (name != NAME && is.element(NAME, old_names)) [18:02:10.256] next [18:02:10.256] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.256] } [18:02:10.256] if (length(args) > 0) [18:02:10.256] base::do.call(base::Sys.setenv, args = args) [18:02:10.256] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.256] } [18:02:10.256] else { [18:02:10.256] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.256] } [18:02:10.256] { [18:02:10.256] if (base::length(...future.futureOptionsAdded) > [18:02:10.256] 0L) { [18:02:10.256] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.256] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.256] base::options(opts) [18:02:10.256] } [18:02:10.256] { [18:02:10.256] { [18:02:10.256] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.256] NULL [18:02:10.256] } [18:02:10.256] options(future.plan = NULL) [18:02:10.256] if (is.na(NA_character_)) [18:02:10.256] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.256] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.256] future::plan(list(function (..., workers = 2L, [18:02:10.256] envir = parent.frame()) [18:02:10.256] strategy(..., workers = workers, envir = envir)), [18:02:10.256] .cleanup = FALSE, .init = FALSE) [18:02:10.256] } [18:02:10.256] } [18:02:10.256] } [18:02:10.256] }) [18:02:10.256] if (TRUE) { [18:02:10.256] base::sink(type = "output", split = FALSE) [18:02:10.256] if (TRUE) { [18:02:10.256] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.256] } [18:02:10.256] else { [18:02:10.256] ...future.result["stdout"] <- base::list(NULL) [18:02:10.256] } [18:02:10.256] base::close(...future.stdout) [18:02:10.256] ...future.stdout <- NULL [18:02:10.256] } [18:02:10.256] ...future.result$conditions <- ...future.conditions [18:02:10.256] ...future.result$finished <- base::Sys.time() [18:02:10.256] ...future.result [18:02:10.256] } [18:02:10.262] MultisessionFuture started [18:02:10.262] - Launch lazy future ... done [18:02:10.262] run() for 'MultisessionFuture' ... done > stopifnot(inherits(f1, "MultisessionFuture")) > cat(sprintf("Future #1 session: %d\n", f1$node)) Future #1 session: 1 > v1 <- value(f1) [18:02:10.263] result() for ClusterFuture ... [18:02:10.263] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.263] - Validating connection of MultisessionFuture [18:02:10.290] - received message: FutureResult [18:02:10.291] - Received FutureResult [18:02:10.291] - Erased future from FutureRegistry [18:02:10.291] result() for ClusterFuture ... [18:02:10.291] - result already collected: FutureResult [18:02:10.291] result() for ClusterFuture ... done [18:02:10.292] receiveMessageFromWorker() for ClusterFuture ... done [18:02:10.292] result() for ClusterFuture ... done [18:02:10.292] result() for ClusterFuture ... [18:02:10.292] - result already collected: FutureResult [18:02:10.293] result() for ClusterFuture ... done > cat(sprintf("Future #1 R process: %s\n", v1)) Future #1 R process: ae600b2f-5632-e041-501b-914bb62c3e63 > stopifnot(v1 != session_uuid) > > message("Creating future #2:") Creating future #2: > f2 <- future({ future:::session_uuid(attributes = TRUE) }) [18:02:10.293] getGlobalsAndPackages() ... [18:02:10.293] Searching for globals... [18:02:10.294] - globals found: [2] '{', ':::' [18:02:10.295] Searching for globals ... DONE [18:02:10.295] Resolving globals: FALSE [18:02:10.295] [18:02:10.295] [18:02:10.296] getGlobalsAndPackages() ... DONE [18:02:10.296] run() for 'Future' ... [18:02:10.296] - state: 'created' [18:02:10.296] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:10.308] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:10.309] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:10.309] - Field: 'node' [18:02:10.309] - Field: 'label' [18:02:10.309] - Field: 'local' [18:02:10.310] - Field: 'owner' [18:02:10.310] - Field: 'envir' [18:02:10.310] - Field: 'workers' [18:02:10.310] - Field: 'packages' [18:02:10.310] - Field: 'gc' [18:02:10.310] - Field: 'conditions' [18:02:10.314] - Field: 'persistent' [18:02:10.314] - Field: 'expr' [18:02:10.314] - Field: 'uuid' [18:02:10.314] - Field: 'seed' [18:02:10.315] - Field: 'version' [18:02:10.315] - Field: 'result' [18:02:10.315] - Field: 'asynchronous' [18:02:10.315] - Field: 'calls' [18:02:10.315] - Field: 'globals' [18:02:10.316] - Field: 'stdout' [18:02:10.316] - Field: 'earlySignal' [18:02:10.316] - Field: 'lazy' [18:02:10.316] - Field: 'state' [18:02:10.316] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:10.316] - Launch lazy future ... [18:02:10.317] Packages needed by the future expression (n = 0): [18:02:10.317] Packages needed by future strategies (n = 0): [18:02:10.318] { [18:02:10.318] { [18:02:10.318] { [18:02:10.318] ...future.startTime <- base::Sys.time() [18:02:10.318] { [18:02:10.318] { [18:02:10.318] { [18:02:10.318] { [18:02:10.318] base::local({ [18:02:10.318] has_future <- base::requireNamespace("future", [18:02:10.318] quietly = TRUE) [18:02:10.318] if (has_future) { [18:02:10.318] ns <- base::getNamespace("future") [18:02:10.318] version <- ns[[".package"]][["version"]] [18:02:10.318] if (is.null(version)) [18:02:10.318] version <- utils::packageVersion("future") [18:02:10.318] } [18:02:10.318] else { [18:02:10.318] version <- NULL [18:02:10.318] } [18:02:10.318] if (!has_future || version < "1.8.0") { [18:02:10.318] info <- base::c(r_version = base::gsub("R version ", [18:02:10.318] "", base::R.version$version.string), [18:02:10.318] platform = base::sprintf("%s (%s-bit)", [18:02:10.318] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:10.318] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.318] "release", "version")], collapse = " "), [18:02:10.318] hostname = base::Sys.info()[["nodename"]]) [18:02:10.318] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.318] info) [18:02:10.318] info <- base::paste(info, collapse = "; ") [18:02:10.318] if (!has_future) { [18:02:10.318] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.318] info) [18:02:10.318] } [18:02:10.318] else { [18:02:10.318] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.318] info, version) [18:02:10.318] } [18:02:10.318] base::stop(msg) [18:02:10.318] } [18:02:10.318] }) [18:02:10.318] } [18:02:10.318] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.318] base::options(mc.cores = 1L) [18:02:10.318] } [18:02:10.318] options(future.plan = NULL) [18:02:10.318] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.318] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.318] } [18:02:10.318] ...future.workdir <- getwd() [18:02:10.318] } [18:02:10.318] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.318] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.318] } [18:02:10.318] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.318] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.318] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.318] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.318] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.318] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.318] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.318] base::names(...future.oldOptions)) [18:02:10.318] } [18:02:10.318] if (FALSE) { [18:02:10.318] } [18:02:10.318] else { [18:02:10.318] if (TRUE) { [18:02:10.318] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.318] open = "w") [18:02:10.318] } [18:02:10.318] else { [18:02:10.318] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.318] windows = "NUL", "/dev/null"), open = "w") [18:02:10.318] } [18:02:10.318] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.318] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.318] base::sink(type = "output", split = FALSE) [18:02:10.318] base::close(...future.stdout) [18:02:10.318] }, add = TRUE) [18:02:10.318] } [18:02:10.318] ...future.frame <- base::sys.nframe() [18:02:10.318] ...future.conditions <- base::list() [18:02:10.318] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.318] if (FALSE) { [18:02:10.318] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.318] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.318] } [18:02:10.318] ...future.result <- base::tryCatch({ [18:02:10.318] base::withCallingHandlers({ [18:02:10.318] ...future.value <- base::withVisible(base::local({ [18:02:10.318] ...future.makeSendCondition <- local({ [18:02:10.318] sendCondition <- NULL [18:02:10.318] function(frame = 1L) { [18:02:10.318] if (is.function(sendCondition)) [18:02:10.318] return(sendCondition) [18:02:10.318] ns <- getNamespace("parallel") [18:02:10.318] if (exists("sendData", mode = "function", [18:02:10.318] envir = ns)) { [18:02:10.318] parallel_sendData <- get("sendData", mode = "function", [18:02:10.318] envir = ns) [18:02:10.318] envir <- sys.frame(frame) [18:02:10.318] master <- NULL [18:02:10.318] while (!identical(envir, .GlobalEnv) && [18:02:10.318] !identical(envir, emptyenv())) { [18:02:10.318] if (exists("master", mode = "list", envir = envir, [18:02:10.318] inherits = FALSE)) { [18:02:10.318] master <- get("master", mode = "list", [18:02:10.318] envir = envir, inherits = FALSE) [18:02:10.318] if (inherits(master, c("SOCKnode", [18:02:10.318] "SOCK0node"))) { [18:02:10.318] sendCondition <<- function(cond) { [18:02:10.318] data <- list(type = "VALUE", value = cond, [18:02:10.318] success = TRUE) [18:02:10.318] parallel_sendData(master, data) [18:02:10.318] } [18:02:10.318] return(sendCondition) [18:02:10.318] } [18:02:10.318] } [18:02:10.318] frame <- frame + 1L [18:02:10.318] envir <- sys.frame(frame) [18:02:10.318] } [18:02:10.318] } [18:02:10.318] sendCondition <<- function(cond) NULL [18:02:10.318] } [18:02:10.318] }) [18:02:10.318] withCallingHandlers({ [18:02:10.318] { [18:02:10.318] future:::session_uuid(attributes = TRUE) [18:02:10.318] } [18:02:10.318] }, immediateCondition = function(cond) { [18:02:10.318] sendCondition <- ...future.makeSendCondition() [18:02:10.318] sendCondition(cond) [18:02:10.318] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.318] { [18:02:10.318] inherits <- base::inherits [18:02:10.318] invokeRestart <- base::invokeRestart [18:02:10.318] is.null <- base::is.null [18:02:10.318] muffled <- FALSE [18:02:10.318] if (inherits(cond, "message")) { [18:02:10.318] muffled <- grepl(pattern, "muffleMessage") [18:02:10.318] if (muffled) [18:02:10.318] invokeRestart("muffleMessage") [18:02:10.318] } [18:02:10.318] else if (inherits(cond, "warning")) { [18:02:10.318] muffled <- grepl(pattern, "muffleWarning") [18:02:10.318] if (muffled) [18:02:10.318] invokeRestart("muffleWarning") [18:02:10.318] } [18:02:10.318] else if (inherits(cond, "condition")) { [18:02:10.318] if (!is.null(pattern)) { [18:02:10.318] computeRestarts <- base::computeRestarts [18:02:10.318] grepl <- base::grepl [18:02:10.318] restarts <- computeRestarts(cond) [18:02:10.318] for (restart in restarts) { [18:02:10.318] name <- restart$name [18:02:10.318] if (is.null(name)) [18:02:10.318] next [18:02:10.318] if (!grepl(pattern, name)) [18:02:10.318] next [18:02:10.318] invokeRestart(restart) [18:02:10.318] muffled <- TRUE [18:02:10.318] break [18:02:10.318] } [18:02:10.318] } [18:02:10.318] } [18:02:10.318] invisible(muffled) [18:02:10.318] } [18:02:10.318] muffleCondition(cond) [18:02:10.318] }) [18:02:10.318] })) [18:02:10.318] future::FutureResult(value = ...future.value$value, [18:02:10.318] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.318] ...future.rng), globalenv = if (FALSE) [18:02:10.318] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.318] ...future.globalenv.names)) [18:02:10.318] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.318] }, condition = base::local({ [18:02:10.318] c <- base::c [18:02:10.318] inherits <- base::inherits [18:02:10.318] invokeRestart <- base::invokeRestart [18:02:10.318] length <- base::length [18:02:10.318] list <- base::list [18:02:10.318] seq.int <- base::seq.int [18:02:10.318] signalCondition <- base::signalCondition [18:02:10.318] sys.calls <- base::sys.calls [18:02:10.318] `[[` <- base::`[[` [18:02:10.318] `+` <- base::`+` [18:02:10.318] `<<-` <- base::`<<-` [18:02:10.318] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.318] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.318] 3L)] [18:02:10.318] } [18:02:10.318] function(cond) { [18:02:10.318] is_error <- inherits(cond, "error") [18:02:10.318] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.318] NULL) [18:02:10.318] if (is_error) { [18:02:10.318] sessionInformation <- function() { [18:02:10.318] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.318] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.318] search = base::search(), system = base::Sys.info()) [18:02:10.318] } [18:02:10.318] ...future.conditions[[length(...future.conditions) + [18:02:10.318] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.318] cond$call), session = sessionInformation(), [18:02:10.318] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.318] signalCondition(cond) [18:02:10.318] } [18:02:10.318] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.318] "immediateCondition"))) { [18:02:10.318] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.318] ...future.conditions[[length(...future.conditions) + [18:02:10.318] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.318] if (TRUE && !signal) { [18:02:10.318] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.318] { [18:02:10.318] inherits <- base::inherits [18:02:10.318] invokeRestart <- base::invokeRestart [18:02:10.318] is.null <- base::is.null [18:02:10.318] muffled <- FALSE [18:02:10.318] if (inherits(cond, "message")) { [18:02:10.318] muffled <- grepl(pattern, "muffleMessage") [18:02:10.318] if (muffled) [18:02:10.318] invokeRestart("muffleMessage") [18:02:10.318] } [18:02:10.318] else if (inherits(cond, "warning")) { [18:02:10.318] muffled <- grepl(pattern, "muffleWarning") [18:02:10.318] if (muffled) [18:02:10.318] invokeRestart("muffleWarning") [18:02:10.318] } [18:02:10.318] else if (inherits(cond, "condition")) { [18:02:10.318] if (!is.null(pattern)) { [18:02:10.318] computeRestarts <- base::computeRestarts [18:02:10.318] grepl <- base::grepl [18:02:10.318] restarts <- computeRestarts(cond) [18:02:10.318] for (restart in restarts) { [18:02:10.318] name <- restart$name [18:02:10.318] if (is.null(name)) [18:02:10.318] next [18:02:10.318] if (!grepl(pattern, name)) [18:02:10.318] next [18:02:10.318] invokeRestart(restart) [18:02:10.318] muffled <- TRUE [18:02:10.318] break [18:02:10.318] } [18:02:10.318] } [18:02:10.318] } [18:02:10.318] invisible(muffled) [18:02:10.318] } [18:02:10.318] muffleCondition(cond, pattern = "^muffle") [18:02:10.318] } [18:02:10.318] } [18:02:10.318] else { [18:02:10.318] if (TRUE) { [18:02:10.318] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.318] { [18:02:10.318] inherits <- base::inherits [18:02:10.318] invokeRestart <- base::invokeRestart [18:02:10.318] is.null <- base::is.null [18:02:10.318] muffled <- FALSE [18:02:10.318] if (inherits(cond, "message")) { [18:02:10.318] muffled <- grepl(pattern, "muffleMessage") [18:02:10.318] if (muffled) [18:02:10.318] invokeRestart("muffleMessage") [18:02:10.318] } [18:02:10.318] else if (inherits(cond, "warning")) { [18:02:10.318] muffled <- grepl(pattern, "muffleWarning") [18:02:10.318] if (muffled) [18:02:10.318] invokeRestart("muffleWarning") [18:02:10.318] } [18:02:10.318] else if (inherits(cond, "condition")) { [18:02:10.318] if (!is.null(pattern)) { [18:02:10.318] computeRestarts <- base::computeRestarts [18:02:10.318] grepl <- base::grepl [18:02:10.318] restarts <- computeRestarts(cond) [18:02:10.318] for (restart in restarts) { [18:02:10.318] name <- restart$name [18:02:10.318] if (is.null(name)) [18:02:10.318] next [18:02:10.318] if (!grepl(pattern, name)) [18:02:10.318] next [18:02:10.318] invokeRestart(restart) [18:02:10.318] muffled <- TRUE [18:02:10.318] break [18:02:10.318] } [18:02:10.318] } [18:02:10.318] } [18:02:10.318] invisible(muffled) [18:02:10.318] } [18:02:10.318] muffleCondition(cond, pattern = "^muffle") [18:02:10.318] } [18:02:10.318] } [18:02:10.318] } [18:02:10.318] })) [18:02:10.318] }, error = function(ex) { [18:02:10.318] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.318] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.318] ...future.rng), started = ...future.startTime, [18:02:10.318] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.318] version = "1.8"), class = "FutureResult") [18:02:10.318] }, finally = { [18:02:10.318] if (!identical(...future.workdir, getwd())) [18:02:10.318] setwd(...future.workdir) [18:02:10.318] { [18:02:10.318] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.318] ...future.oldOptions$nwarnings <- NULL [18:02:10.318] } [18:02:10.318] base::options(...future.oldOptions) [18:02:10.318] if (.Platform$OS.type == "windows") { [18:02:10.318] old_names <- names(...future.oldEnvVars) [18:02:10.318] envs <- base::Sys.getenv() [18:02:10.318] names <- names(envs) [18:02:10.318] common <- intersect(names, old_names) [18:02:10.318] added <- setdiff(names, old_names) [18:02:10.318] removed <- setdiff(old_names, names) [18:02:10.318] changed <- common[...future.oldEnvVars[common] != [18:02:10.318] envs[common]] [18:02:10.318] NAMES <- toupper(changed) [18:02:10.318] args <- list() [18:02:10.318] for (kk in seq_along(NAMES)) { [18:02:10.318] name <- changed[[kk]] [18:02:10.318] NAME <- NAMES[[kk]] [18:02:10.318] if (name != NAME && is.element(NAME, old_names)) [18:02:10.318] next [18:02:10.318] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.318] } [18:02:10.318] NAMES <- toupper(added) [18:02:10.318] for (kk in seq_along(NAMES)) { [18:02:10.318] name <- added[[kk]] [18:02:10.318] NAME <- NAMES[[kk]] [18:02:10.318] if (name != NAME && is.element(NAME, old_names)) [18:02:10.318] next [18:02:10.318] args[[name]] <- "" [18:02:10.318] } [18:02:10.318] NAMES <- toupper(removed) [18:02:10.318] for (kk in seq_along(NAMES)) { [18:02:10.318] name <- removed[[kk]] [18:02:10.318] NAME <- NAMES[[kk]] [18:02:10.318] if (name != NAME && is.element(NAME, old_names)) [18:02:10.318] next [18:02:10.318] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.318] } [18:02:10.318] if (length(args) > 0) [18:02:10.318] base::do.call(base::Sys.setenv, args = args) [18:02:10.318] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.318] } [18:02:10.318] else { [18:02:10.318] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.318] } [18:02:10.318] { [18:02:10.318] if (base::length(...future.futureOptionsAdded) > [18:02:10.318] 0L) { [18:02:10.318] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.318] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.318] base::options(opts) [18:02:10.318] } [18:02:10.318] { [18:02:10.318] { [18:02:10.318] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.318] NULL [18:02:10.318] } [18:02:10.318] options(future.plan = NULL) [18:02:10.318] if (is.na(NA_character_)) [18:02:10.318] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.318] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.318] future::plan(list(function (..., workers = 2L, [18:02:10.318] envir = parent.frame()) [18:02:10.318] strategy(..., workers = workers, envir = envir)), [18:02:10.318] .cleanup = FALSE, .init = FALSE) [18:02:10.318] } [18:02:10.318] } [18:02:10.318] } [18:02:10.318] }) [18:02:10.318] if (TRUE) { [18:02:10.318] base::sink(type = "output", split = FALSE) [18:02:10.318] if (TRUE) { [18:02:10.318] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.318] } [18:02:10.318] else { [18:02:10.318] ...future.result["stdout"] <- base::list(NULL) [18:02:10.318] } [18:02:10.318] base::close(...future.stdout) [18:02:10.318] ...future.stdout <- NULL [18:02:10.318] } [18:02:10.318] ...future.result$conditions <- ...future.conditions [18:02:10.318] ...future.result$finished <- base::Sys.time() [18:02:10.318] ...future.result [18:02:10.318] } [18:02:10.323] MultisessionFuture started [18:02:10.323] - Launch lazy future ... done [18:02:10.323] run() for 'MultisessionFuture' ... done > stopifnot(inherits(f2, "MultisessionFuture")) > cat(sprintf("Future #2 session: %d\n", f2$node)) Future #2 session: 1 > v2 <- value(f2) [18:02:10.324] result() for ClusterFuture ... [18:02:10.324] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.324] - Validating connection of MultisessionFuture [18:02:10.347] - received message: FutureResult [18:02:10.347] - Received FutureResult [18:02:10.347] - Erased future from FutureRegistry [18:02:10.348] result() for ClusterFuture ... [18:02:10.348] - result already collected: FutureResult [18:02:10.348] result() for ClusterFuture ... done [18:02:10.348] receiveMessageFromWorker() for ClusterFuture ... done [18:02:10.348] result() for ClusterFuture ... done [18:02:10.348] result() for ClusterFuture ... [18:02:10.349] - result already collected: FutureResult [18:02:10.349] result() for ClusterFuture ... done > cat(sprintf("Future #2 R process: %s\n", v2)) Future #2 R process: ae600b2f-5632-e041-501b-914bb62c3e63 > stopifnot(v2 != session_uuid) > > message("Creating future #3:") Creating future #3: > f3 <- future({ f1$owner }) [18:02:10.349] getGlobalsAndPackages() ... [18:02:10.349] Searching for globals... [18:02:10.350] - globals found: [3] '{', '$', 'f1' [18:02:10.351] Searching for globals ... DONE [18:02:10.351] Resolving globals: FALSE [18:02:10.354] The total size of the 1 globals is 1.58 MiB (1651640 bytes) [18:02:10.355] The total size of the 1 globals exported for future expression ('{; f1$owner; }') is 1.58 MiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'f1' (1.58 MiB of class 'environment') [18:02:10.355] - globals: [1] 'f1' [18:02:10.355] [18:02:10.355] getGlobalsAndPackages() ... DONE [18:02:10.356] run() for 'Future' ... [18:02:10.356] - state: 'created' [18:02:10.356] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:10.368] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:10.368] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:10.368] - Field: 'node' [18:02:10.368] - Field: 'label' [18:02:10.368] - Field: 'local' [18:02:10.369] - Field: 'owner' [18:02:10.369] - Field: 'envir' [18:02:10.369] - Field: 'workers' [18:02:10.369] - Field: 'packages' [18:02:10.369] - Field: 'gc' [18:02:10.370] - Field: 'conditions' [18:02:10.370] - Field: 'persistent' [18:02:10.370] - Field: 'expr' [18:02:10.370] - Field: 'uuid' [18:02:10.370] - Field: 'seed' [18:02:10.370] - Field: 'version' [18:02:10.371] - Field: 'result' [18:02:10.371] - Field: 'asynchronous' [18:02:10.371] - Field: 'calls' [18:02:10.371] - Field: 'globals' [18:02:10.371] - Field: 'stdout' [18:02:10.371] - Field: 'earlySignal' [18:02:10.372] - Field: 'lazy' [18:02:10.372] - Field: 'state' [18:02:10.372] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:10.372] - Launch lazy future ... [18:02:10.373] Packages needed by the future expression (n = 0): [18:02:10.373] Packages needed by future strategies (n = 0): [18:02:10.373] { [18:02:10.373] { [18:02:10.373] { [18:02:10.373] ...future.startTime <- base::Sys.time() [18:02:10.373] { [18:02:10.373] { [18:02:10.373] { [18:02:10.373] { [18:02:10.373] base::local({ [18:02:10.373] has_future <- base::requireNamespace("future", [18:02:10.373] quietly = TRUE) [18:02:10.373] if (has_future) { [18:02:10.373] ns <- base::getNamespace("future") [18:02:10.373] version <- ns[[".package"]][["version"]] [18:02:10.373] if (is.null(version)) [18:02:10.373] version <- utils::packageVersion("future") [18:02:10.373] } [18:02:10.373] else { [18:02:10.373] version <- NULL [18:02:10.373] } [18:02:10.373] if (!has_future || version < "1.8.0") { [18:02:10.373] info <- base::c(r_version = base::gsub("R version ", [18:02:10.373] "", base::R.version$version.string), [18:02:10.373] platform = base::sprintf("%s (%s-bit)", [18:02:10.373] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:10.373] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.373] "release", "version")], collapse = " "), [18:02:10.373] hostname = base::Sys.info()[["nodename"]]) [18:02:10.373] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.373] info) [18:02:10.373] info <- base::paste(info, collapse = "; ") [18:02:10.373] if (!has_future) { [18:02:10.373] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.373] info) [18:02:10.373] } [18:02:10.373] else { [18:02:10.373] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.373] info, version) [18:02:10.373] } [18:02:10.373] base::stop(msg) [18:02:10.373] } [18:02:10.373] }) [18:02:10.373] } [18:02:10.373] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.373] base::options(mc.cores = 1L) [18:02:10.373] } [18:02:10.373] options(future.plan = NULL) [18:02:10.373] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.373] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.373] } [18:02:10.373] ...future.workdir <- getwd() [18:02:10.373] } [18:02:10.373] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.373] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.373] } [18:02:10.373] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.373] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.373] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.373] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.373] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.373] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.373] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.373] base::names(...future.oldOptions)) [18:02:10.373] } [18:02:10.373] if (FALSE) { [18:02:10.373] } [18:02:10.373] else { [18:02:10.373] if (TRUE) { [18:02:10.373] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.373] open = "w") [18:02:10.373] } [18:02:10.373] else { [18:02:10.373] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.373] windows = "NUL", "/dev/null"), open = "w") [18:02:10.373] } [18:02:10.373] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.373] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.373] base::sink(type = "output", split = FALSE) [18:02:10.373] base::close(...future.stdout) [18:02:10.373] }, add = TRUE) [18:02:10.373] } [18:02:10.373] ...future.frame <- base::sys.nframe() [18:02:10.373] ...future.conditions <- base::list() [18:02:10.373] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.373] if (FALSE) { [18:02:10.373] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.373] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.373] } [18:02:10.373] ...future.result <- base::tryCatch({ [18:02:10.373] base::withCallingHandlers({ [18:02:10.373] ...future.value <- base::withVisible(base::local({ [18:02:10.373] ...future.makeSendCondition <- local({ [18:02:10.373] sendCondition <- NULL [18:02:10.373] function(frame = 1L) { [18:02:10.373] if (is.function(sendCondition)) [18:02:10.373] return(sendCondition) [18:02:10.373] ns <- getNamespace("parallel") [18:02:10.373] if (exists("sendData", mode = "function", [18:02:10.373] envir = ns)) { [18:02:10.373] parallel_sendData <- get("sendData", mode = "function", [18:02:10.373] envir = ns) [18:02:10.373] envir <- sys.frame(frame) [18:02:10.373] master <- NULL [18:02:10.373] while (!identical(envir, .GlobalEnv) && [18:02:10.373] !identical(envir, emptyenv())) { [18:02:10.373] if (exists("master", mode = "list", envir = envir, [18:02:10.373] inherits = FALSE)) { [18:02:10.373] master <- get("master", mode = "list", [18:02:10.373] envir = envir, inherits = FALSE) [18:02:10.373] if (inherits(master, c("SOCKnode", [18:02:10.373] "SOCK0node"))) { [18:02:10.373] sendCondition <<- function(cond) { [18:02:10.373] data <- list(type = "VALUE", value = cond, [18:02:10.373] success = TRUE) [18:02:10.373] parallel_sendData(master, data) [18:02:10.373] } [18:02:10.373] return(sendCondition) [18:02:10.373] } [18:02:10.373] } [18:02:10.373] frame <- frame + 1L [18:02:10.373] envir <- sys.frame(frame) [18:02:10.373] } [18:02:10.373] } [18:02:10.373] sendCondition <<- function(cond) NULL [18:02:10.373] } [18:02:10.373] }) [18:02:10.373] withCallingHandlers({ [18:02:10.373] { [18:02:10.373] f1$owner [18:02:10.373] } [18:02:10.373] }, immediateCondition = function(cond) { [18:02:10.373] sendCondition <- ...future.makeSendCondition() [18:02:10.373] sendCondition(cond) [18:02:10.373] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.373] { [18:02:10.373] inherits <- base::inherits [18:02:10.373] invokeRestart <- base::invokeRestart [18:02:10.373] is.null <- base::is.null [18:02:10.373] muffled <- FALSE [18:02:10.373] if (inherits(cond, "message")) { [18:02:10.373] muffled <- grepl(pattern, "muffleMessage") [18:02:10.373] if (muffled) [18:02:10.373] invokeRestart("muffleMessage") [18:02:10.373] } [18:02:10.373] else if (inherits(cond, "warning")) { [18:02:10.373] muffled <- grepl(pattern, "muffleWarning") [18:02:10.373] if (muffled) [18:02:10.373] invokeRestart("muffleWarning") [18:02:10.373] } [18:02:10.373] else if (inherits(cond, "condition")) { [18:02:10.373] if (!is.null(pattern)) { [18:02:10.373] computeRestarts <- base::computeRestarts [18:02:10.373] grepl <- base::grepl [18:02:10.373] restarts <- computeRestarts(cond) [18:02:10.373] for (restart in restarts) { [18:02:10.373] name <- restart$name [18:02:10.373] if (is.null(name)) [18:02:10.373] next [18:02:10.373] if (!grepl(pattern, name)) [18:02:10.373] next [18:02:10.373] invokeRestart(restart) [18:02:10.373] muffled <- TRUE [18:02:10.373] break [18:02:10.373] } [18:02:10.373] } [18:02:10.373] } [18:02:10.373] invisible(muffled) [18:02:10.373] } [18:02:10.373] muffleCondition(cond) [18:02:10.373] }) [18:02:10.373] })) [18:02:10.373] future::FutureResult(value = ...future.value$value, [18:02:10.373] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.373] ...future.rng), globalenv = if (FALSE) [18:02:10.373] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.373] ...future.globalenv.names)) [18:02:10.373] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.373] }, condition = base::local({ [18:02:10.373] c <- base::c [18:02:10.373] inherits <- base::inherits [18:02:10.373] invokeRestart <- base::invokeRestart [18:02:10.373] length <- base::length [18:02:10.373] list <- base::list [18:02:10.373] seq.int <- base::seq.int [18:02:10.373] signalCondition <- base::signalCondition [18:02:10.373] sys.calls <- base::sys.calls [18:02:10.373] `[[` <- base::`[[` [18:02:10.373] `+` <- base::`+` [18:02:10.373] `<<-` <- base::`<<-` [18:02:10.373] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.373] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.373] 3L)] [18:02:10.373] } [18:02:10.373] function(cond) { [18:02:10.373] is_error <- inherits(cond, "error") [18:02:10.373] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.373] NULL) [18:02:10.373] if (is_error) { [18:02:10.373] sessionInformation <- function() { [18:02:10.373] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.373] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.373] search = base::search(), system = base::Sys.info()) [18:02:10.373] } [18:02:10.373] ...future.conditions[[length(...future.conditions) + [18:02:10.373] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.373] cond$call), session = sessionInformation(), [18:02:10.373] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.373] signalCondition(cond) [18:02:10.373] } [18:02:10.373] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.373] "immediateCondition"))) { [18:02:10.373] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.373] ...future.conditions[[length(...future.conditions) + [18:02:10.373] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.373] if (TRUE && !signal) { [18:02:10.373] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.373] { [18:02:10.373] inherits <- base::inherits [18:02:10.373] invokeRestart <- base::invokeRestart [18:02:10.373] is.null <- base::is.null [18:02:10.373] muffled <- FALSE [18:02:10.373] if (inherits(cond, "message")) { [18:02:10.373] muffled <- grepl(pattern, "muffleMessage") [18:02:10.373] if (muffled) [18:02:10.373] invokeRestart("muffleMessage") [18:02:10.373] } [18:02:10.373] else if (inherits(cond, "warning")) { [18:02:10.373] muffled <- grepl(pattern, "muffleWarning") [18:02:10.373] if (muffled) [18:02:10.373] invokeRestart("muffleWarning") [18:02:10.373] } [18:02:10.373] else if (inherits(cond, "condition")) { [18:02:10.373] if (!is.null(pattern)) { [18:02:10.373] computeRestarts <- base::computeRestarts [18:02:10.373] grepl <- base::grepl [18:02:10.373] restarts <- computeRestarts(cond) [18:02:10.373] for (restart in restarts) { [18:02:10.373] name <- restart$name [18:02:10.373] if (is.null(name)) [18:02:10.373] next [18:02:10.373] if (!grepl(pattern, name)) [18:02:10.373] next [18:02:10.373] invokeRestart(restart) [18:02:10.373] muffled <- TRUE [18:02:10.373] break [18:02:10.373] } [18:02:10.373] } [18:02:10.373] } [18:02:10.373] invisible(muffled) [18:02:10.373] } [18:02:10.373] muffleCondition(cond, pattern = "^muffle") [18:02:10.373] } [18:02:10.373] } [18:02:10.373] else { [18:02:10.373] if (TRUE) { [18:02:10.373] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.373] { [18:02:10.373] inherits <- base::inherits [18:02:10.373] invokeRestart <- base::invokeRestart [18:02:10.373] is.null <- base::is.null [18:02:10.373] muffled <- FALSE [18:02:10.373] if (inherits(cond, "message")) { [18:02:10.373] muffled <- grepl(pattern, "muffleMessage") [18:02:10.373] if (muffled) [18:02:10.373] invokeRestart("muffleMessage") [18:02:10.373] } [18:02:10.373] else if (inherits(cond, "warning")) { [18:02:10.373] muffled <- grepl(pattern, "muffleWarning") [18:02:10.373] if (muffled) [18:02:10.373] invokeRestart("muffleWarning") [18:02:10.373] } [18:02:10.373] else if (inherits(cond, "condition")) { [18:02:10.373] if (!is.null(pattern)) { [18:02:10.373] computeRestarts <- base::computeRestarts [18:02:10.373] grepl <- base::grepl [18:02:10.373] restarts <- computeRestarts(cond) [18:02:10.373] for (restart in restarts) { [18:02:10.373] name <- restart$name [18:02:10.373] if (is.null(name)) [18:02:10.373] next [18:02:10.373] if (!grepl(pattern, name)) [18:02:10.373] next [18:02:10.373] invokeRestart(restart) [18:02:10.373] muffled <- TRUE [18:02:10.373] break [18:02:10.373] } [18:02:10.373] } [18:02:10.373] } [18:02:10.373] invisible(muffled) [18:02:10.373] } [18:02:10.373] muffleCondition(cond, pattern = "^muffle") [18:02:10.373] } [18:02:10.373] } [18:02:10.373] } [18:02:10.373] })) [18:02:10.373] }, error = function(ex) { [18:02:10.373] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.373] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.373] ...future.rng), started = ...future.startTime, [18:02:10.373] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.373] version = "1.8"), class = "FutureResult") [18:02:10.373] }, finally = { [18:02:10.373] if (!identical(...future.workdir, getwd())) [18:02:10.373] setwd(...future.workdir) [18:02:10.373] { [18:02:10.373] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.373] ...future.oldOptions$nwarnings <- NULL [18:02:10.373] } [18:02:10.373] base::options(...future.oldOptions) [18:02:10.373] if (.Platform$OS.type == "windows") { [18:02:10.373] old_names <- names(...future.oldEnvVars) [18:02:10.373] envs <- base::Sys.getenv() [18:02:10.373] names <- names(envs) [18:02:10.373] common <- intersect(names, old_names) [18:02:10.373] added <- setdiff(names, old_names) [18:02:10.373] removed <- setdiff(old_names, names) [18:02:10.373] changed <- common[...future.oldEnvVars[common] != [18:02:10.373] envs[common]] [18:02:10.373] NAMES <- toupper(changed) [18:02:10.373] args <- list() [18:02:10.373] for (kk in seq_along(NAMES)) { [18:02:10.373] name <- changed[[kk]] [18:02:10.373] NAME <- NAMES[[kk]] [18:02:10.373] if (name != NAME && is.element(NAME, old_names)) [18:02:10.373] next [18:02:10.373] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.373] } [18:02:10.373] NAMES <- toupper(added) [18:02:10.373] for (kk in seq_along(NAMES)) { [18:02:10.373] name <- added[[kk]] [18:02:10.373] NAME <- NAMES[[kk]] [18:02:10.373] if (name != NAME && is.element(NAME, old_names)) [18:02:10.373] next [18:02:10.373] args[[name]] <- "" [18:02:10.373] } [18:02:10.373] NAMES <- toupper(removed) [18:02:10.373] for (kk in seq_along(NAMES)) { [18:02:10.373] name <- removed[[kk]] [18:02:10.373] NAME <- NAMES[[kk]] [18:02:10.373] if (name != NAME && is.element(NAME, old_names)) [18:02:10.373] next [18:02:10.373] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.373] } [18:02:10.373] if (length(args) > 0) [18:02:10.373] base::do.call(base::Sys.setenv, args = args) [18:02:10.373] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.373] } [18:02:10.373] else { [18:02:10.373] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.373] } [18:02:10.373] { [18:02:10.373] if (base::length(...future.futureOptionsAdded) > [18:02:10.373] 0L) { [18:02:10.373] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.373] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.373] base::options(opts) [18:02:10.373] } [18:02:10.373] { [18:02:10.373] { [18:02:10.373] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.373] NULL [18:02:10.373] } [18:02:10.373] options(future.plan = NULL) [18:02:10.373] if (is.na(NA_character_)) [18:02:10.373] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.373] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.373] future::plan(list(function (..., workers = 2L, [18:02:10.373] envir = parent.frame()) [18:02:10.373] strategy(..., workers = workers, envir = envir)), [18:02:10.373] .cleanup = FALSE, .init = FALSE) [18:02:10.373] } [18:02:10.373] } [18:02:10.373] } [18:02:10.373] }) [18:02:10.373] if (TRUE) { [18:02:10.373] base::sink(type = "output", split = FALSE) [18:02:10.373] if (TRUE) { [18:02:10.373] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.373] } [18:02:10.373] else { [18:02:10.373] ...future.result["stdout"] <- base::list(NULL) [18:02:10.373] } [18:02:10.373] base::close(...future.stdout) [18:02:10.373] ...future.stdout <- NULL [18:02:10.373] } [18:02:10.373] ...future.result$conditions <- ...future.conditions [18:02:10.373] ...future.result$finished <- base::Sys.time() [18:02:10.373] ...future.result [18:02:10.373] } [18:02:10.378] Exporting 1 global objects (1.58 MiB) to cluster node #1 ... [18:02:10.381] Exporting 'f1' (1.58 MiB) to cluster node #1 ... [18:02:10.391] Exporting 'f1' (1.58 MiB) to cluster node #1 ... DONE [18:02:10.392] Exporting 1 global objects (1.58 MiB) to cluster node #1 ... DONE [18:02:10.392] MultisessionFuture started [18:02:10.392] - Launch lazy future ... done [18:02:10.393] run() for 'MultisessionFuture' ... done > stopifnot(inherits(f3, "MultisessionFuture")) > cat(sprintf("Future #3 session: %d\n", f3$node)) Future #3 session: 1 > v3 <- value(f3) [18:02:10.393] result() for ClusterFuture ... [18:02:10.393] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.393] - Validating connection of MultisessionFuture [18:02:10.412] - received message: FutureResult [18:02:10.412] - Received FutureResult [18:02:10.413] - Erased future from FutureRegistry [18:02:10.413] result() for ClusterFuture ... [18:02:10.413] - result already collected: FutureResult [18:02:10.413] result() for ClusterFuture ... done [18:02:10.413] receiveMessageFromWorker() for ClusterFuture ... done [18:02:10.414] result() for ClusterFuture ... done [18:02:10.414] result() for ClusterFuture ... [18:02:10.414] - result already collected: FutureResult [18:02:10.414] result() for ClusterFuture ... done > cat(sprintf("Future #3 owner: %s\n", v3)) Future #3 owner: a5c6de4e-598d-8aa8-f321-f3a534fd5dec > stopifnot(v3 == session_uuid) > > message("Creating future #4:") Creating future #4: > f4 <- future({ f1$owner }) [18:02:10.415] getGlobalsAndPackages() ... [18:02:10.415] Searching for globals... [18:02:10.416] - globals found: [3] '{', '$', 'f1' [18:02:10.416] Searching for globals ... DONE [18:02:10.416] Resolving globals: FALSE [18:02:10.419] The total size of the 1 globals is 1.58 MiB (1654456 bytes) [18:02:10.419] The total size of the 1 globals exported for future expression ('{; f1$owner; }') is 1.58 MiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'f1' (1.58 MiB of class 'environment') [18:02:10.420] - globals: [1] 'f1' [18:02:10.420] [18:02:10.420] getGlobalsAndPackages() ... DONE [18:02:10.420] run() for 'Future' ... [18:02:10.420] - state: 'created' [18:02:10.421] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:10.433] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:10.433] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:10.434] - Field: 'node' [18:02:10.434] - Field: 'label' [18:02:10.434] - Field: 'local' [18:02:10.434] - Field: 'owner' [18:02:10.434] - Field: 'envir' [18:02:10.434] - Field: 'workers' [18:02:10.435] - Field: 'packages' [18:02:10.435] - Field: 'gc' [18:02:10.435] - Field: 'conditions' [18:02:10.435] - Field: 'persistent' [18:02:10.435] - Field: 'expr' [18:02:10.436] - Field: 'uuid' [18:02:10.436] - Field: 'seed' [18:02:10.436] - Field: 'version' [18:02:10.436] - Field: 'result' [18:02:10.436] - Field: 'asynchronous' [18:02:10.436] - Field: 'calls' [18:02:10.437] - Field: 'globals' [18:02:10.437] - Field: 'stdout' [18:02:10.437] - Field: 'earlySignal' [18:02:10.437] - Field: 'lazy' [18:02:10.437] - Field: 'state' [18:02:10.438] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:10.438] - Launch lazy future ... [18:02:10.438] Packages needed by the future expression (n = 0): [18:02:10.438] Packages needed by future strategies (n = 0): [18:02:10.439] { [18:02:10.439] { [18:02:10.439] { [18:02:10.439] ...future.startTime <- base::Sys.time() [18:02:10.439] { [18:02:10.439] { [18:02:10.439] { [18:02:10.439] { [18:02:10.439] base::local({ [18:02:10.439] has_future <- base::requireNamespace("future", [18:02:10.439] quietly = TRUE) [18:02:10.439] if (has_future) { [18:02:10.439] ns <- base::getNamespace("future") [18:02:10.439] version <- ns[[".package"]][["version"]] [18:02:10.439] if (is.null(version)) [18:02:10.439] version <- utils::packageVersion("future") [18:02:10.439] } [18:02:10.439] else { [18:02:10.439] version <- NULL [18:02:10.439] } [18:02:10.439] if (!has_future || version < "1.8.0") { [18:02:10.439] info <- base::c(r_version = base::gsub("R version ", [18:02:10.439] "", base::R.version$version.string), [18:02:10.439] platform = base::sprintf("%s (%s-bit)", [18:02:10.439] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:10.439] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.439] "release", "version")], collapse = " "), [18:02:10.439] hostname = base::Sys.info()[["nodename"]]) [18:02:10.439] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.439] info) [18:02:10.439] info <- base::paste(info, collapse = "; ") [18:02:10.439] if (!has_future) { [18:02:10.439] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.439] info) [18:02:10.439] } [18:02:10.439] else { [18:02:10.439] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.439] info, version) [18:02:10.439] } [18:02:10.439] base::stop(msg) [18:02:10.439] } [18:02:10.439] }) [18:02:10.439] } [18:02:10.439] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.439] base::options(mc.cores = 1L) [18:02:10.439] } [18:02:10.439] options(future.plan = NULL) [18:02:10.439] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.439] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.439] } [18:02:10.439] ...future.workdir <- getwd() [18:02:10.439] } [18:02:10.439] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.439] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.439] } [18:02:10.439] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.439] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.439] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.439] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.439] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.439] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.439] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.439] base::names(...future.oldOptions)) [18:02:10.439] } [18:02:10.439] if (FALSE) { [18:02:10.439] } [18:02:10.439] else { [18:02:10.439] if (TRUE) { [18:02:10.439] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.439] open = "w") [18:02:10.439] } [18:02:10.439] else { [18:02:10.439] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.439] windows = "NUL", "/dev/null"), open = "w") [18:02:10.439] } [18:02:10.439] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.439] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.439] base::sink(type = "output", split = FALSE) [18:02:10.439] base::close(...future.stdout) [18:02:10.439] }, add = TRUE) [18:02:10.439] } [18:02:10.439] ...future.frame <- base::sys.nframe() [18:02:10.439] ...future.conditions <- base::list() [18:02:10.439] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.439] if (FALSE) { [18:02:10.439] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.439] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.439] } [18:02:10.439] ...future.result <- base::tryCatch({ [18:02:10.439] base::withCallingHandlers({ [18:02:10.439] ...future.value <- base::withVisible(base::local({ [18:02:10.439] ...future.makeSendCondition <- local({ [18:02:10.439] sendCondition <- NULL [18:02:10.439] function(frame = 1L) { [18:02:10.439] if (is.function(sendCondition)) [18:02:10.439] return(sendCondition) [18:02:10.439] ns <- getNamespace("parallel") [18:02:10.439] if (exists("sendData", mode = "function", [18:02:10.439] envir = ns)) { [18:02:10.439] parallel_sendData <- get("sendData", mode = "function", [18:02:10.439] envir = ns) [18:02:10.439] envir <- sys.frame(frame) [18:02:10.439] master <- NULL [18:02:10.439] while (!identical(envir, .GlobalEnv) && [18:02:10.439] !identical(envir, emptyenv())) { [18:02:10.439] if (exists("master", mode = "list", envir = envir, [18:02:10.439] inherits = FALSE)) { [18:02:10.439] master <- get("master", mode = "list", [18:02:10.439] envir = envir, inherits = FALSE) [18:02:10.439] if (inherits(master, c("SOCKnode", [18:02:10.439] "SOCK0node"))) { [18:02:10.439] sendCondition <<- function(cond) { [18:02:10.439] data <- list(type = "VALUE", value = cond, [18:02:10.439] success = TRUE) [18:02:10.439] parallel_sendData(master, data) [18:02:10.439] } [18:02:10.439] return(sendCondition) [18:02:10.439] } [18:02:10.439] } [18:02:10.439] frame <- frame + 1L [18:02:10.439] envir <- sys.frame(frame) [18:02:10.439] } [18:02:10.439] } [18:02:10.439] sendCondition <<- function(cond) NULL [18:02:10.439] } [18:02:10.439] }) [18:02:10.439] withCallingHandlers({ [18:02:10.439] { [18:02:10.439] f1$owner [18:02:10.439] } [18:02:10.439] }, immediateCondition = function(cond) { [18:02:10.439] sendCondition <- ...future.makeSendCondition() [18:02:10.439] sendCondition(cond) [18:02:10.439] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.439] { [18:02:10.439] inherits <- base::inherits [18:02:10.439] invokeRestart <- base::invokeRestart [18:02:10.439] is.null <- base::is.null [18:02:10.439] muffled <- FALSE [18:02:10.439] if (inherits(cond, "message")) { [18:02:10.439] muffled <- grepl(pattern, "muffleMessage") [18:02:10.439] if (muffled) [18:02:10.439] invokeRestart("muffleMessage") [18:02:10.439] } [18:02:10.439] else if (inherits(cond, "warning")) { [18:02:10.439] muffled <- grepl(pattern, "muffleWarning") [18:02:10.439] if (muffled) [18:02:10.439] invokeRestart("muffleWarning") [18:02:10.439] } [18:02:10.439] else if (inherits(cond, "condition")) { [18:02:10.439] if (!is.null(pattern)) { [18:02:10.439] computeRestarts <- base::computeRestarts [18:02:10.439] grepl <- base::grepl [18:02:10.439] restarts <- computeRestarts(cond) [18:02:10.439] for (restart in restarts) { [18:02:10.439] name <- restart$name [18:02:10.439] if (is.null(name)) [18:02:10.439] next [18:02:10.439] if (!grepl(pattern, name)) [18:02:10.439] next [18:02:10.439] invokeRestart(restart) [18:02:10.439] muffled <- TRUE [18:02:10.439] break [18:02:10.439] } [18:02:10.439] } [18:02:10.439] } [18:02:10.439] invisible(muffled) [18:02:10.439] } [18:02:10.439] muffleCondition(cond) [18:02:10.439] }) [18:02:10.439] })) [18:02:10.439] future::FutureResult(value = ...future.value$value, [18:02:10.439] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.439] ...future.rng), globalenv = if (FALSE) [18:02:10.439] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.439] ...future.globalenv.names)) [18:02:10.439] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.439] }, condition = base::local({ [18:02:10.439] c <- base::c [18:02:10.439] inherits <- base::inherits [18:02:10.439] invokeRestart <- base::invokeRestart [18:02:10.439] length <- base::length [18:02:10.439] list <- base::list [18:02:10.439] seq.int <- base::seq.int [18:02:10.439] signalCondition <- base::signalCondition [18:02:10.439] sys.calls <- base::sys.calls [18:02:10.439] `[[` <- base::`[[` [18:02:10.439] `+` <- base::`+` [18:02:10.439] `<<-` <- base::`<<-` [18:02:10.439] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.439] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.439] 3L)] [18:02:10.439] } [18:02:10.439] function(cond) { [18:02:10.439] is_error <- inherits(cond, "error") [18:02:10.439] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.439] NULL) [18:02:10.439] if (is_error) { [18:02:10.439] sessionInformation <- function() { [18:02:10.439] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.439] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.439] search = base::search(), system = base::Sys.info()) [18:02:10.439] } [18:02:10.439] ...future.conditions[[length(...future.conditions) + [18:02:10.439] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.439] cond$call), session = sessionInformation(), [18:02:10.439] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.439] signalCondition(cond) [18:02:10.439] } [18:02:10.439] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.439] "immediateCondition"))) { [18:02:10.439] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.439] ...future.conditions[[length(...future.conditions) + [18:02:10.439] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.439] if (TRUE && !signal) { [18:02:10.439] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.439] { [18:02:10.439] inherits <- base::inherits [18:02:10.439] invokeRestart <- base::invokeRestart [18:02:10.439] is.null <- base::is.null [18:02:10.439] muffled <- FALSE [18:02:10.439] if (inherits(cond, "message")) { [18:02:10.439] muffled <- grepl(pattern, "muffleMessage") [18:02:10.439] if (muffled) [18:02:10.439] invokeRestart("muffleMessage") [18:02:10.439] } [18:02:10.439] else if (inherits(cond, "warning")) { [18:02:10.439] muffled <- grepl(pattern, "muffleWarning") [18:02:10.439] if (muffled) [18:02:10.439] invokeRestart("muffleWarning") [18:02:10.439] } [18:02:10.439] else if (inherits(cond, "condition")) { [18:02:10.439] if (!is.null(pattern)) { [18:02:10.439] computeRestarts <- base::computeRestarts [18:02:10.439] grepl <- base::grepl [18:02:10.439] restarts <- computeRestarts(cond) [18:02:10.439] for (restart in restarts) { [18:02:10.439] name <- restart$name [18:02:10.439] if (is.null(name)) [18:02:10.439] next [18:02:10.439] if (!grepl(pattern, name)) [18:02:10.439] next [18:02:10.439] invokeRestart(restart) [18:02:10.439] muffled <- TRUE [18:02:10.439] break [18:02:10.439] } [18:02:10.439] } [18:02:10.439] } [18:02:10.439] invisible(muffled) [18:02:10.439] } [18:02:10.439] muffleCondition(cond, pattern = "^muffle") [18:02:10.439] } [18:02:10.439] } [18:02:10.439] else { [18:02:10.439] if (TRUE) { [18:02:10.439] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.439] { [18:02:10.439] inherits <- base::inherits [18:02:10.439] invokeRestart <- base::invokeRestart [18:02:10.439] is.null <- base::is.null [18:02:10.439] muffled <- FALSE [18:02:10.439] if (inherits(cond, "message")) { [18:02:10.439] muffled <- grepl(pattern, "muffleMessage") [18:02:10.439] if (muffled) [18:02:10.439] invokeRestart("muffleMessage") [18:02:10.439] } [18:02:10.439] else if (inherits(cond, "warning")) { [18:02:10.439] muffled <- grepl(pattern, "muffleWarning") [18:02:10.439] if (muffled) [18:02:10.439] invokeRestart("muffleWarning") [18:02:10.439] } [18:02:10.439] else if (inherits(cond, "condition")) { [18:02:10.439] if (!is.null(pattern)) { [18:02:10.439] computeRestarts <- base::computeRestarts [18:02:10.439] grepl <- base::grepl [18:02:10.439] restarts <- computeRestarts(cond) [18:02:10.439] for (restart in restarts) { [18:02:10.439] name <- restart$name [18:02:10.439] if (is.null(name)) [18:02:10.439] next [18:02:10.439] if (!grepl(pattern, name)) [18:02:10.439] next [18:02:10.439] invokeRestart(restart) [18:02:10.439] muffled <- TRUE [18:02:10.439] break [18:02:10.439] } [18:02:10.439] } [18:02:10.439] } [18:02:10.439] invisible(muffled) [18:02:10.439] } [18:02:10.439] muffleCondition(cond, pattern = "^muffle") [18:02:10.439] } [18:02:10.439] } [18:02:10.439] } [18:02:10.439] })) [18:02:10.439] }, error = function(ex) { [18:02:10.439] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.439] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.439] ...future.rng), started = ...future.startTime, [18:02:10.439] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.439] version = "1.8"), class = "FutureResult") [18:02:10.439] }, finally = { [18:02:10.439] if (!identical(...future.workdir, getwd())) [18:02:10.439] setwd(...future.workdir) [18:02:10.439] { [18:02:10.439] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.439] ...future.oldOptions$nwarnings <- NULL [18:02:10.439] } [18:02:10.439] base::options(...future.oldOptions) [18:02:10.439] if (.Platform$OS.type == "windows") { [18:02:10.439] old_names <- names(...future.oldEnvVars) [18:02:10.439] envs <- base::Sys.getenv() [18:02:10.439] names <- names(envs) [18:02:10.439] common <- intersect(names, old_names) [18:02:10.439] added <- setdiff(names, old_names) [18:02:10.439] removed <- setdiff(old_names, names) [18:02:10.439] changed <- common[...future.oldEnvVars[common] != [18:02:10.439] envs[common]] [18:02:10.439] NAMES <- toupper(changed) [18:02:10.439] args <- list() [18:02:10.439] for (kk in seq_along(NAMES)) { [18:02:10.439] name <- changed[[kk]] [18:02:10.439] NAME <- NAMES[[kk]] [18:02:10.439] if (name != NAME && is.element(NAME, old_names)) [18:02:10.439] next [18:02:10.439] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.439] } [18:02:10.439] NAMES <- toupper(added) [18:02:10.439] for (kk in seq_along(NAMES)) { [18:02:10.439] name <- added[[kk]] [18:02:10.439] NAME <- NAMES[[kk]] [18:02:10.439] if (name != NAME && is.element(NAME, old_names)) [18:02:10.439] next [18:02:10.439] args[[name]] <- "" [18:02:10.439] } [18:02:10.439] NAMES <- toupper(removed) [18:02:10.439] for (kk in seq_along(NAMES)) { [18:02:10.439] name <- removed[[kk]] [18:02:10.439] NAME <- NAMES[[kk]] [18:02:10.439] if (name != NAME && is.element(NAME, old_names)) [18:02:10.439] next [18:02:10.439] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.439] } [18:02:10.439] if (length(args) > 0) [18:02:10.439] base::do.call(base::Sys.setenv, args = args) [18:02:10.439] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.439] } [18:02:10.439] else { [18:02:10.439] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.439] } [18:02:10.439] { [18:02:10.439] if (base::length(...future.futureOptionsAdded) > [18:02:10.439] 0L) { [18:02:10.439] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.439] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.439] base::options(opts) [18:02:10.439] } [18:02:10.439] { [18:02:10.439] { [18:02:10.439] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.439] NULL [18:02:10.439] } [18:02:10.439] options(future.plan = NULL) [18:02:10.439] if (is.na(NA_character_)) [18:02:10.439] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.439] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.439] future::plan(list(function (..., workers = 2L, [18:02:10.439] envir = parent.frame()) [18:02:10.439] strategy(..., workers = workers, envir = envir)), [18:02:10.439] .cleanup = FALSE, .init = FALSE) [18:02:10.439] } [18:02:10.439] } [18:02:10.439] } [18:02:10.439] }) [18:02:10.439] if (TRUE) { [18:02:10.439] base::sink(type = "output", split = FALSE) [18:02:10.439] if (TRUE) { [18:02:10.439] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.439] } [18:02:10.439] else { [18:02:10.439] ...future.result["stdout"] <- base::list(NULL) [18:02:10.439] } [18:02:10.439] base::close(...future.stdout) [18:02:10.439] ...future.stdout <- NULL [18:02:10.439] } [18:02:10.439] ...future.result$conditions <- ...future.conditions [18:02:10.439] ...future.result$finished <- base::Sys.time() [18:02:10.439] ...future.result [18:02:10.439] } [18:02:10.444] Exporting 1 global objects (1.58 MiB) to cluster node #1 ... [18:02:10.446] Exporting 'f1' (1.58 MiB) to cluster node #1 ... [18:02:10.457] Exporting 'f1' (1.58 MiB) to cluster node #1 ... DONE [18:02:10.457] Exporting 1 global objects (1.58 MiB) to cluster node #1 ... DONE [18:02:10.458] MultisessionFuture started [18:02:10.458] - Launch lazy future ... done [18:02:10.458] run() for 'MultisessionFuture' ... done > stopifnot(inherits(f4, "MultisessionFuture")) > cat(sprintf("Future #4 session: %d\n", f4$node)) Future #4 session: 1 > v4 <- value(f4) [18:02:10.459] result() for ClusterFuture ... [18:02:10.459] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.459] - Validating connection of MultisessionFuture [18:02:10.481] - received message: FutureResult [18:02:10.481] - Received FutureResult [18:02:10.481] - Erased future from FutureRegistry [18:02:10.481] result() for ClusterFuture ... [18:02:10.482] - result already collected: FutureResult [18:02:10.482] result() for ClusterFuture ... done [18:02:10.482] receiveMessageFromWorker() for ClusterFuture ... done [18:02:10.482] result() for ClusterFuture ... done [18:02:10.482] result() for ClusterFuture ... [18:02:10.483] - result already collected: FutureResult [18:02:10.483] result() for ClusterFuture ... done > cat(sprintf("Future #4 owner: %s\n", v4)) Future #4 owner: a5c6de4e-598d-8aa8-f321-f3a534fd5dec > stopifnot(v4 == session_uuid) > > message("Creating future #5:") Creating future #5: > f5 <- future({ stopifnot(f1$owner != future:::session_uuid(attributes = TRUE)); "not-owner" }) [18:02:10.483] getGlobalsAndPackages() ... [18:02:10.483] Searching for globals... [18:02:10.485] - globals found: [6] '{', 'stopifnot', '!=', '$', 'f1', ':::' [18:02:10.485] Searching for globals ... DONE [18:02:10.486] Resolving globals: FALSE [18:02:10.488] The total size of the 1 globals is 1.58 MiB (1657272 bytes) [18:02:10.489] The total size of the 1 globals exported for future expression ('{; stopifnot(f1$owner != future:::session_uuid(attributes = TRUE)); "not-owner"; }') is 1.58 MiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'f1' (1.58 MiB of class 'environment') [18:02:10.489] - globals: [1] 'f1' [18:02:10.489] [18:02:10.489] getGlobalsAndPackages() ... DONE [18:02:10.490] run() for 'Future' ... [18:02:10.490] - state: 'created' [18:02:10.490] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:10.502] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:10.502] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:10.503] - Field: 'node' [18:02:10.503] - Field: 'label' [18:02:10.503] - Field: 'local' [18:02:10.503] - Field: 'owner' [18:02:10.503] - Field: 'envir' [18:02:10.503] - Field: 'workers' [18:02:10.504] - Field: 'packages' [18:02:10.504] - Field: 'gc' [18:02:10.504] - Field: 'conditions' [18:02:10.504] - Field: 'persistent' [18:02:10.504] - Field: 'expr' [18:02:10.505] - Field: 'uuid' [18:02:10.505] - Field: 'seed' [18:02:10.505] - Field: 'version' [18:02:10.505] - Field: 'result' [18:02:10.505] - Field: 'asynchronous' [18:02:10.505] - Field: 'calls' [18:02:10.506] - Field: 'globals' [18:02:10.506] - Field: 'stdout' [18:02:10.506] - Field: 'earlySignal' [18:02:10.506] - Field: 'lazy' [18:02:10.506] - Field: 'state' [18:02:10.507] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:10.507] - Launch lazy future ... [18:02:10.507] Packages needed by the future expression (n = 0): [18:02:10.507] Packages needed by future strategies (n = 0): [18:02:10.508] { [18:02:10.508] { [18:02:10.508] { [18:02:10.508] ...future.startTime <- base::Sys.time() [18:02:10.508] { [18:02:10.508] { [18:02:10.508] { [18:02:10.508] { [18:02:10.508] base::local({ [18:02:10.508] has_future <- base::requireNamespace("future", [18:02:10.508] quietly = TRUE) [18:02:10.508] if (has_future) { [18:02:10.508] ns <- base::getNamespace("future") [18:02:10.508] version <- ns[[".package"]][["version"]] [18:02:10.508] if (is.null(version)) [18:02:10.508] version <- utils::packageVersion("future") [18:02:10.508] } [18:02:10.508] else { [18:02:10.508] version <- NULL [18:02:10.508] } [18:02:10.508] if (!has_future || version < "1.8.0") { [18:02:10.508] info <- base::c(r_version = base::gsub("R version ", [18:02:10.508] "", base::R.version$version.string), [18:02:10.508] platform = base::sprintf("%s (%s-bit)", [18:02:10.508] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:10.508] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.508] "release", "version")], collapse = " "), [18:02:10.508] hostname = base::Sys.info()[["nodename"]]) [18:02:10.508] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.508] info) [18:02:10.508] info <- base::paste(info, collapse = "; ") [18:02:10.508] if (!has_future) { [18:02:10.508] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.508] info) [18:02:10.508] } [18:02:10.508] else { [18:02:10.508] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.508] info, version) [18:02:10.508] } [18:02:10.508] base::stop(msg) [18:02:10.508] } [18:02:10.508] }) [18:02:10.508] } [18:02:10.508] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.508] base::options(mc.cores = 1L) [18:02:10.508] } [18:02:10.508] options(future.plan = NULL) [18:02:10.508] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.508] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.508] } [18:02:10.508] ...future.workdir <- getwd() [18:02:10.508] } [18:02:10.508] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.508] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.508] } [18:02:10.508] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.508] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.508] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.508] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.508] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.508] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.508] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.508] base::names(...future.oldOptions)) [18:02:10.508] } [18:02:10.508] if (FALSE) { [18:02:10.508] } [18:02:10.508] else { [18:02:10.508] if (TRUE) { [18:02:10.508] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.508] open = "w") [18:02:10.508] } [18:02:10.508] else { [18:02:10.508] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.508] windows = "NUL", "/dev/null"), open = "w") [18:02:10.508] } [18:02:10.508] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.508] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.508] base::sink(type = "output", split = FALSE) [18:02:10.508] base::close(...future.stdout) [18:02:10.508] }, add = TRUE) [18:02:10.508] } [18:02:10.508] ...future.frame <- base::sys.nframe() [18:02:10.508] ...future.conditions <- base::list() [18:02:10.508] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.508] if (FALSE) { [18:02:10.508] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.508] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.508] } [18:02:10.508] ...future.result <- base::tryCatch({ [18:02:10.508] base::withCallingHandlers({ [18:02:10.508] ...future.value <- base::withVisible(base::local({ [18:02:10.508] ...future.makeSendCondition <- local({ [18:02:10.508] sendCondition <- NULL [18:02:10.508] function(frame = 1L) { [18:02:10.508] if (is.function(sendCondition)) [18:02:10.508] return(sendCondition) [18:02:10.508] ns <- getNamespace("parallel") [18:02:10.508] if (exists("sendData", mode = "function", [18:02:10.508] envir = ns)) { [18:02:10.508] parallel_sendData <- get("sendData", mode = "function", [18:02:10.508] envir = ns) [18:02:10.508] envir <- sys.frame(frame) [18:02:10.508] master <- NULL [18:02:10.508] while (!identical(envir, .GlobalEnv) && [18:02:10.508] !identical(envir, emptyenv())) { [18:02:10.508] if (exists("master", mode = "list", envir = envir, [18:02:10.508] inherits = FALSE)) { [18:02:10.508] master <- get("master", mode = "list", [18:02:10.508] envir = envir, inherits = FALSE) [18:02:10.508] if (inherits(master, c("SOCKnode", [18:02:10.508] "SOCK0node"))) { [18:02:10.508] sendCondition <<- function(cond) { [18:02:10.508] data <- list(type = "VALUE", value = cond, [18:02:10.508] success = TRUE) [18:02:10.508] parallel_sendData(master, data) [18:02:10.508] } [18:02:10.508] return(sendCondition) [18:02:10.508] } [18:02:10.508] } [18:02:10.508] frame <- frame + 1L [18:02:10.508] envir <- sys.frame(frame) [18:02:10.508] } [18:02:10.508] } [18:02:10.508] sendCondition <<- function(cond) NULL [18:02:10.508] } [18:02:10.508] }) [18:02:10.508] withCallingHandlers({ [18:02:10.508] { [18:02:10.508] stopifnot(f1$owner != future:::session_uuid(attributes = TRUE)) [18:02:10.508] "not-owner" [18:02:10.508] } [18:02:10.508] }, immediateCondition = function(cond) { [18:02:10.508] sendCondition <- ...future.makeSendCondition() [18:02:10.508] sendCondition(cond) [18:02:10.508] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.508] { [18:02:10.508] inherits <- base::inherits [18:02:10.508] invokeRestart <- base::invokeRestart [18:02:10.508] is.null <- base::is.null [18:02:10.508] muffled <- FALSE [18:02:10.508] if (inherits(cond, "message")) { [18:02:10.508] muffled <- grepl(pattern, "muffleMessage") [18:02:10.508] if (muffled) [18:02:10.508] invokeRestart("muffleMessage") [18:02:10.508] } [18:02:10.508] else if (inherits(cond, "warning")) { [18:02:10.508] muffled <- grepl(pattern, "muffleWarning") [18:02:10.508] if (muffled) [18:02:10.508] invokeRestart("muffleWarning") [18:02:10.508] } [18:02:10.508] else if (inherits(cond, "condition")) { [18:02:10.508] if (!is.null(pattern)) { [18:02:10.508] computeRestarts <- base::computeRestarts [18:02:10.508] grepl <- base::grepl [18:02:10.508] restarts <- computeRestarts(cond) [18:02:10.508] for (restart in restarts) { [18:02:10.508] name <- restart$name [18:02:10.508] if (is.null(name)) [18:02:10.508] next [18:02:10.508] if (!grepl(pattern, name)) [18:02:10.508] next [18:02:10.508] invokeRestart(restart) [18:02:10.508] muffled <- TRUE [18:02:10.508] break [18:02:10.508] } [18:02:10.508] } [18:02:10.508] } [18:02:10.508] invisible(muffled) [18:02:10.508] } [18:02:10.508] muffleCondition(cond) [18:02:10.508] }) [18:02:10.508] })) [18:02:10.508] future::FutureResult(value = ...future.value$value, [18:02:10.508] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.508] ...future.rng), globalenv = if (FALSE) [18:02:10.508] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.508] ...future.globalenv.names)) [18:02:10.508] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.508] }, condition = base::local({ [18:02:10.508] c <- base::c [18:02:10.508] inherits <- base::inherits [18:02:10.508] invokeRestart <- base::invokeRestart [18:02:10.508] length <- base::length [18:02:10.508] list <- base::list [18:02:10.508] seq.int <- base::seq.int [18:02:10.508] signalCondition <- base::signalCondition [18:02:10.508] sys.calls <- base::sys.calls [18:02:10.508] `[[` <- base::`[[` [18:02:10.508] `+` <- base::`+` [18:02:10.508] `<<-` <- base::`<<-` [18:02:10.508] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.508] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.508] 3L)] [18:02:10.508] } [18:02:10.508] function(cond) { [18:02:10.508] is_error <- inherits(cond, "error") [18:02:10.508] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.508] NULL) [18:02:10.508] if (is_error) { [18:02:10.508] sessionInformation <- function() { [18:02:10.508] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.508] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.508] search = base::search(), system = base::Sys.info()) [18:02:10.508] } [18:02:10.508] ...future.conditions[[length(...future.conditions) + [18:02:10.508] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.508] cond$call), session = sessionInformation(), [18:02:10.508] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.508] signalCondition(cond) [18:02:10.508] } [18:02:10.508] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.508] "immediateCondition"))) { [18:02:10.508] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.508] ...future.conditions[[length(...future.conditions) + [18:02:10.508] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.508] if (TRUE && !signal) { [18:02:10.508] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.508] { [18:02:10.508] inherits <- base::inherits [18:02:10.508] invokeRestart <- base::invokeRestart [18:02:10.508] is.null <- base::is.null [18:02:10.508] muffled <- FALSE [18:02:10.508] if (inherits(cond, "message")) { [18:02:10.508] muffled <- grepl(pattern, "muffleMessage") [18:02:10.508] if (muffled) [18:02:10.508] invokeRestart("muffleMessage") [18:02:10.508] } [18:02:10.508] else if (inherits(cond, "warning")) { [18:02:10.508] muffled <- grepl(pattern, "muffleWarning") [18:02:10.508] if (muffled) [18:02:10.508] invokeRestart("muffleWarning") [18:02:10.508] } [18:02:10.508] else if (inherits(cond, "condition")) { [18:02:10.508] if (!is.null(pattern)) { [18:02:10.508] computeRestarts <- base::computeRestarts [18:02:10.508] grepl <- base::grepl [18:02:10.508] restarts <- computeRestarts(cond) [18:02:10.508] for (restart in restarts) { [18:02:10.508] name <- restart$name [18:02:10.508] if (is.null(name)) [18:02:10.508] next [18:02:10.508] if (!grepl(pattern, name)) [18:02:10.508] next [18:02:10.508] invokeRestart(restart) [18:02:10.508] muffled <- TRUE [18:02:10.508] break [18:02:10.508] } [18:02:10.508] } [18:02:10.508] } [18:02:10.508] invisible(muffled) [18:02:10.508] } [18:02:10.508] muffleCondition(cond, pattern = "^muffle") [18:02:10.508] } [18:02:10.508] } [18:02:10.508] else { [18:02:10.508] if (TRUE) { [18:02:10.508] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.508] { [18:02:10.508] inherits <- base::inherits [18:02:10.508] invokeRestart <- base::invokeRestart [18:02:10.508] is.null <- base::is.null [18:02:10.508] muffled <- FALSE [18:02:10.508] if (inherits(cond, "message")) { [18:02:10.508] muffled <- grepl(pattern, "muffleMessage") [18:02:10.508] if (muffled) [18:02:10.508] invokeRestart("muffleMessage") [18:02:10.508] } [18:02:10.508] else if (inherits(cond, "warning")) { [18:02:10.508] muffled <- grepl(pattern, "muffleWarning") [18:02:10.508] if (muffled) [18:02:10.508] invokeRestart("muffleWarning") [18:02:10.508] } [18:02:10.508] else if (inherits(cond, "condition")) { [18:02:10.508] if (!is.null(pattern)) { [18:02:10.508] computeRestarts <- base::computeRestarts [18:02:10.508] grepl <- base::grepl [18:02:10.508] restarts <- computeRestarts(cond) [18:02:10.508] for (restart in restarts) { [18:02:10.508] name <- restart$name [18:02:10.508] if (is.null(name)) [18:02:10.508] next [18:02:10.508] if (!grepl(pattern, name)) [18:02:10.508] next [18:02:10.508] invokeRestart(restart) [18:02:10.508] muffled <- TRUE [18:02:10.508] break [18:02:10.508] } [18:02:10.508] } [18:02:10.508] } [18:02:10.508] invisible(muffled) [18:02:10.508] } [18:02:10.508] muffleCondition(cond, pattern = "^muffle") [18:02:10.508] } [18:02:10.508] } [18:02:10.508] } [18:02:10.508] })) [18:02:10.508] }, error = function(ex) { [18:02:10.508] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.508] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.508] ...future.rng), started = ...future.startTime, [18:02:10.508] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.508] version = "1.8"), class = "FutureResult") [18:02:10.508] }, finally = { [18:02:10.508] if (!identical(...future.workdir, getwd())) [18:02:10.508] setwd(...future.workdir) [18:02:10.508] { [18:02:10.508] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.508] ...future.oldOptions$nwarnings <- NULL [18:02:10.508] } [18:02:10.508] base::options(...future.oldOptions) [18:02:10.508] if (.Platform$OS.type == "windows") { [18:02:10.508] old_names <- names(...future.oldEnvVars) [18:02:10.508] envs <- base::Sys.getenv() [18:02:10.508] names <- names(envs) [18:02:10.508] common <- intersect(names, old_names) [18:02:10.508] added <- setdiff(names, old_names) [18:02:10.508] removed <- setdiff(old_names, names) [18:02:10.508] changed <- common[...future.oldEnvVars[common] != [18:02:10.508] envs[common]] [18:02:10.508] NAMES <- toupper(changed) [18:02:10.508] args <- list() [18:02:10.508] for (kk in seq_along(NAMES)) { [18:02:10.508] name <- changed[[kk]] [18:02:10.508] NAME <- NAMES[[kk]] [18:02:10.508] if (name != NAME && is.element(NAME, old_names)) [18:02:10.508] next [18:02:10.508] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.508] } [18:02:10.508] NAMES <- toupper(added) [18:02:10.508] for (kk in seq_along(NAMES)) { [18:02:10.508] name <- added[[kk]] [18:02:10.508] NAME <- NAMES[[kk]] [18:02:10.508] if (name != NAME && is.element(NAME, old_names)) [18:02:10.508] next [18:02:10.508] args[[name]] <- "" [18:02:10.508] } [18:02:10.508] NAMES <- toupper(removed) [18:02:10.508] for (kk in seq_along(NAMES)) { [18:02:10.508] name <- removed[[kk]] [18:02:10.508] NAME <- NAMES[[kk]] [18:02:10.508] if (name != NAME && is.element(NAME, old_names)) [18:02:10.508] next [18:02:10.508] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.508] } [18:02:10.508] if (length(args) > 0) [18:02:10.508] base::do.call(base::Sys.setenv, args = args) [18:02:10.508] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.508] } [18:02:10.508] else { [18:02:10.508] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.508] } [18:02:10.508] { [18:02:10.508] if (base::length(...future.futureOptionsAdded) > [18:02:10.508] 0L) { [18:02:10.508] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.508] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.508] base::options(opts) [18:02:10.508] } [18:02:10.508] { [18:02:10.508] { [18:02:10.508] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.508] NULL [18:02:10.508] } [18:02:10.508] options(future.plan = NULL) [18:02:10.508] if (is.na(NA_character_)) [18:02:10.508] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.508] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.508] future::plan(list(function (..., workers = 2L, [18:02:10.508] envir = parent.frame()) [18:02:10.508] strategy(..., workers = workers, envir = envir)), [18:02:10.508] .cleanup = FALSE, .init = FALSE) [18:02:10.508] } [18:02:10.508] } [18:02:10.508] } [18:02:10.508] }) [18:02:10.508] if (TRUE) { [18:02:10.508] base::sink(type = "output", split = FALSE) [18:02:10.508] if (TRUE) { [18:02:10.508] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.508] } [18:02:10.508] else { [18:02:10.508] ...future.result["stdout"] <- base::list(NULL) [18:02:10.508] } [18:02:10.508] base::close(...future.stdout) [18:02:10.508] ...future.stdout <- NULL [18:02:10.508] } [18:02:10.508] ...future.result$conditions <- ...future.conditions [18:02:10.508] ...future.result$finished <- base::Sys.time() [18:02:10.508] ...future.result [18:02:10.508] } [18:02:10.513] Exporting 1 global objects (1.58 MiB) to cluster node #1 ... [18:02:10.518] Exporting 'f1' (1.58 MiB) to cluster node #1 ... [18:02:10.528] Exporting 'f1' (1.58 MiB) to cluster node #1 ... DONE [18:02:10.528] Exporting 1 global objects (1.58 MiB) to cluster node #1 ... DONE [18:02:10.529] MultisessionFuture started [18:02:10.529] - Launch lazy future ... done [18:02:10.529] run() for 'MultisessionFuture' ... done > stopifnot(inherits(f5, "MultisessionFuture")) > v5 <- value(f5) [18:02:10.530] result() for ClusterFuture ... [18:02:10.530] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.530] - Validating connection of MultisessionFuture [18:02:10.555] - received message: FutureResult [18:02:10.555] - Received FutureResult [18:02:10.555] - Erased future from FutureRegistry [18:02:10.555] result() for ClusterFuture ... [18:02:10.556] - result already collected: FutureResult [18:02:10.556] result() for ClusterFuture ... done [18:02:10.556] receiveMessageFromWorker() for ClusterFuture ... done [18:02:10.556] result() for ClusterFuture ... done [18:02:10.556] result() for ClusterFuture ... [18:02:10.557] - result already collected: FutureResult [18:02:10.557] result() for ClusterFuture ... done > stopifnot(v5 == "not-owner") > > message("- Asserting ownership ... DONE") - Asserting ownership ... DONE > > > message("- Trying with invalid ownership ...") - Trying with invalid ownership ... > > message("Creating future #1:") Creating future #1: > f1 <- future({ 42L }) [18:02:10.557] getGlobalsAndPackages() ... [18:02:10.557] Searching for globals... [18:02:10.558] - globals found: [1] '{' [18:02:10.558] Searching for globals ... DONE [18:02:10.559] Resolving globals: FALSE [18:02:10.559] [18:02:10.559] [18:02:10.559] getGlobalsAndPackages() ... DONE [18:02:10.560] run() for 'Future' ... [18:02:10.560] - state: 'created' [18:02:10.560] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:10.572] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:10.572] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:10.572] - Field: 'node' [18:02:10.572] - Field: 'label' [18:02:10.573] - Field: 'local' [18:02:10.573] - Field: 'owner' [18:02:10.573] - Field: 'envir' [18:02:10.573] - Field: 'workers' [18:02:10.573] - Field: 'packages' [18:02:10.574] - Field: 'gc' [18:02:10.574] - Field: 'conditions' [18:02:10.574] - Field: 'persistent' [18:02:10.574] - Field: 'expr' [18:02:10.574] - Field: 'uuid' [18:02:10.574] - Field: 'seed' [18:02:10.575] - Field: 'version' [18:02:10.575] - Field: 'result' [18:02:10.575] - Field: 'asynchronous' [18:02:10.575] - Field: 'calls' [18:02:10.575] - Field: 'globals' [18:02:10.575] - Field: 'stdout' [18:02:10.576] - Field: 'earlySignal' [18:02:10.576] - Field: 'lazy' [18:02:10.576] - Field: 'state' [18:02:10.576] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:10.576] - Launch lazy future ... [18:02:10.577] Packages needed by the future expression (n = 0): [18:02:10.577] Packages needed by future strategies (n = 0): [18:02:10.577] { [18:02:10.577] { [18:02:10.577] { [18:02:10.577] ...future.startTime <- base::Sys.time() [18:02:10.577] { [18:02:10.577] { [18:02:10.577] { [18:02:10.577] { [18:02:10.577] base::local({ [18:02:10.577] has_future <- base::requireNamespace("future", [18:02:10.577] quietly = TRUE) [18:02:10.577] if (has_future) { [18:02:10.577] ns <- base::getNamespace("future") [18:02:10.577] version <- ns[[".package"]][["version"]] [18:02:10.577] if (is.null(version)) [18:02:10.577] version <- utils::packageVersion("future") [18:02:10.577] } [18:02:10.577] else { [18:02:10.577] version <- NULL [18:02:10.577] } [18:02:10.577] if (!has_future || version < "1.8.0") { [18:02:10.577] info <- base::c(r_version = base::gsub("R version ", [18:02:10.577] "", base::R.version$version.string), [18:02:10.577] platform = base::sprintf("%s (%s-bit)", [18:02:10.577] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:10.577] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.577] "release", "version")], collapse = " "), [18:02:10.577] hostname = base::Sys.info()[["nodename"]]) [18:02:10.577] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.577] info) [18:02:10.577] info <- base::paste(info, collapse = "; ") [18:02:10.577] if (!has_future) { [18:02:10.577] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.577] info) [18:02:10.577] } [18:02:10.577] else { [18:02:10.577] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.577] info, version) [18:02:10.577] } [18:02:10.577] base::stop(msg) [18:02:10.577] } [18:02:10.577] }) [18:02:10.577] } [18:02:10.577] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.577] base::options(mc.cores = 1L) [18:02:10.577] } [18:02:10.577] options(future.plan = NULL) [18:02:10.577] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.577] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.577] } [18:02:10.577] ...future.workdir <- getwd() [18:02:10.577] } [18:02:10.577] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.577] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.577] } [18:02:10.577] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.577] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.577] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.577] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.577] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.577] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.577] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.577] base::names(...future.oldOptions)) [18:02:10.577] } [18:02:10.577] if (FALSE) { [18:02:10.577] } [18:02:10.577] else { [18:02:10.577] if (TRUE) { [18:02:10.577] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.577] open = "w") [18:02:10.577] } [18:02:10.577] else { [18:02:10.577] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.577] windows = "NUL", "/dev/null"), open = "w") [18:02:10.577] } [18:02:10.577] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.577] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.577] base::sink(type = "output", split = FALSE) [18:02:10.577] base::close(...future.stdout) [18:02:10.577] }, add = TRUE) [18:02:10.577] } [18:02:10.577] ...future.frame <- base::sys.nframe() [18:02:10.577] ...future.conditions <- base::list() [18:02:10.577] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.577] if (FALSE) { [18:02:10.577] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.577] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.577] } [18:02:10.577] ...future.result <- base::tryCatch({ [18:02:10.577] base::withCallingHandlers({ [18:02:10.577] ...future.value <- base::withVisible(base::local({ [18:02:10.577] ...future.makeSendCondition <- local({ [18:02:10.577] sendCondition <- NULL [18:02:10.577] function(frame = 1L) { [18:02:10.577] if (is.function(sendCondition)) [18:02:10.577] return(sendCondition) [18:02:10.577] ns <- getNamespace("parallel") [18:02:10.577] if (exists("sendData", mode = "function", [18:02:10.577] envir = ns)) { [18:02:10.577] parallel_sendData <- get("sendData", mode = "function", [18:02:10.577] envir = ns) [18:02:10.577] envir <- sys.frame(frame) [18:02:10.577] master <- NULL [18:02:10.577] while (!identical(envir, .GlobalEnv) && [18:02:10.577] !identical(envir, emptyenv())) { [18:02:10.577] if (exists("master", mode = "list", envir = envir, [18:02:10.577] inherits = FALSE)) { [18:02:10.577] master <- get("master", mode = "list", [18:02:10.577] envir = envir, inherits = FALSE) [18:02:10.577] if (inherits(master, c("SOCKnode", [18:02:10.577] "SOCK0node"))) { [18:02:10.577] sendCondition <<- function(cond) { [18:02:10.577] data <- list(type = "VALUE", value = cond, [18:02:10.577] success = TRUE) [18:02:10.577] parallel_sendData(master, data) [18:02:10.577] } [18:02:10.577] return(sendCondition) [18:02:10.577] } [18:02:10.577] } [18:02:10.577] frame <- frame + 1L [18:02:10.577] envir <- sys.frame(frame) [18:02:10.577] } [18:02:10.577] } [18:02:10.577] sendCondition <<- function(cond) NULL [18:02:10.577] } [18:02:10.577] }) [18:02:10.577] withCallingHandlers({ [18:02:10.577] { [18:02:10.577] 42L [18:02:10.577] } [18:02:10.577] }, immediateCondition = function(cond) { [18:02:10.577] sendCondition <- ...future.makeSendCondition() [18:02:10.577] sendCondition(cond) [18:02:10.577] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.577] { [18:02:10.577] inherits <- base::inherits [18:02:10.577] invokeRestart <- base::invokeRestart [18:02:10.577] is.null <- base::is.null [18:02:10.577] muffled <- FALSE [18:02:10.577] if (inherits(cond, "message")) { [18:02:10.577] muffled <- grepl(pattern, "muffleMessage") [18:02:10.577] if (muffled) [18:02:10.577] invokeRestart("muffleMessage") [18:02:10.577] } [18:02:10.577] else if (inherits(cond, "warning")) { [18:02:10.577] muffled <- grepl(pattern, "muffleWarning") [18:02:10.577] if (muffled) [18:02:10.577] invokeRestart("muffleWarning") [18:02:10.577] } [18:02:10.577] else if (inherits(cond, "condition")) { [18:02:10.577] if (!is.null(pattern)) { [18:02:10.577] computeRestarts <- base::computeRestarts [18:02:10.577] grepl <- base::grepl [18:02:10.577] restarts <- computeRestarts(cond) [18:02:10.577] for (restart in restarts) { [18:02:10.577] name <- restart$name [18:02:10.577] if (is.null(name)) [18:02:10.577] next [18:02:10.577] if (!grepl(pattern, name)) [18:02:10.577] next [18:02:10.577] invokeRestart(restart) [18:02:10.577] muffled <- TRUE [18:02:10.577] break [18:02:10.577] } [18:02:10.577] } [18:02:10.577] } [18:02:10.577] invisible(muffled) [18:02:10.577] } [18:02:10.577] muffleCondition(cond) [18:02:10.577] }) [18:02:10.577] })) [18:02:10.577] future::FutureResult(value = ...future.value$value, [18:02:10.577] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.577] ...future.rng), globalenv = if (FALSE) [18:02:10.577] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.577] ...future.globalenv.names)) [18:02:10.577] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.577] }, condition = base::local({ [18:02:10.577] c <- base::c [18:02:10.577] inherits <- base::inherits [18:02:10.577] invokeRestart <- base::invokeRestart [18:02:10.577] length <- base::length [18:02:10.577] list <- base::list [18:02:10.577] seq.int <- base::seq.int [18:02:10.577] signalCondition <- base::signalCondition [18:02:10.577] sys.calls <- base::sys.calls [18:02:10.577] `[[` <- base::`[[` [18:02:10.577] `+` <- base::`+` [18:02:10.577] `<<-` <- base::`<<-` [18:02:10.577] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.577] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.577] 3L)] [18:02:10.577] } [18:02:10.577] function(cond) { [18:02:10.577] is_error <- inherits(cond, "error") [18:02:10.577] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.577] NULL) [18:02:10.577] if (is_error) { [18:02:10.577] sessionInformation <- function() { [18:02:10.577] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.577] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.577] search = base::search(), system = base::Sys.info()) [18:02:10.577] } [18:02:10.577] ...future.conditions[[length(...future.conditions) + [18:02:10.577] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.577] cond$call), session = sessionInformation(), [18:02:10.577] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.577] signalCondition(cond) [18:02:10.577] } [18:02:10.577] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.577] "immediateCondition"))) { [18:02:10.577] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.577] ...future.conditions[[length(...future.conditions) + [18:02:10.577] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.577] if (TRUE && !signal) { [18:02:10.577] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.577] { [18:02:10.577] inherits <- base::inherits [18:02:10.577] invokeRestart <- base::invokeRestart [18:02:10.577] is.null <- base::is.null [18:02:10.577] muffled <- FALSE [18:02:10.577] if (inherits(cond, "message")) { [18:02:10.577] muffled <- grepl(pattern, "muffleMessage") [18:02:10.577] if (muffled) [18:02:10.577] invokeRestart("muffleMessage") [18:02:10.577] } [18:02:10.577] else if (inherits(cond, "warning")) { [18:02:10.577] muffled <- grepl(pattern, "muffleWarning") [18:02:10.577] if (muffled) [18:02:10.577] invokeRestart("muffleWarning") [18:02:10.577] } [18:02:10.577] else if (inherits(cond, "condition")) { [18:02:10.577] if (!is.null(pattern)) { [18:02:10.577] computeRestarts <- base::computeRestarts [18:02:10.577] grepl <- base::grepl [18:02:10.577] restarts <- computeRestarts(cond) [18:02:10.577] for (restart in restarts) { [18:02:10.577] name <- restart$name [18:02:10.577] if (is.null(name)) [18:02:10.577] next [18:02:10.577] if (!grepl(pattern, name)) [18:02:10.577] next [18:02:10.577] invokeRestart(restart) [18:02:10.577] muffled <- TRUE [18:02:10.577] break [18:02:10.577] } [18:02:10.577] } [18:02:10.577] } [18:02:10.577] invisible(muffled) [18:02:10.577] } [18:02:10.577] muffleCondition(cond, pattern = "^muffle") [18:02:10.577] } [18:02:10.577] } [18:02:10.577] else { [18:02:10.577] if (TRUE) { [18:02:10.577] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.577] { [18:02:10.577] inherits <- base::inherits [18:02:10.577] invokeRestart <- base::invokeRestart [18:02:10.577] is.null <- base::is.null [18:02:10.577] muffled <- FALSE [18:02:10.577] if (inherits(cond, "message")) { [18:02:10.577] muffled <- grepl(pattern, "muffleMessage") [18:02:10.577] if (muffled) [18:02:10.577] invokeRestart("muffleMessage") [18:02:10.577] } [18:02:10.577] else if (inherits(cond, "warning")) { [18:02:10.577] muffled <- grepl(pattern, "muffleWarning") [18:02:10.577] if (muffled) [18:02:10.577] invokeRestart("muffleWarning") [18:02:10.577] } [18:02:10.577] else if (inherits(cond, "condition")) { [18:02:10.577] if (!is.null(pattern)) { [18:02:10.577] computeRestarts <- base::computeRestarts [18:02:10.577] grepl <- base::grepl [18:02:10.577] restarts <- computeRestarts(cond) [18:02:10.577] for (restart in restarts) { [18:02:10.577] name <- restart$name [18:02:10.577] if (is.null(name)) [18:02:10.577] next [18:02:10.577] if (!grepl(pattern, name)) [18:02:10.577] next [18:02:10.577] invokeRestart(restart) [18:02:10.577] muffled <- TRUE [18:02:10.577] break [18:02:10.577] } [18:02:10.577] } [18:02:10.577] } [18:02:10.577] invisible(muffled) [18:02:10.577] } [18:02:10.577] muffleCondition(cond, pattern = "^muffle") [18:02:10.577] } [18:02:10.577] } [18:02:10.577] } [18:02:10.577] })) [18:02:10.577] }, error = function(ex) { [18:02:10.577] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.577] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.577] ...future.rng), started = ...future.startTime, [18:02:10.577] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.577] version = "1.8"), class = "FutureResult") [18:02:10.577] }, finally = { [18:02:10.577] if (!identical(...future.workdir, getwd())) [18:02:10.577] setwd(...future.workdir) [18:02:10.577] { [18:02:10.577] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.577] ...future.oldOptions$nwarnings <- NULL [18:02:10.577] } [18:02:10.577] base::options(...future.oldOptions) [18:02:10.577] if (.Platform$OS.type == "windows") { [18:02:10.577] old_names <- names(...future.oldEnvVars) [18:02:10.577] envs <- base::Sys.getenv() [18:02:10.577] names <- names(envs) [18:02:10.577] common <- intersect(names, old_names) [18:02:10.577] added <- setdiff(names, old_names) [18:02:10.577] removed <- setdiff(old_names, names) [18:02:10.577] changed <- common[...future.oldEnvVars[common] != [18:02:10.577] envs[common]] [18:02:10.577] NAMES <- toupper(changed) [18:02:10.577] args <- list() [18:02:10.577] for (kk in seq_along(NAMES)) { [18:02:10.577] name <- changed[[kk]] [18:02:10.577] NAME <- NAMES[[kk]] [18:02:10.577] if (name != NAME && is.element(NAME, old_names)) [18:02:10.577] next [18:02:10.577] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.577] } [18:02:10.577] NAMES <- toupper(added) [18:02:10.577] for (kk in seq_along(NAMES)) { [18:02:10.577] name <- added[[kk]] [18:02:10.577] NAME <- NAMES[[kk]] [18:02:10.577] if (name != NAME && is.element(NAME, old_names)) [18:02:10.577] next [18:02:10.577] args[[name]] <- "" [18:02:10.577] } [18:02:10.577] NAMES <- toupper(removed) [18:02:10.577] for (kk in seq_along(NAMES)) { [18:02:10.577] name <- removed[[kk]] [18:02:10.577] NAME <- NAMES[[kk]] [18:02:10.577] if (name != NAME && is.element(NAME, old_names)) [18:02:10.577] next [18:02:10.577] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.577] } [18:02:10.577] if (length(args) > 0) [18:02:10.577] base::do.call(base::Sys.setenv, args = args) [18:02:10.577] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.577] } [18:02:10.577] else { [18:02:10.577] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.577] } [18:02:10.577] { [18:02:10.577] if (base::length(...future.futureOptionsAdded) > [18:02:10.577] 0L) { [18:02:10.577] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.577] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.577] base::options(opts) [18:02:10.577] } [18:02:10.577] { [18:02:10.577] { [18:02:10.577] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.577] NULL [18:02:10.577] } [18:02:10.577] options(future.plan = NULL) [18:02:10.577] if (is.na(NA_character_)) [18:02:10.577] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.577] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.577] future::plan(list(function (..., workers = 2L, [18:02:10.577] envir = parent.frame()) [18:02:10.577] strategy(..., workers = workers, envir = envir)), [18:02:10.577] .cleanup = FALSE, .init = FALSE) [18:02:10.577] } [18:02:10.577] } [18:02:10.577] } [18:02:10.577] }) [18:02:10.577] if (TRUE) { [18:02:10.577] base::sink(type = "output", split = FALSE) [18:02:10.577] if (TRUE) { [18:02:10.577] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.577] } [18:02:10.577] else { [18:02:10.577] ...future.result["stdout"] <- base::list(NULL) [18:02:10.577] } [18:02:10.577] base::close(...future.stdout) [18:02:10.577] ...future.stdout <- NULL [18:02:10.577] } [18:02:10.577] ...future.result$conditions <- ...future.conditions [18:02:10.577] ...future.result$finished <- base::Sys.time() [18:02:10.577] ...future.result [18:02:10.577] } [18:02:10.583] MultisessionFuture started [18:02:10.583] - Launch lazy future ... done [18:02:10.583] run() for 'MultisessionFuture' ... done > ## FIXME: print() calls resolved(), which triggers a result() collection, > ## and future 'f1' to become resolved. This means future 'f2' below > ## may launch on the same worker as 'f1'. So, don't resolve(). > # print(f1) > cat(sprintf("Future #1 session: %d\n", f1$node)) Future #1 session: 1 > stopifnot(identical(f1$owner, session_uuid)) > print(usedNodes(f1)) used total 1 2 > > message("Creating future #2:") Creating future #2: > f2 <- future({ value(f1) }) [18:02:10.584] getGlobalsAndPackages() ... [18:02:10.584] Searching for globals... [18:02:10.585] - globals found: [3] '{', 'value', 'f1' [18:02:10.585] Searching for globals ... DONE [18:02:10.586] Resolving globals: FALSE [18:02:10.589] The total size of the 1 globals is 1.57 MiB (1649664 bytes) [18:02:10.589] The total size of the 1 globals exported for future expression ('{; value(f1); }') is 1.57 MiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'f1' (1.57 MiB of class 'environment') [18:02:10.590] - globals: [1] 'f1' [18:02:10.590] - packages: [1] 'future' [18:02:10.590] getGlobalsAndPackages() ... DONE [18:02:10.590] run() for 'Future' ... [18:02:10.591] - state: 'created' [18:02:10.591] - Future backend: 'FutureStrategy', 'tweaked', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:10.603] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:10.603] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:10.603] - Field: 'node' [18:02:10.603] - Field: 'label' [18:02:10.603] - Field: 'local' [18:02:10.604] - Field: 'owner' [18:02:10.604] - Field: 'envir' [18:02:10.604] - Field: 'workers' [18:02:10.604] - Field: 'packages' [18:02:10.604] - Field: 'gc' [18:02:10.605] - Field: 'conditions' [18:02:10.605] - Field: 'persistent' [18:02:10.605] - Field: 'expr' [18:02:10.605] - Field: 'uuid' [18:02:10.605] - Field: 'seed' [18:02:10.606] - Field: 'version' [18:02:10.606] - Field: 'result' [18:02:10.606] - Field: 'asynchronous' [18:02:10.606] - Field: 'calls' [18:02:10.606] - Field: 'globals' [18:02:10.607] - Field: 'stdout' [18:02:10.607] - Field: 'earlySignal' [18:02:10.607] - Field: 'lazy' [18:02:10.607] - Field: 'state' [18:02:10.607] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:10.608] - Launch lazy future ... [18:02:10.608] Packages needed by the future expression (n = 1): 'future' [18:02:10.608] Packages needed by future strategies (n = 0): [18:02:10.609] { [18:02:10.609] { [18:02:10.609] { [18:02:10.609] ...future.startTime <- base::Sys.time() [18:02:10.609] { [18:02:10.609] { [18:02:10.609] { [18:02:10.609] { [18:02:10.609] { [18:02:10.609] base::local({ [18:02:10.609] has_future <- base::requireNamespace("future", [18:02:10.609] quietly = TRUE) [18:02:10.609] if (has_future) { [18:02:10.609] ns <- base::getNamespace("future") [18:02:10.609] version <- ns[[".package"]][["version"]] [18:02:10.609] if (is.null(version)) [18:02:10.609] version <- utils::packageVersion("future") [18:02:10.609] } [18:02:10.609] else { [18:02:10.609] version <- NULL [18:02:10.609] } [18:02:10.609] if (!has_future || version < "1.8.0") { [18:02:10.609] info <- base::c(r_version = base::gsub("R version ", [18:02:10.609] "", base::R.version$version.string), [18:02:10.609] platform = base::sprintf("%s (%s-bit)", [18:02:10.609] base::R.version$platform, 8 * [18:02:10.609] base::.Machine$sizeof.pointer), [18:02:10.609] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:10.609] "release", "version")], collapse = " "), [18:02:10.609] hostname = base::Sys.info()[["nodename"]]) [18:02:10.609] info <- base::sprintf("%s: %s", base::names(info), [18:02:10.609] info) [18:02:10.609] info <- base::paste(info, collapse = "; ") [18:02:10.609] if (!has_future) { [18:02:10.609] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:10.609] info) [18:02:10.609] } [18:02:10.609] else { [18:02:10.609] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:10.609] info, version) [18:02:10.609] } [18:02:10.609] base::stop(msg) [18:02:10.609] } [18:02:10.609] }) [18:02:10.609] } [18:02:10.609] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:10.609] base::options(mc.cores = 1L) [18:02:10.609] } [18:02:10.609] base::local({ [18:02:10.609] for (pkg in "future") { [18:02:10.609] base::loadNamespace(pkg) [18:02:10.609] base::library(pkg, character.only = TRUE) [18:02:10.609] } [18:02:10.609] }) [18:02:10.609] } [18:02:10.609] options(future.plan = NULL) [18:02:10.609] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.609] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:10.609] } [18:02:10.609] ...future.workdir <- getwd() [18:02:10.609] } [18:02:10.609] ...future.oldOptions <- base::as.list(base::.Options) [18:02:10.609] ...future.oldEnvVars <- base::Sys.getenv() [18:02:10.609] } [18:02:10.609] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:10.609] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:10.609] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:10.609] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:10.609] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:10.609] future.stdout.windows.reencode = NULL, width = 80L) [18:02:10.609] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:10.609] base::names(...future.oldOptions)) [18:02:10.609] } [18:02:10.609] if (FALSE) { [18:02:10.609] } [18:02:10.609] else { [18:02:10.609] if (TRUE) { [18:02:10.609] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:10.609] open = "w") [18:02:10.609] } [18:02:10.609] else { [18:02:10.609] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:10.609] windows = "NUL", "/dev/null"), open = "w") [18:02:10.609] } [18:02:10.609] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:10.609] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:10.609] base::sink(type = "output", split = FALSE) [18:02:10.609] base::close(...future.stdout) [18:02:10.609] }, add = TRUE) [18:02:10.609] } [18:02:10.609] ...future.frame <- base::sys.nframe() [18:02:10.609] ...future.conditions <- base::list() [18:02:10.609] ...future.rng <- base::globalenv()$.Random.seed [18:02:10.609] if (FALSE) { [18:02:10.609] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:10.609] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:10.609] } [18:02:10.609] ...future.result <- base::tryCatch({ [18:02:10.609] base::withCallingHandlers({ [18:02:10.609] ...future.value <- base::withVisible(base::local({ [18:02:10.609] ...future.makeSendCondition <- local({ [18:02:10.609] sendCondition <- NULL [18:02:10.609] function(frame = 1L) { [18:02:10.609] if (is.function(sendCondition)) [18:02:10.609] return(sendCondition) [18:02:10.609] ns <- getNamespace("parallel") [18:02:10.609] if (exists("sendData", mode = "function", [18:02:10.609] envir = ns)) { [18:02:10.609] parallel_sendData <- get("sendData", mode = "function", [18:02:10.609] envir = ns) [18:02:10.609] envir <- sys.frame(frame) [18:02:10.609] master <- NULL [18:02:10.609] while (!identical(envir, .GlobalEnv) && [18:02:10.609] !identical(envir, emptyenv())) { [18:02:10.609] if (exists("master", mode = "list", envir = envir, [18:02:10.609] inherits = FALSE)) { [18:02:10.609] master <- get("master", mode = "list", [18:02:10.609] envir = envir, inherits = FALSE) [18:02:10.609] if (inherits(master, c("SOCKnode", [18:02:10.609] "SOCK0node"))) { [18:02:10.609] sendCondition <<- function(cond) { [18:02:10.609] data <- list(type = "VALUE", value = cond, [18:02:10.609] success = TRUE) [18:02:10.609] parallel_sendData(master, data) [18:02:10.609] } [18:02:10.609] return(sendCondition) [18:02:10.609] } [18:02:10.609] } [18:02:10.609] frame <- frame + 1L [18:02:10.609] envir <- sys.frame(frame) [18:02:10.609] } [18:02:10.609] } [18:02:10.609] sendCondition <<- function(cond) NULL [18:02:10.609] } [18:02:10.609] }) [18:02:10.609] withCallingHandlers({ [18:02:10.609] { [18:02:10.609] value(f1) [18:02:10.609] } [18:02:10.609] }, immediateCondition = function(cond) { [18:02:10.609] sendCondition <- ...future.makeSendCondition() [18:02:10.609] sendCondition(cond) [18:02:10.609] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.609] { [18:02:10.609] inherits <- base::inherits [18:02:10.609] invokeRestart <- base::invokeRestart [18:02:10.609] is.null <- base::is.null [18:02:10.609] muffled <- FALSE [18:02:10.609] if (inherits(cond, "message")) { [18:02:10.609] muffled <- grepl(pattern, "muffleMessage") [18:02:10.609] if (muffled) [18:02:10.609] invokeRestart("muffleMessage") [18:02:10.609] } [18:02:10.609] else if (inherits(cond, "warning")) { [18:02:10.609] muffled <- grepl(pattern, "muffleWarning") [18:02:10.609] if (muffled) [18:02:10.609] invokeRestart("muffleWarning") [18:02:10.609] } [18:02:10.609] else if (inherits(cond, "condition")) { [18:02:10.609] if (!is.null(pattern)) { [18:02:10.609] computeRestarts <- base::computeRestarts [18:02:10.609] grepl <- base::grepl [18:02:10.609] restarts <- computeRestarts(cond) [18:02:10.609] for (restart in restarts) { [18:02:10.609] name <- restart$name [18:02:10.609] if (is.null(name)) [18:02:10.609] next [18:02:10.609] if (!grepl(pattern, name)) [18:02:10.609] next [18:02:10.609] invokeRestart(restart) [18:02:10.609] muffled <- TRUE [18:02:10.609] break [18:02:10.609] } [18:02:10.609] } [18:02:10.609] } [18:02:10.609] invisible(muffled) [18:02:10.609] } [18:02:10.609] muffleCondition(cond) [18:02:10.609] }) [18:02:10.609] })) [18:02:10.609] future::FutureResult(value = ...future.value$value, [18:02:10.609] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.609] ...future.rng), globalenv = if (FALSE) [18:02:10.609] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:10.609] ...future.globalenv.names)) [18:02:10.609] else NULL, started = ...future.startTime, version = "1.8") [18:02:10.609] }, condition = base::local({ [18:02:10.609] c <- base::c [18:02:10.609] inherits <- base::inherits [18:02:10.609] invokeRestart <- base::invokeRestart [18:02:10.609] length <- base::length [18:02:10.609] list <- base::list [18:02:10.609] seq.int <- base::seq.int [18:02:10.609] signalCondition <- base::signalCondition [18:02:10.609] sys.calls <- base::sys.calls [18:02:10.609] `[[` <- base::`[[` [18:02:10.609] `+` <- base::`+` [18:02:10.609] `<<-` <- base::`<<-` [18:02:10.609] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:10.609] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:10.609] 3L)] [18:02:10.609] } [18:02:10.609] function(cond) { [18:02:10.609] is_error <- inherits(cond, "error") [18:02:10.609] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:10.609] NULL) [18:02:10.609] if (is_error) { [18:02:10.609] sessionInformation <- function() { [18:02:10.609] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:10.609] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:10.609] search = base::search(), system = base::Sys.info()) [18:02:10.609] } [18:02:10.609] ...future.conditions[[length(...future.conditions) + [18:02:10.609] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:10.609] cond$call), session = sessionInformation(), [18:02:10.609] timestamp = base::Sys.time(), signaled = 0L) [18:02:10.609] signalCondition(cond) [18:02:10.609] } [18:02:10.609] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:10.609] "immediateCondition"))) { [18:02:10.609] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:10.609] ...future.conditions[[length(...future.conditions) + [18:02:10.609] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:10.609] if (TRUE && !signal) { [18:02:10.609] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.609] { [18:02:10.609] inherits <- base::inherits [18:02:10.609] invokeRestart <- base::invokeRestart [18:02:10.609] is.null <- base::is.null [18:02:10.609] muffled <- FALSE [18:02:10.609] if (inherits(cond, "message")) { [18:02:10.609] muffled <- grepl(pattern, "muffleMessage") [18:02:10.609] if (muffled) [18:02:10.609] invokeRestart("muffleMessage") [18:02:10.609] } [18:02:10.609] else if (inherits(cond, "warning")) { [18:02:10.609] muffled <- grepl(pattern, "muffleWarning") [18:02:10.609] if (muffled) [18:02:10.609] invokeRestart("muffleWarning") [18:02:10.609] } [18:02:10.609] else if (inherits(cond, "condition")) { [18:02:10.609] if (!is.null(pattern)) { [18:02:10.609] computeRestarts <- base::computeRestarts [18:02:10.609] grepl <- base::grepl [18:02:10.609] restarts <- computeRestarts(cond) [18:02:10.609] for (restart in restarts) { [18:02:10.609] name <- restart$name [18:02:10.609] if (is.null(name)) [18:02:10.609] next [18:02:10.609] if (!grepl(pattern, name)) [18:02:10.609] next [18:02:10.609] invokeRestart(restart) [18:02:10.609] muffled <- TRUE [18:02:10.609] break [18:02:10.609] } [18:02:10.609] } [18:02:10.609] } [18:02:10.609] invisible(muffled) [18:02:10.609] } [18:02:10.609] muffleCondition(cond, pattern = "^muffle") [18:02:10.609] } [18:02:10.609] } [18:02:10.609] else { [18:02:10.609] if (TRUE) { [18:02:10.609] muffleCondition <- function (cond, pattern = "^muffle") [18:02:10.609] { [18:02:10.609] inherits <- base::inherits [18:02:10.609] invokeRestart <- base::invokeRestart [18:02:10.609] is.null <- base::is.null [18:02:10.609] muffled <- FALSE [18:02:10.609] if (inherits(cond, "message")) { [18:02:10.609] muffled <- grepl(pattern, "muffleMessage") [18:02:10.609] if (muffled) [18:02:10.609] invokeRestart("muffleMessage") [18:02:10.609] } [18:02:10.609] else if (inherits(cond, "warning")) { [18:02:10.609] muffled <- grepl(pattern, "muffleWarning") [18:02:10.609] if (muffled) [18:02:10.609] invokeRestart("muffleWarning") [18:02:10.609] } [18:02:10.609] else if (inherits(cond, "condition")) { [18:02:10.609] if (!is.null(pattern)) { [18:02:10.609] computeRestarts <- base::computeRestarts [18:02:10.609] grepl <- base::grepl [18:02:10.609] restarts <- computeRestarts(cond) [18:02:10.609] for (restart in restarts) { [18:02:10.609] name <- restart$name [18:02:10.609] if (is.null(name)) [18:02:10.609] next [18:02:10.609] if (!grepl(pattern, name)) [18:02:10.609] next [18:02:10.609] invokeRestart(restart) [18:02:10.609] muffled <- TRUE [18:02:10.609] break [18:02:10.609] } [18:02:10.609] } [18:02:10.609] } [18:02:10.609] invisible(muffled) [18:02:10.609] } [18:02:10.609] muffleCondition(cond, pattern = "^muffle") [18:02:10.609] } [18:02:10.609] } [18:02:10.609] } [18:02:10.609] })) [18:02:10.609] }, error = function(ex) { [18:02:10.609] base::structure(base::list(value = NULL, visible = NULL, [18:02:10.609] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:10.609] ...future.rng), started = ...future.startTime, [18:02:10.609] finished = Sys.time(), session_uuid = NA_character_, [18:02:10.609] version = "1.8"), class = "FutureResult") [18:02:10.609] }, finally = { [18:02:10.609] if (!identical(...future.workdir, getwd())) [18:02:10.609] setwd(...future.workdir) [18:02:10.609] { [18:02:10.609] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:10.609] ...future.oldOptions$nwarnings <- NULL [18:02:10.609] } [18:02:10.609] base::options(...future.oldOptions) [18:02:10.609] if (.Platform$OS.type == "windows") { [18:02:10.609] old_names <- names(...future.oldEnvVars) [18:02:10.609] envs <- base::Sys.getenv() [18:02:10.609] names <- names(envs) [18:02:10.609] common <- intersect(names, old_names) [18:02:10.609] added <- setdiff(names, old_names) [18:02:10.609] removed <- setdiff(old_names, names) [18:02:10.609] changed <- common[...future.oldEnvVars[common] != [18:02:10.609] envs[common]] [18:02:10.609] NAMES <- toupper(changed) [18:02:10.609] args <- list() [18:02:10.609] for (kk in seq_along(NAMES)) { [18:02:10.609] name <- changed[[kk]] [18:02:10.609] NAME <- NAMES[[kk]] [18:02:10.609] if (name != NAME && is.element(NAME, old_names)) [18:02:10.609] next [18:02:10.609] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.609] } [18:02:10.609] NAMES <- toupper(added) [18:02:10.609] for (kk in seq_along(NAMES)) { [18:02:10.609] name <- added[[kk]] [18:02:10.609] NAME <- NAMES[[kk]] [18:02:10.609] if (name != NAME && is.element(NAME, old_names)) [18:02:10.609] next [18:02:10.609] args[[name]] <- "" [18:02:10.609] } [18:02:10.609] NAMES <- toupper(removed) [18:02:10.609] for (kk in seq_along(NAMES)) { [18:02:10.609] name <- removed[[kk]] [18:02:10.609] NAME <- NAMES[[kk]] [18:02:10.609] if (name != NAME && is.element(NAME, old_names)) [18:02:10.609] next [18:02:10.609] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:10.609] } [18:02:10.609] if (length(args) > 0) [18:02:10.609] base::do.call(base::Sys.setenv, args = args) [18:02:10.609] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:10.609] } [18:02:10.609] else { [18:02:10.609] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:10.609] } [18:02:10.609] { [18:02:10.609] if (base::length(...future.futureOptionsAdded) > [18:02:10.609] 0L) { [18:02:10.609] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:10.609] base::names(opts) <- ...future.futureOptionsAdded [18:02:10.609] base::options(opts) [18:02:10.609] } [18:02:10.609] { [18:02:10.609] { [18:02:10.609] base::options(mc.cores = ...future.mc.cores.old) [18:02:10.609] NULL [18:02:10.609] } [18:02:10.609] options(future.plan = NULL) [18:02:10.609] if (is.na(NA_character_)) [18:02:10.609] Sys.unsetenv("R_FUTURE_PLAN") [18:02:10.609] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:10.609] future::plan(list(function (..., workers = 2L, [18:02:10.609] envir = parent.frame()) [18:02:10.609] strategy(..., workers = workers, envir = envir)), [18:02:10.609] .cleanup = FALSE, .init = FALSE) [18:02:10.609] } [18:02:10.609] } [18:02:10.609] } [18:02:10.609] }) [18:02:10.609] if (TRUE) { [18:02:10.609] base::sink(type = "output", split = FALSE) [18:02:10.609] if (TRUE) { [18:02:10.609] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:10.609] } [18:02:10.609] else { [18:02:10.609] ...future.result["stdout"] <- base::list(NULL) [18:02:10.609] } [18:02:10.609] base::close(...future.stdout) [18:02:10.609] ...future.stdout <- NULL [18:02:10.609] } [18:02:10.609] ...future.result$conditions <- ...future.conditions [18:02:10.609] ...future.result$finished <- base::Sys.time() [18:02:10.609] ...future.result [18:02:10.609] } [18:02:10.695] Exporting 1 global objects (1.57 MiB) to cluster node #2 ... [18:02:10.698] Exporting 'f1' (1.57 MiB) to cluster node #2 ... [18:02:10.710] Exporting 'f1' (1.57 MiB) to cluster node #2 ... DONE [18:02:10.711] Exporting 1 global objects (1.57 MiB) to cluster node #2 ... DONE [18:02:10.711] MultisessionFuture started [18:02:10.711] - Launch lazy future ... done [18:02:10.712] run() for 'MultisessionFuture' ... done > print(f2) MultisessionFuture: Label: '' Expression: { value(f1) } Lazy evaluation: FALSE Asynchronous evaluation: TRUE Local evaluation: TRUE Environment: R_GlobalEnv Capture standard output: TRUE Capture condition classes: 'condition' (excluding 'nothing') Globals: 1 objects totaling 1.57 MiB (MultisessionFuture 'f1' of 1.57 MiB) Packages: 1 packages ('future') L'Ecuyer-CMRG RNG seed: (seed = FALSE) [18:02:10.772] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.773] - Validating connection of MultisessionFuture [18:02:10.783] - received message: FutureResult [18:02:10.783] - Received FutureResult [18:02:10.784] - Erased future from FutureRegistry [18:02:10.784] result() for ClusterFuture ... [18:02:10.784] - result already collected: FutureResult [18:02:10.784] result() for ClusterFuture ... done [18:02:10.784] signalConditions() ... [18:02:10.784] - include = 'immediateCondition' [18:02:10.785] - exclude = [18:02:10.785] - resignal = FALSE [18:02:10.785] - Number of conditions: 1 [18:02:10.785] signalConditions() ... done [18:02:10.785] receiveMessageFromWorker() for ClusterFuture ... done Resolved: TRUE Value: Conditions captured: Early signaling: FALSE Owner process: a5c6de4e-598d-8aa8-f321-f3a534fd5dec Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' > cat(sprintf("Future #2 session: %d\n", f2$node)) Future #2 session: 2 > stopifnot(identical(f2$owner, session_uuid)) > print(usedNodes(f2)) used total 1 2 > > message("Getting value of future #2:") Getting value of future #2: > res <- tryCatch(value(f2), error = identity) [18:02:10.790] result() for ClusterFuture ... [18:02:10.790] - result already collected: FutureResult [18:02:10.790] result() for ClusterFuture ... done [18:02:10.790] result() for ClusterFuture ... [18:02:10.790] - result already collected: FutureResult [18:02:10.790] result() for ClusterFuture ... done [18:02:10.791] signalConditions() ... [18:02:10.791] - include = 'immediateCondition' [18:02:10.791] - exclude = [18:02:10.791] - resignal = FALSE [18:02:10.791] - Number of conditions: 1 [18:02:10.791] signalConditions() ... done [18:02:10.792] Future state: 'finished' [18:02:10.792] result() for ClusterFuture ... [18:02:10.792] - result already collected: FutureResult [18:02:10.792] result() for ClusterFuture ... done [18:02:10.792] signalConditions() ... [18:02:10.792] - include = 'condition' [18:02:10.793] - exclude = 'immediateCondition' [18:02:10.793] - resignal = TRUE [18:02:10.793] - Number of conditions: 1 [18:02:10.793] - Condition #1: 'FutureError', 'error', 'FutureCondition', 'condition' [18:02:10.793] signalConditions() ... done > print(res) Future UUID: b938170a-b93f-16c7-8eb0-e3044d1c7b35 DEBUG: BEGIN TROUBLESHOOTING HELP Future involved: MultisessionFuture: Label: '' Expression: { 42L } Lazy evaluation: FALSE Asynchronous evaluation: TRUE Local evaluation: TRUE Environment: R_GlobalEnv Capture standard output: TRUE Capture condition classes: 'condition' (excluding 'nothing') Globals: Packages: L'Ecuyer-CMRG RNG seed: (seed = FALSE) Resolved: FALSE Value: Conditions captured: Early signaling: FALSE Owner process: a5c6de4e-598d-8aa8-f321-f3a534fd5dec Class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' DEBUG: END TROUBLESHOOTING HELP > stopifnot(inherits(res, "error")) > > v1 <- value(f1) [18:02:10.795] result() for ClusterFuture ... [18:02:10.795] receiveMessageFromWorker() for ClusterFuture ... [18:02:10.795] - Validating connection of MultisessionFuture [18:02:10.795] - received message: FutureResult [18:02:10.796] - Received FutureResult [18:02:10.796] - Erased future from FutureRegistry [18:02:10.796] result() for ClusterFuture ... [18:02:10.796] - result already collected: FutureResult [18:02:10.796] result() for ClusterFuture ... done [18:02:10.796] receiveMessageFromWorker() for ClusterFuture ... done [18:02:10.796] result() for ClusterFuture ... done [18:02:10.797] result() for ClusterFuture ... [18:02:10.797] - result already collected: FutureResult [18:02:10.797] result() for ClusterFuture ... done > print(v1) [1] 42 > stopifnot(v1 == 42L) > > message("- Trying with invalid ownership ... DONE") - Trying with invalid ownership ... DONE > > message("*** future() - invalid ownership ... DONE") *** future() - invalid ownership ... DONE > > source("incl/end.R") [18:02:10.798] plan(): Setting new future strategy stack: [18:02:10.798] List of future strategies: [18:02:10.798] 1. FutureStrategy: [18:02:10.798] - args: function (..., envir = parent.frame()) [18:02:10.798] - tweaked: FALSE [18:02:10.798] - call: future::plan(oplan) [18:02:10.799] plan(): nbrOfWorkers() = 1 Failed to undo environment variables: - Expected environment variables: [n=201] '!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', 'OMP_THREAD_LIMIT', 'OS', 'PATH', 'PATHEXT', 'PROCESSOR_ARCHITECTURE', 'PROCESSOR_IDENTIFIER', 'PROCESSOR_LEVEL', 'PROCESSOR_REVISION', 'PROGRAMFILES', 'PROMPT', 'PSModulePath', 'PUBLIC', 'PWD', 'ProgramData', 'ProgramFiles(x86)', 'ProgramW6432', 'RETICULATE_AUTOCONFIGURE', 'RTOOLS43_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_RTOOLS43_PATH', 'R_SCRIPT_LEGACY', 'R_SHARE_DIR', '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_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_MATRIX_DATA_', '_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_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_SUBDIRS_STRICT_', '_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_USE_ALIASES_FROM_CRAN_', '_R_CLASS_MATRIX_ARRAY_', '_R_INSTALL_TIME_PATCHES_', '_R_S3_METHOD_LOOKUP_BASEENV_AFTER_GLOBALENV_', '_R_SHLIB_BUILD_OBJECTS_SYMBOL_TABLES_', 'maj.version', 'nextArg--timingsnextArg--install' - Environment variables still there: [n=0] - Environment variables missing: [n=1] 'MAKEFLAGS' Differences environment variable by environment variable: List of 3 $ name : chr "MAKEFLAGS" $ expected: 'Dlist' chr "" $ actual : 'Dlist' chr NA > > proc.time() user system elapsed 0.65 0.07 1.78