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:22.750] plan(): Setting new future strategy stack: [18:02:22.752] List of future strategies: [18:02:22.752] 1. sequential: [18:02:22.752] - args: function (..., envir = parent.frame()) [18:02:22.752] - tweaked: FALSE [18:02:22.752] - call: future::plan("sequential") [18:02:22.767] plan(): nbrOfWorkers() = 1 > > strategies <- supportedStrategies() > > message("*** Nested futures ...") *** Nested futures ... > > for (strategy1 in strategies) { + ## Speed up CRAN checks: Skip on CRAN Windows 32-bit + if (!fullTest && isWin32) next + + for (strategy2 in strategies) { + message(sprintf("- plan(list('%s', '%s')) ...", strategy1, strategy2)) + plan(list(a = strategy1, b = strategy2)) + + nested <- plan("list") + stopifnot( + length(nested) == 2L, + all(names(nested) == c("a", "b")), + inherits(plan("next"), strategy1) + ) + + x %<-% { + a <- 1L + + ## IMPORTANT: Use future::plan() - not just plan() - otherwise + ## we're exporting the plan() function including its local stack! + plan_a <- unclass(future::plan("list")) + nested_a <- nested[-1] + + stopifnot( + length(nested_a) == 1L, + length(plan_a) == 1L, + inherits(plan_a[[1]], "future"), + inherits(future::plan("next"), strategy2) + ) + + ## Attribute 'init' is modified at run time + for (kk in seq_along(plan_a)) attr(plan_a[[kk]], "init") <- NULL + for (kk in seq_along(nested_a)) attr(nested_a[[kk]], "init") <- NULL + stopifnot(all.equal(plan_a, nested_a)) + + y %<-% { + b <- 2L + + ## IMPORTANT: Use future::plan() - not just plan() - otherwise + ## we're exporting the plan() function including its local stack! + plan_b <- future::plan("list") + nested_b <- nested_a[-1] + + stopifnot( + length(nested_b) == 0L, + length(plan_b) == 1L, + inherits(plan_b[[1]], "future"), + inherits(future::plan("next"), "sequential") + ) + + list(a = a, nested_a = nested_a, plan_a = plan_a, + b = b, nested_b = nested_b, plan_b = plan_b) + } + y + } + + str(x) + + stopifnot( + length(x) == 3 * length(nested), + all(names(x) == c("a", "nested_a", "plan_a", + "b", "nested_b", "plan_b")), + + x$a == 1L, + length(x$nested_a) == 1L, + is.list(x$plan_a), + length(x$plan_a) == 1L, + inherits(x$plan_a[[1]], "future"), + + x$b == 2L, + length(x$nested_b) == 0L, + is.list(x$plan_b), + length(x$plan_b) == 1L, + inherits(x$plan_b[[1]], "future"), + inherits(x$plan_b[[1]], "sequential") + ) + + ## Attribute 'init' is modified at run time + for (kk in seq_along(x$plan_a)) attr(x$plan_a[[kk]], "init") <- NULL + for (kk in seq_along(nested)) attr(nested[[kk]], "init") <- NULL + stopifnot(all.equal(x$plan_a, nested[-1L])) + + rm(list = c("nested", "x")) + + + ## Nested futures and globals + ## In future (<= 1.7.0), the below would produce an error saying + ## "Failed to locate global object in the relevant environments: 'a'" + ## Related to https://github.com/HenrikBengtsson/globals/issues/35 + data <- data.frame(a = 1:3, b = 3:1) + y_truth <- subset(data, a == 2) + f <- future({ + value(future( subset(data, a == 2) )) + }) + y <- value(f) + stopifnot(identical(y, y_truth)) + + message(sprintf("- plan(list('%s', '%s')) ... DONE", strategy1, strategy2)) + } + } - plan(list('sequential', 'sequential')) ... [18:02:22.831] plan(): Setting new future strategy stack: [18:02:22.831] List of future strategies: [18:02:22.831] 1. sequential: [18:02:22.831] - args: function (..., envir = parent.frame()) [18:02:22.831] - tweaked: FALSE [18:02:22.831] - call: plan(list(a = strategy1, b = strategy2)) [18:02:22.831] 2. sequential: [18:02:22.831] - args: function (..., envir = parent.frame()) [18:02:22.831] - tweaked: FALSE [18:02:22.831] - call: plan(list(a = strategy1, b = strategy2)) [18:02:22.845] plan(): nbrOfWorkers() = 1 [18:02:22.847] getGlobalsAndPackages() ... [18:02:22.847] Searching for globals... [18:02:22.876] - globals found: [21] '{', '<-', 'unclass', '::', '[', 'nested', '-', 'stopifnot', '==', 'length', 'inherits', '[[', 'strategy2', 'for', 'seq_along', 'attr', 'attr<-', '[[<-', 'all.equal', 'list', '%<-%' [18:02:22.876] Searching for globals ... DONE [18:02:22.877] Resolving globals: FALSE [18:02:22.879] The total size of the 2 globals is 22.60 KiB (23144 bytes) [18:02:22.880] The total size of the 2 globals exported for future expression ('{; a <- 1L; plan_a <- unclass(future::plan("list")); nested_a <- nested[-1]; stopifnot(length(nested_a) == 1L, length(plan_a) == 1L, inherits(plan_a[[1]],; "future"), inherits(future::plan("next"), strategy2)); ...; }; y; }') is 22.60 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'nested' (22.48 KiB of class 'list') and 'strategy2' (120 bytes of class 'character') [18:02:22.880] - globals: [2] 'nested', 'strategy2' [18:02:22.880] - packages: [1] 'future' [18:02:22.880] getGlobalsAndPackages() ... DONE [18:02:22.881] run() for 'Future' ... [18:02:22.881] - state: 'created' [18:02:22.882] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:02:22.882] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:02:22.882] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:02:22.882] - Field: 'label' [18:02:22.883] - Field: 'local' [18:02:22.883] - Field: 'owner' [18:02:22.883] - Field: 'envir' [18:02:22.883] - Field: 'packages' [18:02:22.883] - Field: 'gc' [18:02:22.883] - Field: 'conditions' [18:02:22.884] - Field: 'expr' [18:02:22.884] - Field: 'uuid' [18:02:22.884] - Field: 'seed' [18:02:22.884] - Field: 'version' [18:02:22.884] - Field: 'result' [18:02:22.885] - Field: 'asynchronous' [18:02:22.885] - Field: 'calls' [18:02:22.885] - Field: 'globals' [18:02:22.885] - Field: 'stdout' [18:02:22.885] - Field: 'earlySignal' [18:02:22.885] - Field: 'lazy' [18:02:22.886] - Field: 'state' [18:02:22.886] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:02:22.886] - Launch lazy future ... [18:02:22.887] Packages needed by the future expression (n = 1): 'future' [18:02:22.887] Packages needed by future strategies (n = 1): 'future' [18:02:22.888] { [18:02:22.888] { [18:02:22.888] { [18:02:22.888] ...future.startTime <- base::Sys.time() [18:02:22.888] { [18:02:22.888] { [18:02:22.888] { [18:02:22.888] { [18:02:22.888] base::local({ [18:02:22.888] has_future <- base::requireNamespace("future", [18:02:22.888] quietly = TRUE) [18:02:22.888] if (has_future) { [18:02:22.888] ns <- base::getNamespace("future") [18:02:22.888] version <- ns[[".package"]][["version"]] [18:02:22.888] if (is.null(version)) [18:02:22.888] version <- utils::packageVersion("future") [18:02:22.888] } [18:02:22.888] else { [18:02:22.888] version <- NULL [18:02:22.888] } [18:02:22.888] if (!has_future || version < "1.8.0") { [18:02:22.888] info <- base::c(r_version = base::gsub("R version ", [18:02:22.888] "", base::R.version$version.string), [18:02:22.888] platform = base::sprintf("%s (%s-bit)", [18:02:22.888] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:22.888] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:22.888] "release", "version")], collapse = " "), [18:02:22.888] hostname = base::Sys.info()[["nodename"]]) [18:02:22.888] info <- base::sprintf("%s: %s", base::names(info), [18:02:22.888] info) [18:02:22.888] info <- base::paste(info, collapse = "; ") [18:02:22.888] if (!has_future) { [18:02:22.888] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:22.888] info) [18:02:22.888] } [18:02:22.888] else { [18:02:22.888] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:22.888] info, version) [18:02:22.888] } [18:02:22.888] base::stop(msg) [18:02:22.888] } [18:02:22.888] }) [18:02:22.888] } [18:02:22.888] base::local({ [18:02:22.888] for (pkg in "future") { [18:02:22.888] base::loadNamespace(pkg) [18:02:22.888] base::library(pkg, character.only = TRUE) [18:02:22.888] } [18:02:22.888] }) [18:02:22.888] } [18:02:22.888] options(future.plan = NULL) [18:02:22.888] Sys.unsetenv("R_FUTURE_PLAN") [18:02:22.888] future::plan(list(b = function (..., envir = parent.frame()) [18:02:22.888] { [18:02:22.888] future <- SequentialFuture(..., envir = envir) [18:02:22.888] if (!future$lazy) [18:02:22.888] future <- run(future) [18:02:22.888] invisible(future) [18:02:22.888] }), .cleanup = FALSE, .init = FALSE) [18:02:22.888] } [18:02:22.888] ...future.workdir <- getwd() [18:02:22.888] } [18:02:22.888] ...future.oldOptions <- base::as.list(base::.Options) [18:02:22.888] ...future.oldEnvVars <- base::Sys.getenv() [18:02:22.888] } [18:02:22.888] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:22.888] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:22.888] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:22.888] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:22.888] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:22.888] future.stdout.windows.reencode = NULL, width = 80L) [18:02:22.888] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:22.888] base::names(...future.oldOptions)) [18:02:22.888] } [18:02:22.888] if (FALSE) { [18:02:22.888] } [18:02:22.888] else { [18:02:22.888] if (TRUE) { [18:02:22.888] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:22.888] open = "w") [18:02:22.888] } [18:02:22.888] else { [18:02:22.888] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:22.888] windows = "NUL", "/dev/null"), open = "w") [18:02:22.888] } [18:02:22.888] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:22.888] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:22.888] base::sink(type = "output", split = FALSE) [18:02:22.888] base::close(...future.stdout) [18:02:22.888] }, add = TRUE) [18:02:22.888] } [18:02:22.888] ...future.frame <- base::sys.nframe() [18:02:22.888] ...future.conditions <- base::list() [18:02:22.888] ...future.rng <- base::globalenv()$.Random.seed [18:02:22.888] if (FALSE) { [18:02:22.888] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:22.888] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:22.888] } [18:02:22.888] ...future.result <- base::tryCatch({ [18:02:22.888] base::withCallingHandlers({ [18:02:22.888] ...future.value <- base::withVisible(base::local({ [18:02:22.888] a <- 1L [18:02:22.888] plan_a <- unclass(future::plan("list")) [18:02:22.888] nested_a <- nested[-1] [18:02:22.888] stopifnot(length(nested_a) == 1L, length(plan_a) == [18:02:22.888] 1L, inherits(plan_a[[1]], "future"), inherits(future::plan("next"), [18:02:22.888] strategy2)) [18:02:22.888] for (kk in seq_along(plan_a)) attr(plan_a[[kk]], [18:02:22.888] "init") <- NULL [18:02:22.888] for (kk in seq_along(nested_a)) attr(nested_a[[kk]], [18:02:22.888] "init") <- NULL [18:02:22.888] stopifnot(all.equal(plan_a, nested_a)) [18:02:22.888] y %<-% { [18:02:22.888] b <- 2L [18:02:22.888] plan_b <- future::plan("list") [18:02:22.888] nested_b <- nested_a[-1] [18:02:22.888] stopifnot(length(nested_b) == 0L, length(plan_b) == [18:02:22.888] 1L, inherits(plan_b[[1]], "future"), inherits(future::plan("next"), [18:02:22.888] "sequential")) [18:02:22.888] list(a = a, nested_a = nested_a, plan_a = plan_a, [18:02:22.888] b = b, nested_b = nested_b, plan_b = plan_b) [18:02:22.888] } [18:02:22.888] y [18:02:22.888] })) [18:02:22.888] future::FutureResult(value = ...future.value$value, [18:02:22.888] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:22.888] ...future.rng), globalenv = if (FALSE) [18:02:22.888] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:22.888] ...future.globalenv.names)) [18:02:22.888] else NULL, started = ...future.startTime, version = "1.8") [18:02:22.888] }, condition = base::local({ [18:02:22.888] c <- base::c [18:02:22.888] inherits <- base::inherits [18:02:22.888] invokeRestart <- base::invokeRestart [18:02:22.888] length <- base::length [18:02:22.888] list <- base::list [18:02:22.888] seq.int <- base::seq.int [18:02:22.888] signalCondition <- base::signalCondition [18:02:22.888] sys.calls <- base::sys.calls [18:02:22.888] `[[` <- base::`[[` [18:02:22.888] `+` <- base::`+` [18:02:22.888] `<<-` <- base::`<<-` [18:02:22.888] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:22.888] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:22.888] 3L)] [18:02:22.888] } [18:02:22.888] function(cond) { [18:02:22.888] is_error <- inherits(cond, "error") [18:02:22.888] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:22.888] NULL) [18:02:22.888] if (is_error) { [18:02:22.888] sessionInformation <- function() { [18:02:22.888] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:22.888] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:22.888] search = base::search(), system = base::Sys.info()) [18:02:22.888] } [18:02:22.888] ...future.conditions[[length(...future.conditions) + [18:02:22.888] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:22.888] cond$call), session = sessionInformation(), [18:02:22.888] timestamp = base::Sys.time(), signaled = 0L) [18:02:22.888] signalCondition(cond) [18:02:22.888] } [18:02:22.888] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:22.888] "immediateCondition"))) { [18:02:22.888] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:22.888] ...future.conditions[[length(...future.conditions) + [18:02:22.888] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:22.888] if (TRUE && !signal) { [18:02:22.888] muffleCondition <- function (cond, pattern = "^muffle") [18:02:22.888] { [18:02:22.888] inherits <- base::inherits [18:02:22.888] invokeRestart <- base::invokeRestart [18:02:22.888] is.null <- base::is.null [18:02:22.888] muffled <- FALSE [18:02:22.888] if (inherits(cond, "message")) { [18:02:22.888] muffled <- grepl(pattern, "muffleMessage") [18:02:22.888] if (muffled) [18:02:22.888] invokeRestart("muffleMessage") [18:02:22.888] } [18:02:22.888] else if (inherits(cond, "warning")) { [18:02:22.888] muffled <- grepl(pattern, "muffleWarning") [18:02:22.888] if (muffled) [18:02:22.888] invokeRestart("muffleWarning") [18:02:22.888] } [18:02:22.888] else if (inherits(cond, "condition")) { [18:02:22.888] if (!is.null(pattern)) { [18:02:22.888] computeRestarts <- base::computeRestarts [18:02:22.888] grepl <- base::grepl [18:02:22.888] restarts <- computeRestarts(cond) [18:02:22.888] for (restart in restarts) { [18:02:22.888] name <- restart$name [18:02:22.888] if (is.null(name)) [18:02:22.888] next [18:02:22.888] if (!grepl(pattern, name)) [18:02:22.888] next [18:02:22.888] invokeRestart(restart) [18:02:22.888] muffled <- TRUE [18:02:22.888] break [18:02:22.888] } [18:02:22.888] } [18:02:22.888] } [18:02:22.888] invisible(muffled) [18:02:22.888] } [18:02:22.888] muffleCondition(cond, pattern = "^muffle") [18:02:22.888] } [18:02:22.888] } [18:02:22.888] else { [18:02:22.888] if (TRUE) { [18:02:22.888] muffleCondition <- function (cond, pattern = "^muffle") [18:02:22.888] { [18:02:22.888] inherits <- base::inherits [18:02:22.888] invokeRestart <- base::invokeRestart [18:02:22.888] is.null <- base::is.null [18:02:22.888] muffled <- FALSE [18:02:22.888] if (inherits(cond, "message")) { [18:02:22.888] muffled <- grepl(pattern, "muffleMessage") [18:02:22.888] if (muffled) [18:02:22.888] invokeRestart("muffleMessage") [18:02:22.888] } [18:02:22.888] else if (inherits(cond, "warning")) { [18:02:22.888] muffled <- grepl(pattern, "muffleWarning") [18:02:22.888] if (muffled) [18:02:22.888] invokeRestart("muffleWarning") [18:02:22.888] } [18:02:22.888] else if (inherits(cond, "condition")) { [18:02:22.888] if (!is.null(pattern)) { [18:02:22.888] computeRestarts <- base::computeRestarts [18:02:22.888] grepl <- base::grepl [18:02:22.888] restarts <- computeRestarts(cond) [18:02:22.888] for (restart in restarts) { [18:02:22.888] name <- restart$name [18:02:22.888] if (is.null(name)) [18:02:22.888] next [18:02:22.888] if (!grepl(pattern, name)) [18:02:22.888] next [18:02:22.888] invokeRestart(restart) [18:02:22.888] muffled <- TRUE [18:02:22.888] break [18:02:22.888] } [18:02:22.888] } [18:02:22.888] } [18:02:22.888] invisible(muffled) [18:02:22.888] } [18:02:22.888] muffleCondition(cond, pattern = "^muffle") [18:02:22.888] } [18:02:22.888] } [18:02:22.888] } [18:02:22.888] })) [18:02:22.888] }, error = function(ex) { [18:02:22.888] base::structure(base::list(value = NULL, visible = NULL, [18:02:22.888] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:22.888] ...future.rng), started = ...future.startTime, [18:02:22.888] finished = Sys.time(), session_uuid = NA_character_, [18:02:22.888] version = "1.8"), class = "FutureResult") [18:02:22.888] }, finally = { [18:02:22.888] if (!identical(...future.workdir, getwd())) [18:02:22.888] setwd(...future.workdir) [18:02:22.888] { [18:02:22.888] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:22.888] ...future.oldOptions$nwarnings <- NULL [18:02:22.888] } [18:02:22.888] base::options(...future.oldOptions) [18:02:22.888] if (.Platform$OS.type == "windows") { [18:02:22.888] old_names <- names(...future.oldEnvVars) [18:02:22.888] envs <- base::Sys.getenv() [18:02:22.888] names <- names(envs) [18:02:22.888] common <- intersect(names, old_names) [18:02:22.888] added <- setdiff(names, old_names) [18:02:22.888] removed <- setdiff(old_names, names) [18:02:22.888] changed <- common[...future.oldEnvVars[common] != [18:02:22.888] envs[common]] [18:02:22.888] NAMES <- toupper(changed) [18:02:22.888] args <- list() [18:02:22.888] for (kk in seq_along(NAMES)) { [18:02:22.888] name <- changed[[kk]] [18:02:22.888] NAME <- NAMES[[kk]] [18:02:22.888] if (name != NAME && is.element(NAME, old_names)) [18:02:22.888] next [18:02:22.888] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:22.888] } [18:02:22.888] NAMES <- toupper(added) [18:02:22.888] for (kk in seq_along(NAMES)) { [18:02:22.888] name <- added[[kk]] [18:02:22.888] NAME <- NAMES[[kk]] [18:02:22.888] if (name != NAME && is.element(NAME, old_names)) [18:02:22.888] next [18:02:22.888] args[[name]] <- "" [18:02:22.888] } [18:02:22.888] NAMES <- toupper(removed) [18:02:22.888] for (kk in seq_along(NAMES)) { [18:02:22.888] name <- removed[[kk]] [18:02:22.888] NAME <- NAMES[[kk]] [18:02:22.888] if (name != NAME && is.element(NAME, old_names)) [18:02:22.888] next [18:02:22.888] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:22.888] } [18:02:22.888] if (length(args) > 0) [18:02:22.888] base::do.call(base::Sys.setenv, args = args) [18:02:22.888] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:22.888] } [18:02:22.888] else { [18:02:22.888] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:22.888] } [18:02:22.888] { [18:02:22.888] if (base::length(...future.futureOptionsAdded) > [18:02:22.888] 0L) { [18:02:22.888] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:22.888] base::names(opts) <- ...future.futureOptionsAdded [18:02:22.888] base::options(opts) [18:02:22.888] } [18:02:22.888] { [18:02:22.888] { [18:02:22.888] NULL [18:02:22.888] RNGkind("Mersenne-Twister") [18:02:22.888] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:02:22.888] inherits = FALSE) [18:02:22.888] } [18:02:22.888] options(future.plan = NULL) [18:02:22.888] if (is.na(NA_character_)) [18:02:22.888] Sys.unsetenv("R_FUTURE_PLAN") [18:02:22.888] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:22.888] future::plan(list(a = function (..., envir = parent.frame()) [18:02:22.888] { [18:02:22.888] future <- SequentialFuture(..., envir = envir) [18:02:22.888] if (!future$lazy) [18:02:22.888] future <- run(future) [18:02:22.888] invisible(future) [18:02:22.888] }, b = function (..., envir = parent.frame()) [18:02:22.888] { [18:02:22.888] future <- SequentialFuture(..., envir = envir) [18:02:22.888] if (!future$lazy) [18:02:22.888] future <- run(future) [18:02:22.888] invisible(future) [18:02:22.888] }), .cleanup = FALSE, .init = FALSE) [18:02:22.888] } [18:02:22.888] } [18:02:22.888] } [18:02:22.888] }) [18:02:22.888] if (TRUE) { [18:02:22.888] base::sink(type = "output", split = FALSE) [18:02:22.888] if (TRUE) { [18:02:22.888] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:22.888] } [18:02:22.888] else { [18:02:22.888] ...future.result["stdout"] <- base::list(NULL) [18:02:22.888] } [18:02:22.888] base::close(...future.stdout) [18:02:22.888] ...future.stdout <- NULL [18:02:22.888] } [18:02:22.888] ...future.result$conditions <- ...future.conditions [18:02:22.888] ...future.result$finished <- base::Sys.time() [18:02:22.888] ...future.result [18:02:22.888] } [18:02:22.893] assign_globals() ... [18:02:22.893] List of 2 [18:02:22.893] $ nested :List of 2 [18:02:22.893] ..$ a:function (..., envir = parent.frame()) [18:02:22.893] .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" [18:02:22.893] .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) [18:02:22.893] ..$ b:function (..., envir = parent.frame()) [18:02:22.893] .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" [18:02:22.893] .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) [18:02:22.893] ..- attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [18:02:22.893] $ strategy2: chr "sequential" [18:02:22.893] - attr(*, "where")=List of 2 [18:02:22.893] ..$ nested : [18:02:22.893] ..$ strategy2: [18:02:22.893] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:02:22.893] - attr(*, "resolved")= logi FALSE [18:02:22.893] - attr(*, "total_size")= num 23144 [18:02:22.893] - attr(*, "already-done")= logi TRUE [18:02:22.903] - copied 'nested' to environment [18:02:22.903] - copied 'strategy2' to environment [18:02:22.903] assign_globals() ... done [18:02:22.904] plan(): Setting new future strategy stack: [18:02:22.904] List of future strategies: [18:02:22.904] 1. sequential: [18:02:22.904] - args: function (..., envir = parent.frame()) [18:02:22.904] - tweaked: FALSE [18:02:22.904] - call: plan(list(a = strategy1, b = strategy2)) [18:02:22.905] plan(): nbrOfWorkers() = 1 [18:02:22.953] plan(): Setting new future strategy stack: [18:02:22.954] List of future strategies: [18:02:22.954] 1. sequential: [18:02:22.954] - args: function (..., envir = parent.frame()) [18:02:22.954] - tweaked: FALSE [18:02:22.954] - call: plan(list(a = strategy1, b = strategy2)) [18:02:22.954] 2. sequential: [18:02:22.954] - args: function (..., envir = parent.frame()) [18:02:22.954] - tweaked: FALSE [18:02:22.954] - call: plan(list(a = strategy1, b = strategy2)) [18:02:22.954] plan(): nbrOfWorkers() = 1 [18:02:22.955] SequentialFuture started (and completed) [18:02:22.955] signalConditions() ... [18:02:22.955] - include = 'immediateCondition' [18:02:22.955] - exclude = [18:02:22.956] - resignal = FALSE [18:02:22.956] - Number of conditions: 54 [18:02:22.957] signalConditions() ... done [18:02:22.957] - Launch lazy future ... done [18:02:22.957] run() for 'SequentialFuture' ... done [18:02:22.957] signalConditions() ... [18:02:22.957] - include = 'immediateCondition' [18:02:22.958] - exclude = [18:02:22.958] - resignal = FALSE [18:02:22.958] - Number of conditions: 54 [18:02:22.958] signalConditions() ... done [18:02:22.958] Future state: 'finished' [18:02:22.959] signalConditions() ... [18:02:22.959] - include = 'condition' [18:02:22.959] - exclude = 'immediateCondition' [18:02:22.959] - resignal = TRUE [18:02:22.959] - Number of conditions: 54 [18:02:22.959] - Condition #1: 'simpleMessage', 'message', 'condition' [18:02:22.906] getGlobalsAndPackages() ... [18:02:22.960] - Condition #2: 'simpleMessage', 'message', 'condition' [18:02:22.907] Searching for globals... [18:02:22.960] - Condition #3: 'simpleMessage', 'message', 'condition' [18:02:22.928] - globals found: [14] '{', '<-', '::', '[', 'nested_a', '-', 'stopifnot', '==', 'length', 'inherits', '[[', 'list', 'a', 'plan_a' [18:02:22.960] - Condition #4: 'simpleMessage', 'message', 'condition' [18:02:22.928] Searching for globals ... DONE [18:02:22.960] - Condition #5: 'simpleMessage', 'message', 'condition' [18:02:22.928] Resolving globals: FALSE [18:02:22.961] - Condition #6: 'simpleMessage', 'message', 'condition' [18:02:22.929] The total size of the 3 globals is 22.54 KiB (23080 bytes) [18:02:22.961] - Condition #7: 'simpleMessage', 'message', 'condition' [18:02:22.930] The total size of the 3 globals exported for future expression ('{; b <- 2L; plan_b <- future::plan("list"); nested_b <- nested_a[-1]; stopifnot(length(nested_b) == 0L, length(plan_b) == 1L, inherits(plan_b[[1]],; "future"), inherits(future::plan("next"), "sequential")); list(a = a, nested_a = nested_a, plan_a = plan_a, b = b,; nested_b = nested_b, plan_b = plan_b); }') is 22.54 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are three globals: 'nested_a' (11.24 KiB of class 'list'), 'plan_a' (11.24 KiB of class 'list') and 'a' (56 bytes of class 'numeric') [18:02:22.961] - Condition #8: 'simpleMessage', 'message', 'condition' [18:02:22.930] - globals: [3] 'nested_a', 'a', 'plan_a' [18:02:22.961] - Condition #9: 'simpleMessage', 'message', 'condition' [18:02:22.930] [18:02:22.961] - Condition #10: 'simpleMessage', 'message', 'condition' [18:02:22.930] getGlobalsAndPackages() ... DONE [18:02:22.962] - Condition #11: 'simpleMessage', 'message', 'condition' [18:02:22.931] run() for 'Future' ... [18:02:22.962] - Condition #12: 'simpleMessage', 'message', 'condition' [18:02:22.931] - state: 'created' [18:02:22.962] - Condition #13: 'simpleMessage', 'message', 'condition' [18:02:22.931] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:02:22.962] - Condition #14: 'simpleMessage', 'message', 'condition' [18:02:22.931] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:02:22.962] - Condition #15: 'simpleMessage', 'message', 'condition' [18:02:22.932] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:02:22.963] - Condition #16: 'simpleMessage', 'message', 'condition' [18:02:22.932] - Field: 'label' [18:02:22.963] - Condition #17: 'simpleMessage', 'message', 'condition' [18:02:22.932] - Field: 'local' [18:02:22.963] - Condition #18: 'simpleMessage', 'message', 'condition' [18:02:22.932] - Field: 'owner' [18:02:22.963] - Condition #19: 'simpleMessage', 'message', 'condition' [18:02:22.933] - Field: 'envir' [18:02:22.964] - Condition #20: 'simpleMessage', 'message', 'condition' [18:02:22.933] - Field: 'packages' [18:02:22.964] - Condition #21: 'simpleMessage', 'message', 'condition' [18:02:22.933] - Field: 'gc' [18:02:22.964] - Condition #22: 'simpleMessage', 'message', 'condition' [18:02:22.933] - Field: 'conditions' [18:02:22.964] - Condition #23: 'simpleMessage', 'message', 'condition' [18:02:22.933] - Field: 'expr' [18:02:22.964] - Condition #24: 'simpleMessage', 'message', 'condition' [18:02:22.934] - Field: 'uuid' [18:02:22.965] - Condition #25: 'simpleMessage', 'message', 'condition' [18:02:22.934] - Field: 'seed' [18:02:22.965] - Condition #26: 'simpleMessage', 'message', 'condition' [18:02:22.934] - Field: 'version' [18:02:22.965] - Condition #27: 'simpleMessage', 'message', 'condition' [18:02:22.934] - Field: 'result' [18:02:22.965] - Condition #28: 'simpleMessage', 'message', 'condition' [18:02:22.934] - Field: 'asynchronous' [18:02:22.966] - Condition #29: 'simpleMessage', 'message', 'condition' [18:02:22.935] - Field: 'calls' [18:02:22.966] - Condition #30: 'simpleMessage', 'message', 'condition' [18:02:22.935] - Field: 'globals' [18:02:22.966] - Condition #31: 'simpleMessage', 'message', 'condition' [18:02:22.935] - Field: 'stdout' [18:02:22.966] - Condition #32: 'simpleMessage', 'message', 'condition' [18:02:22.935] - Field: 'earlySignal' [18:02:22.966] - Condition #33: 'simpleMessage', 'message', 'condition' [18:02:22.935] - Field: 'lazy' [18:02:22.967] - Condition #34: 'simpleMessage', 'message', 'condition' [18:02:22.935] - Field: 'state' [18:02:22.967] - Condition #35: 'simpleMessage', 'message', 'condition' [18:02:22.936] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:02:22.967] - Condition #36: 'simpleMessage', 'message', 'condition' [18:02:22.936] - Launch lazy future ... [18:02:22.967] - Condition #37: 'simpleMessage', 'message', 'condition' [18:02:22.936] Packages needed by the future expression (n = 0): [18:02:22.967] - Condition #38: 'simpleMessage', 'message', 'condition' [18:02:22.936] Packages needed by future strategies (n = 0): [18:02:22.968] - Condition #39: 'simpleMessage', 'message', 'condition' [18:02:22.937] { [18:02:22.937] { [18:02:22.937] { [18:02:22.937] ...future.startTime <- base::Sys.time() [18:02:22.937] { [18:02:22.937] { [18:02:22.937] { [18:02:22.937] base::local({ [18:02:22.937] has_future <- base::requireNamespace("future", [18:02:22.937] quietly = TRUE) [18:02:22.937] if (has_future) { [18:02:22.937] ns <- base::getNamespace("future") [18:02:22.937] version <- ns[[".package"]][["version"]] [18:02:22.937] if (is.null(version)) [18:02:22.937] version <- utils::packageVersion("future") [18:02:22.937] } [18:02:22.937] else { [18:02:22.937] version <- NULL [18:02:22.937] } [18:02:22.937] if (!has_future || version < "1.8.0") { [18:02:22.937] info <- base::c(r_version = base::gsub("R version ", [18:02:22.937] "", base::R.version$version.string), [18:02:22.937] platform = base::sprintf("%s (%s-bit)", [18:02:22.937] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:22.937] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:22.937] "release", "version")], collapse = " "), [18:02:22.937] hostname = base::Sys.info()[["nodename"]]) [18:02:22.937] info <- base::sprintf("%s: %s", base::names(info), [18:02:22.937] info) [18:02:22.937] info <- base::paste(info, collapse = "; ") [18:02:22.937] if (!has_future) { [18:02:22.937] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:22.937] info) [18:02:22.937] } [18:02:22.937] else { [18:02:22.937] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:22.937] info, version) [18:02:22.937] } [18:02:22.937] base::stop(msg) [18:02:22.937] } [18:02:22.937] }) [18:02:22.937] } [18:02:22.937] options(future.plan = NULL) [18:02:22.937] Sys.unsetenv("R_FUTURE_PLAN") [18:02:22.937] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:22.937] } [18:02:22.937] ...future.workdir <- getwd() [18:02:22.937] } [18:02:22.937] ...future.oldOptions <- base::as.list(base::.Options) [18:02:22.937] ...future.oldEnvVars <- base::Sys.getenv() [18:02:22.937] } [18:02:22.937] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:22.937] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:22.937] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:22.937] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:22.937] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:22.937] future.stdout.windows.reencode = NULL, width = 80L) [18:02:22.937] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:22.937] base::names(...future.oldOptions)) [18:02:22.937] } [18:02:22.937] if (FALSE) { [18:02:22.937] } [18:02:22.937] else { [18:02:22.937] if (TRUE) { [18:02:22.937] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:22.937] open = "w") [18:02:22.937] } [18:02:22.937] else { [18:02:22.937] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:22.937] windows = "NUL", "/dev/null"), open = "w") [18:02:22.937] } [18:02:22.937] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:22.937] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:22.937] base::sink(type = "output", split = FALSE) [18:02:22.937] base::close(...future.stdout) [18:02:22.937] }, add = TRUE) [18:02:22.937] } [18:02:22.937] ...future.frame <- base::sys.nframe() [18:02:22.937] ...future.conditions <- base::list() [18:02:22.937] ...future.rng <- base::globalenv()$.Random.seed [18:02:22.937] if (FALSE) { [18:02:22.937] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:22.937] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:22.937] } [18:02:22.937] ...future.result <- base::tryCatch({ [18:02:22.937] base::withCallingHandlers({ [18:02:22.937] ...future.value <- base::withVisible(base::local({ [18:02:22.937] b <- 2L [18:02:22.937] plan_b <- future::plan("list") [18:02:22.937] nested_b <- nested_a[-1] [18:02:22.937] stopifnot(length(nested_b) == 0L, length(plan_b) == [18:02:22.937] 1L, inherits(plan_b[[1]], "future"), inherits(future::plan("next"), [18:02:22.937] "sequential")) [18:02:22.937] list(a = a, nested_a = nested_a, plan_a = plan_a, [18:02:22.937] b = b, nested_b = nested_b, plan_b = plan_b) [18:02:22.937] })) [18:02:22.937] future::FutureResult(value = ...future.value$value, [18:02:22.937] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:22.937] ...future.rng), globalenv = if (FALSE) [18:02:22.937] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:22.937] ...future.globalenv.names)) [18:02:22.937] else NULL, started = ...future.startTime, version = "1.8") [18:02:22.937] }, condition = base::local({ [18:02:22.937] c <- base::c [18:02:22.937] inherits <- base::inherits [18:02:22.937] invokeRestart <- base::invokeRestart [18:02:22.937] length <- base::length [18:02:22.937] list <- base::list [18:02:22.937] seq.int <- base::seq.int [18:02:22.937] signalCondition <- base::signalCondition [18:02:22.937] sys.calls <- base::sys.calls [18:02:22.937] `[[` <- base::`[[` [18:02:22.937] `+` <- base::`+` [18:02:22.937] `<<-` <- base::`<<-` [18:02:22.937] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:22.937] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:22.937] 3L)] [18:02:22.937] } [18:02:22.937] function(cond) { [18:02:22.937] is_error <- inherits(cond, "error") [18:02:22.937] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:22.937] NULL) [18:02:22.937] if (is_error) { [18:02:22.937] sessionInformation <- function() { [18:02:22.937] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:22.937] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:22.937] search = base::search(), system = base::Sys.info()) [18:02:22.937] } [18:02:22.937] ...future.conditions[[length(...future.conditions) + [18:02:22.937] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:22.937] cond$call), session = sessionInformation(), [18:02:22.937] timestamp = base::Sys.time(), signaled = 0L) [18:02:22.937] signalCondition(cond) [18:02:22.937] } [18:02:22.937] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:22.937] "immediateCondition"))) { [18:02:22.937] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:22.937] ...future.conditions[[length(...future.conditions) + [18:02:22.937] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:22.937] if (TRUE && !signal) { [18:02:22.937] muffleCondition <- function (cond, pattern = "^muffle") [18:02:22.937] { [18:02:22.937] inherits <- base::inherits [18:02:22.937] invokeRestart <- base::invokeRestart [18:02:22.937] is.null <- base::is.null [18:02:22.937] muffled <- FALSE [18:02:22.937] if (inherits(cond, "message")) { [18:02:22.937] muffled <- grepl(pattern, "muffleMessage") [18:02:22.937] if (muffled) [18:02:22.937] invokeRestart("muffleMessage") [18:02:22.937] } [18:02:22.937] else if (inherits(cond, "warning")) { [18:02:22.937] muffled <- grepl(pattern, "muffleWarning") [18:02:22.937] if (muffled) [18:02:22.937] invokeRestart("muffleWarning") [18:02:22.937] } [18:02:22.937] else if (inherits(cond, "condition")) { [18:02:22.937] if (!is.null(pattern)) { [18:02:22.937] computeRestarts <- base::computeRestarts [18:02:22.937] grepl <- base::grepl [18:02:22.937] restarts <- computeRestarts(cond) [18:02:22.937] for (restart in restarts) { [18:02:22.937] name <- restart$name [18:02:22.937] if (is.null(name)) [18:02:22.937] next [18:02:22.937] if (!grepl(pattern, name)) [18:02:22.937] next [18:02:22.937] invokeRestart(restart) [18:02:22.937] muffled <- TRUE [18:02:22.937] break [18:02:22.937] } [18:02:22.937] } [18:02:22.937] } [18:02:22.937] invisible(muffled) [18:02:22.937] } [18:02:22.937] muffleCondition(cond, pattern = "^muffle") [18:02:22.937] } [18:02:22.937] } [18:02:22.937] else { [18:02:22.937] if (TRUE) { [18:02:22.937] muffleCondition <- function (cond, pattern = "^muffle") [18:02:22.937] { [18:02:22.937] inherits <- base::inherits [18:02:22.937] invokeRestart <- base::invokeRestart [18:02:22.937] is.null <- base::is.null [18:02:22.937] muffled <- FALSE [18:02:22.937] if (inherits(cond, "message")) { [18:02:22.937] muffled <- grepl(pattern, "muffleMessage") [18:02:22.937] if (muffled) [18:02:22.937] invokeRestart("muffleMessage") [18:02:22.937] } [18:02:22.937] else if (inherits(cond, "warning")) { [18:02:22.937] muffled <- grepl(pattern, "muffleWarning") [18:02:22.937] if (muffled) [18:02:22.937] invokeRestart("muffleWarning") [18:02:22.937] } [18:02:22.937] else if (inherits(cond, "condition")) { [18:02:22.937] if (!is.null(pattern)) { [18:02:22.937] computeRestarts <- base::computeRestarts [18:02:22.937] grepl <- base::grepl [18:02:22.937] restarts <- computeRestarts(cond) [18:02:22.937] for (restart in restarts) { [18:02:22.937] name <- restart$name [18:02:22.937] if (is.null(name)) [18:02:22.937] next [18:02:22.937] if (!grepl(pattern, name)) [18:02:22.937] next [18:02:22.937] invokeRestart(restart) [18:02:22.937] muffled <- TRUE [18:02:22.937] break [18:02:22.937] } [18:02:22.937] } [18:02:22.937] } [18:02:22.937] invisible(muffled) [18:02:22.937] } [18:02:22.937] muffleCondition(cond, pattern = "^muffle") [18:02:22.937] } [18:02:22.937] } [18:02:22.937] } [18:02:22.937] })) [18:02:22.937] }, error = function(ex) { [18:02:22.937] base::structure(base::list(value = NULL, visible = NULL, [18:02:22.937] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:22.937] ...future.rng), started = ...future.startTime, [18:02:22.937] finished = Sys.time(), session_uuid = NA_character_, [18:02:22.937] version = "1.8"), class = "FutureResult") [18:02:22.937] }, finally = { [18:02:22.937] if (!identical(...future.workdir, getwd())) [18:02:22.937] setwd(...future.workdir) [18:02:22.937] { [18:02:22.937] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:22.937] ...future.oldOptions$nwarnings <- NULL [18:02:22.937] } [18:02:22.937] base::options(...future.oldOptions) [18:02:22.937] if (.Platform$OS.type == "windows") { [18:02:22.937] old_names <- names(...future.oldEnvVars) [18:02:22.937] envs <- base::Sys.getenv() [18:02:22.937] names <- names(envs) [18:02:22.937] common <- intersect(names, old_names) [18:02:22.937] added <- setdiff(names, old_names) [18:02:22.937] removed <- setdiff(old_names, names) [18:02:22.937] changed <- common[...future.oldEnvVars[common] != [18:02:22.937] envs[common]] [18:02:22.937] NAMES <- toupper(changed) [18:02:22.937] args <- list() [18:02:22.937] for (kk in seq_along(NAMES)) { [18:02:22.937] name <- changed[[kk]] [18:02:22.937] NAME <- NAMES[[kk]] [18:02:22.937] if (name != NAME && is.element(NAME, old_names)) [18:02:22.937] next [18:02:22.937] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:22.937] } [18:02:22.937] NAMES <- toupper(added) [18:02:22.937] for (kk in seq_along(NAMES)) { [18:02:22.937] name <- added[[kk]] [18:02:22.937] NAME <- NAMES[[kk]] [18:02:22.937] if (name != NAME && is.element(NAME, old_names)) [18:02:22.937] next [18:02:22.937] args[[name]] <- "" [18:02:22.937] } [18:02:22.937] NAMES <- toupper(removed) [18:02:22.937] for (kk in seq_along(NAMES)) { [18:02:22.937] name <- removed[[kk]] [18:02:22.937] NAME <- NAMES[[kk]] [18:02:22.937] if (name != NAME && is.element(NAME, old_names)) [18:02:22.937] next [18:02:22.937] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:22.937] } [18:02:22.937] if (length(args) > 0) [18:02:22.937] base::do.call(base::Sys.setenv, args = args) [18:02:22.937] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:22.937] } [18:02:22.937] else { [18:02:22.937] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:22.937] } [18:02:22.937] { [18:02:22.937] if (base::length(...future.futureOptionsAdded) > [18:02:22.937] 0L) { [18:02:22.937] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:22.937] base::names(opts) <- ...future.futureOptionsAdded [18:02:22.937] base::options(opts) [18:02:22.937] } [18:02:22.937] { [18:02:22.937] { [18:02:22.937] NULL [18:02:22.937] RNGkind("Mersenne-Twister") [18:02:22.937] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:02:22.937] inherits = FALSE) [18:02:22.937] } [18:02:22.937] options(future.plan = NULL) [18:02:22.937] if (is.na(NA_character_)) [18:02:22.937] Sys.unsetenv("R_FUTURE_PLAN") [18:02:22.937] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:22.937] future::plan(list(b = function (..., envir = parent.frame()) [18:02:22.937] { [18:02:22.937] future <- SequentialFuture(..., envir = envir) [18:02:22.937] if (!future$lazy) [18:02:22.937] future <- run(future) [18:02:22.937] invisible(future) [18:02:22.937] }), .cleanup = FALSE, .init = FALSE) [18:02:22.937] } [18:02:22.937] } [18:02:22.937] } [18:02:22.937] }) [18:02:22.937] if (TRUE) { [18:02:22.937] base::sink(type = "output", split = FALSE) [18:02:22.937] if (TRUE) { [18:02:22.937] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:22.937] } [18:02:22.937] else { [18:02:22.937] ...future.result["stdout"] <- base::list(NULL) [18:02:22.937] } [18:02:22.937] base::close(...future.stdout) [18:02:22.937] ...future.stdout <- NULL [18:02:22.937] } [18:02:22.937] ...future.result$conditions <- ...future.conditions [18:02:22.937] ...future.result$finished <- base::Sys.time() [18:02:22.937] ...future.result [18:02:22.937] } [18:02:22.968] - Condition #40: 'simpleMessage', 'message', 'condition' [18:02:22.941] assign_globals() ... [18:02:22.968] - Condition #41: 'simpleMessage', 'message', 'condition' [18:02:22.941] List of 3 [18:02:22.941] $ nested_a:List of 1 [18:02:22.941] ..$ b:function (..., envir = parent.frame()) [18:02:22.941] .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" [18:02:22.941] .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) [18:02:22.941] $ a : int 1 [18:02:22.941] $ plan_a :List of 1 [18:02:22.941] ..$ b:function (..., envir = parent.frame()) [18:02:22.941] .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" [18:02:22.941] .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) [18:02:22.941] - attr(*, "where")=List of 3 [18:02:22.941] ..$ nested_a: [18:02:22.941] ..$ a : [18:02:22.941] ..$ plan_a : [18:02:22.941] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:02:22.941] - attr(*, "resolved")= logi FALSE [18:02:22.941] - attr(*, "total_size")= num 23080 [18:02:22.941] - attr(*, "already-done")= logi TRUE [18:02:22.968] - Condition #42: 'simpleMessage', 'message', 'condition' [18:02:22.947] - copied 'nested_a' to environment [18:02:22.969] - Condition #43: 'simpleMessage', 'message', 'condition' [18:02:22.947] - copied 'a' to environment [18:02:22.969] - Condition #44: 'simpleMessage', 'message', 'condition' [18:02:22.947] - copied 'plan_a' to environment [18:02:22.969] - Condition #45: 'simpleMessage', 'message', 'condition' [18:02:22.947] assign_globals() ... done [18:02:22.969] - Condition #46: 'simpleMessage', 'message', 'condition' [18:02:22.948] plan(): Setting new future strategy stack: [18:02:22.970] - Condition #47: 'simpleMessage', 'message', 'condition' [18:02:22.948] List of future strategies: [18:02:22.948] 1. sequential: [18:02:22.948] - args: function (..., envir = parent.frame()) [18:02:22.948] - tweaked: FALSE [18:02:22.948] - call: NULL [18:02:22.970] - Condition #48: 'simpleMessage', 'message', 'condition' [18:02:22.948] plan(): nbrOfWorkers() = 1 [18:02:22.970] - Condition #49: 'simpleMessage', 'message', 'condition' [18:02:22.950] plan(): Setting new future strategy stack: [18:02:22.970] - Condition #50: 'simpleMessage', 'message', 'condition' [18:02:22.951] List of future strategies: [18:02:22.951] 1. sequential: [18:02:22.951] - args: function (..., envir = parent.frame()) [18:02:22.951] - tweaked: FALSE [18:02:22.951] - call: plan(list(a = strategy1, b = strategy2)) [18:02:22.970] - Condition #51: 'simpleMessage', 'message', 'condition' [18:02:22.951] plan(): nbrOfWorkers() = 1 [18:02:22.971] - Condition #52: 'simpleMessage', 'message', 'condition' [18:02:22.951] SequentialFuture started (and completed) [18:02:22.971] - Condition #53: 'simpleMessage', 'message', 'condition' [18:02:22.952] - Launch lazy future ... done [18:02:22.971] - Condition #54: 'simpleMessage', 'message', 'condition' [18:02:22.952] run() for 'SequentialFuture' ... done [18:02:22.971] signalConditions() ... done List of 6 $ a : int 1 $ nested_a:List of 1 ..$ b:function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ plan_a :List of 1 ..$ b:function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ b : int 2 $ nested_b: Named list() $ plan_b :List of 1 ..$ :function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" ..- attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [18:02:22.977] getGlobalsAndPackages() ... [18:02:22.977] Searching for globals... [18:02:22.979] - globals found: [7] '{', 'value', 'future', 'subset', 'data', '==', 'a' [18:02:22.979] Searching for globals ... DONE [18:02:22.979] Resolving globals: FALSE [18:02:22.980] The total size of the 1 globals is 128 bytes (128 bytes) [18:02:22.981] The total size of the 1 globals exported for future expression ('{; value(future(subset(data, a == 2))); }') is 128 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'data' (128 bytes of class 'list') [18:02:22.981] - globals: [1] 'data' [18:02:22.981] - packages: [1] 'future' [18:02:22.981] getGlobalsAndPackages() ... DONE [18:02:22.982] run() for 'Future' ... [18:02:22.982] - state: 'created' [18:02:22.982] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:02:22.982] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:02:22.983] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:02:22.983] - Field: 'label' [18:02:22.983] - Field: 'local' [18:02:22.983] - Field: 'owner' [18:02:22.983] - Field: 'envir' [18:02:22.983] - Field: 'packages' [18:02:22.984] - Field: 'gc' [18:02:22.984] - Field: 'conditions' [18:02:22.984] - Field: 'expr' [18:02:22.984] - Field: 'uuid' [18:02:22.984] - Field: 'seed' [18:02:22.984] - Field: 'version' [18:02:22.985] - Field: 'result' [18:02:22.985] - Field: 'asynchronous' [18:02:22.985] - Field: 'calls' [18:02:22.985] - Field: 'globals' [18:02:22.985] - Field: 'stdout' [18:02:22.986] - Field: 'earlySignal' [18:02:22.986] - Field: 'lazy' [18:02:22.986] - Field: 'state' [18:02:22.986] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:02:22.986] - Launch lazy future ... [18:02:22.986] Packages needed by the future expression (n = 1): 'future' [18:02:22.987] Packages needed by future strategies (n = 1): 'future' [18:02:22.988] { [18:02:22.988] { [18:02:22.988] { [18:02:22.988] ...future.startTime <- base::Sys.time() [18:02:22.988] { [18:02:22.988] { [18:02:22.988] { [18:02:22.988] { [18:02:22.988] base::local({ [18:02:22.988] has_future <- base::requireNamespace("future", [18:02:22.988] quietly = TRUE) [18:02:22.988] if (has_future) { [18:02:22.988] ns <- base::getNamespace("future") [18:02:22.988] version <- ns[[".package"]][["version"]] [18:02:22.988] if (is.null(version)) [18:02:22.988] version <- utils::packageVersion("future") [18:02:22.988] } [18:02:22.988] else { [18:02:22.988] version <- NULL [18:02:22.988] } [18:02:22.988] if (!has_future || version < "1.8.0") { [18:02:22.988] info <- base::c(r_version = base::gsub("R version ", [18:02:22.988] "", base::R.version$version.string), [18:02:22.988] platform = base::sprintf("%s (%s-bit)", [18:02:22.988] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:22.988] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:22.988] "release", "version")], collapse = " "), [18:02:22.988] hostname = base::Sys.info()[["nodename"]]) [18:02:22.988] info <- base::sprintf("%s: %s", base::names(info), [18:02:22.988] info) [18:02:22.988] info <- base::paste(info, collapse = "; ") [18:02:22.988] if (!has_future) { [18:02:22.988] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:22.988] info) [18:02:22.988] } [18:02:22.988] else { [18:02:22.988] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:22.988] info, version) [18:02:22.988] } [18:02:22.988] base::stop(msg) [18:02:22.988] } [18:02:22.988] }) [18:02:22.988] } [18:02:22.988] base::local({ [18:02:22.988] for (pkg in "future") { [18:02:22.988] base::loadNamespace(pkg) [18:02:22.988] base::library(pkg, character.only = TRUE) [18:02:22.988] } [18:02:22.988] }) [18:02:22.988] } [18:02:22.988] options(future.plan = NULL) [18:02:22.988] Sys.unsetenv("R_FUTURE_PLAN") [18:02:22.988] future::plan(list(b = function (..., envir = parent.frame()) [18:02:22.988] { [18:02:22.988] future <- SequentialFuture(..., envir = envir) [18:02:22.988] if (!future$lazy) [18:02:22.988] future <- run(future) [18:02:22.988] invisible(future) [18:02:22.988] }), .cleanup = FALSE, .init = FALSE) [18:02:22.988] } [18:02:22.988] ...future.workdir <- getwd() [18:02:22.988] } [18:02:22.988] ...future.oldOptions <- base::as.list(base::.Options) [18:02:22.988] ...future.oldEnvVars <- base::Sys.getenv() [18:02:22.988] } [18:02:22.988] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:22.988] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:22.988] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:22.988] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:22.988] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:22.988] future.stdout.windows.reencode = NULL, width = 80L) [18:02:22.988] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:22.988] base::names(...future.oldOptions)) [18:02:22.988] } [18:02:22.988] if (FALSE) { [18:02:22.988] } [18:02:22.988] else { [18:02:22.988] if (TRUE) { [18:02:22.988] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:22.988] open = "w") [18:02:22.988] } [18:02:22.988] else { [18:02:22.988] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:22.988] windows = "NUL", "/dev/null"), open = "w") [18:02:22.988] } [18:02:22.988] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:22.988] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:22.988] base::sink(type = "output", split = FALSE) [18:02:22.988] base::close(...future.stdout) [18:02:22.988] }, add = TRUE) [18:02:22.988] } [18:02:22.988] ...future.frame <- base::sys.nframe() [18:02:22.988] ...future.conditions <- base::list() [18:02:22.988] ...future.rng <- base::globalenv()$.Random.seed [18:02:22.988] if (FALSE) { [18:02:22.988] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:22.988] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:22.988] } [18:02:22.988] ...future.result <- base::tryCatch({ [18:02:22.988] base::withCallingHandlers({ [18:02:22.988] ...future.value <- base::withVisible(base::local({ [18:02:22.988] value(future(subset(data, a == 2))) [18:02:22.988] })) [18:02:22.988] future::FutureResult(value = ...future.value$value, [18:02:22.988] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:22.988] ...future.rng), globalenv = if (FALSE) [18:02:22.988] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:22.988] ...future.globalenv.names)) [18:02:22.988] else NULL, started = ...future.startTime, version = "1.8") [18:02:22.988] }, condition = base::local({ [18:02:22.988] c <- base::c [18:02:22.988] inherits <- base::inherits [18:02:22.988] invokeRestart <- base::invokeRestart [18:02:22.988] length <- base::length [18:02:22.988] list <- base::list [18:02:22.988] seq.int <- base::seq.int [18:02:22.988] signalCondition <- base::signalCondition [18:02:22.988] sys.calls <- base::sys.calls [18:02:22.988] `[[` <- base::`[[` [18:02:22.988] `+` <- base::`+` [18:02:22.988] `<<-` <- base::`<<-` [18:02:22.988] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:22.988] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:22.988] 3L)] [18:02:22.988] } [18:02:22.988] function(cond) { [18:02:22.988] is_error <- inherits(cond, "error") [18:02:22.988] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:22.988] NULL) [18:02:22.988] if (is_error) { [18:02:22.988] sessionInformation <- function() { [18:02:22.988] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:22.988] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:22.988] search = base::search(), system = base::Sys.info()) [18:02:22.988] } [18:02:22.988] ...future.conditions[[length(...future.conditions) + [18:02:22.988] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:22.988] cond$call), session = sessionInformation(), [18:02:22.988] timestamp = base::Sys.time(), signaled = 0L) [18:02:22.988] signalCondition(cond) [18:02:22.988] } [18:02:22.988] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:22.988] "immediateCondition"))) { [18:02:22.988] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:22.988] ...future.conditions[[length(...future.conditions) + [18:02:22.988] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:22.988] if (TRUE && !signal) { [18:02:22.988] muffleCondition <- function (cond, pattern = "^muffle") [18:02:22.988] { [18:02:22.988] inherits <- base::inherits [18:02:22.988] invokeRestart <- base::invokeRestart [18:02:22.988] is.null <- base::is.null [18:02:22.988] muffled <- FALSE [18:02:22.988] if (inherits(cond, "message")) { [18:02:22.988] muffled <- grepl(pattern, "muffleMessage") [18:02:22.988] if (muffled) [18:02:22.988] invokeRestart("muffleMessage") [18:02:22.988] } [18:02:22.988] else if (inherits(cond, "warning")) { [18:02:22.988] muffled <- grepl(pattern, "muffleWarning") [18:02:22.988] if (muffled) [18:02:22.988] invokeRestart("muffleWarning") [18:02:22.988] } [18:02:22.988] else if (inherits(cond, "condition")) { [18:02:22.988] if (!is.null(pattern)) { [18:02:22.988] computeRestarts <- base::computeRestarts [18:02:22.988] grepl <- base::grepl [18:02:22.988] restarts <- computeRestarts(cond) [18:02:22.988] for (restart in restarts) { [18:02:22.988] name <- restart$name [18:02:22.988] if (is.null(name)) [18:02:22.988] next [18:02:22.988] if (!grepl(pattern, name)) [18:02:22.988] next [18:02:22.988] invokeRestart(restart) [18:02:22.988] muffled <- TRUE [18:02:22.988] break [18:02:22.988] } [18:02:22.988] } [18:02:22.988] } [18:02:22.988] invisible(muffled) [18:02:22.988] } [18:02:22.988] muffleCondition(cond, pattern = "^muffle") [18:02:22.988] } [18:02:22.988] } [18:02:22.988] else { [18:02:22.988] if (TRUE) { [18:02:22.988] muffleCondition <- function (cond, pattern = "^muffle") [18:02:22.988] { [18:02:22.988] inherits <- base::inherits [18:02:22.988] invokeRestart <- base::invokeRestart [18:02:22.988] is.null <- base::is.null [18:02:22.988] muffled <- FALSE [18:02:22.988] if (inherits(cond, "message")) { [18:02:22.988] muffled <- grepl(pattern, "muffleMessage") [18:02:22.988] if (muffled) [18:02:22.988] invokeRestart("muffleMessage") [18:02:22.988] } [18:02:22.988] else if (inherits(cond, "warning")) { [18:02:22.988] muffled <- grepl(pattern, "muffleWarning") [18:02:22.988] if (muffled) [18:02:22.988] invokeRestart("muffleWarning") [18:02:22.988] } [18:02:22.988] else if (inherits(cond, "condition")) { [18:02:22.988] if (!is.null(pattern)) { [18:02:22.988] computeRestarts <- base::computeRestarts [18:02:22.988] grepl <- base::grepl [18:02:22.988] restarts <- computeRestarts(cond) [18:02:22.988] for (restart in restarts) { [18:02:22.988] name <- restart$name [18:02:22.988] if (is.null(name)) [18:02:22.988] next [18:02:22.988] if (!grepl(pattern, name)) [18:02:22.988] next [18:02:22.988] invokeRestart(restart) [18:02:22.988] muffled <- TRUE [18:02:22.988] break [18:02:22.988] } [18:02:22.988] } [18:02:22.988] } [18:02:22.988] invisible(muffled) [18:02:22.988] } [18:02:22.988] muffleCondition(cond, pattern = "^muffle") [18:02:22.988] } [18:02:22.988] } [18:02:22.988] } [18:02:22.988] })) [18:02:22.988] }, error = function(ex) { [18:02:22.988] base::structure(base::list(value = NULL, visible = NULL, [18:02:22.988] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:22.988] ...future.rng), started = ...future.startTime, [18:02:22.988] finished = Sys.time(), session_uuid = NA_character_, [18:02:22.988] version = "1.8"), class = "FutureResult") [18:02:22.988] }, finally = { [18:02:22.988] if (!identical(...future.workdir, getwd())) [18:02:22.988] setwd(...future.workdir) [18:02:22.988] { [18:02:22.988] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:22.988] ...future.oldOptions$nwarnings <- NULL [18:02:22.988] } [18:02:22.988] base::options(...future.oldOptions) [18:02:22.988] if (.Platform$OS.type == "windows") { [18:02:22.988] old_names <- names(...future.oldEnvVars) [18:02:22.988] envs <- base::Sys.getenv() [18:02:22.988] names <- names(envs) [18:02:22.988] common <- intersect(names, old_names) [18:02:22.988] added <- setdiff(names, old_names) [18:02:22.988] removed <- setdiff(old_names, names) [18:02:22.988] changed <- common[...future.oldEnvVars[common] != [18:02:22.988] envs[common]] [18:02:22.988] NAMES <- toupper(changed) [18:02:22.988] args <- list() [18:02:22.988] for (kk in seq_along(NAMES)) { [18:02:22.988] name <- changed[[kk]] [18:02:22.988] NAME <- NAMES[[kk]] [18:02:22.988] if (name != NAME && is.element(NAME, old_names)) [18:02:22.988] next [18:02:22.988] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:22.988] } [18:02:22.988] NAMES <- toupper(added) [18:02:22.988] for (kk in seq_along(NAMES)) { [18:02:22.988] name <- added[[kk]] [18:02:22.988] NAME <- NAMES[[kk]] [18:02:22.988] if (name != NAME && is.element(NAME, old_names)) [18:02:22.988] next [18:02:22.988] args[[name]] <- "" [18:02:22.988] } [18:02:22.988] NAMES <- toupper(removed) [18:02:22.988] for (kk in seq_along(NAMES)) { [18:02:22.988] name <- removed[[kk]] [18:02:22.988] NAME <- NAMES[[kk]] [18:02:22.988] if (name != NAME && is.element(NAME, old_names)) [18:02:22.988] next [18:02:22.988] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:22.988] } [18:02:22.988] if (length(args) > 0) [18:02:22.988] base::do.call(base::Sys.setenv, args = args) [18:02:22.988] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:22.988] } [18:02:22.988] else { [18:02:22.988] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:22.988] } [18:02:22.988] { [18:02:22.988] if (base::length(...future.futureOptionsAdded) > [18:02:22.988] 0L) { [18:02:22.988] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:22.988] base::names(opts) <- ...future.futureOptionsAdded [18:02:22.988] base::options(opts) [18:02:22.988] } [18:02:22.988] { [18:02:22.988] { [18:02:22.988] NULL [18:02:22.988] RNGkind("Mersenne-Twister") [18:02:22.988] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:02:22.988] inherits = FALSE) [18:02:22.988] } [18:02:22.988] options(future.plan = NULL) [18:02:22.988] if (is.na(NA_character_)) [18:02:22.988] Sys.unsetenv("R_FUTURE_PLAN") [18:02:22.988] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:22.988] future::plan(list(a = function (..., envir = parent.frame()) [18:02:22.988] { [18:02:22.988] future <- SequentialFuture(..., envir = envir) [18:02:22.988] if (!future$lazy) [18:02:22.988] future <- run(future) [18:02:22.988] invisible(future) [18:02:22.988] }, b = function (..., envir = parent.frame()) [18:02:22.988] { [18:02:22.988] future <- SequentialFuture(..., envir = envir) [18:02:22.988] if (!future$lazy) [18:02:22.988] future <- run(future) [18:02:22.988] invisible(future) [18:02:22.988] }), .cleanup = FALSE, .init = FALSE) [18:02:22.988] } [18:02:22.988] } [18:02:22.988] } [18:02:22.988] }) [18:02:22.988] if (TRUE) { [18:02:22.988] base::sink(type = "output", split = FALSE) [18:02:22.988] if (TRUE) { [18:02:22.988] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:22.988] } [18:02:22.988] else { [18:02:22.988] ...future.result["stdout"] <- base::list(NULL) [18:02:22.988] } [18:02:22.988] base::close(...future.stdout) [18:02:22.988] ...future.stdout <- NULL [18:02:22.988] } [18:02:22.988] ...future.result$conditions <- ...future.conditions [18:02:22.988] ...future.result$finished <- base::Sys.time() [18:02:22.988] ...future.result [18:02:22.988] } [18:02:22.992] assign_globals() ... [18:02:22.992] List of 1 [18:02:22.992] $ data:'data.frame': 3 obs. of 2 variables: [18:02:22.992] ..$ a: int [1:3] 1 2 3 [18:02:22.992] ..$ b: int [1:3] 3 2 1 [18:02:22.992] - attr(*, "where")=List of 1 [18:02:22.992] ..$ data: [18:02:22.992] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:02:22.992] - attr(*, "resolved")= logi FALSE [18:02:22.992] - attr(*, "total_size")= num 128 [18:02:22.992] - attr(*, "already-done")= logi TRUE [18:02:22.996] - copied 'data' to environment [18:02:22.996] assign_globals() ... done [18:02:22.997] plan(): Setting new future strategy stack: [18:02:22.997] List of future strategies: [18:02:22.997] 1. sequential: [18:02:22.997] - args: function (..., envir = parent.frame()) [18:02:22.997] - tweaked: FALSE [18:02:22.997] - call: plan(list(a = strategy1, b = strategy2)) [18:02:22.998] plan(): nbrOfWorkers() = 1 [18:02:23.036] plan(): Setting new future strategy stack: [18:02:23.036] List of future strategies: [18:02:23.036] 1. sequential: [18:02:23.036] - args: function (..., envir = parent.frame()) [18:02:23.036] - tweaked: FALSE [18:02:23.036] - call: plan(list(a = strategy1, b = strategy2)) [18:02:23.036] 2. sequential: [18:02:23.036] - args: function (..., envir = parent.frame()) [18:02:23.036] - tweaked: FALSE [18:02:23.036] - call: plan(list(a = strategy1, b = strategy2)) [18:02:23.036] plan(): nbrOfWorkers() = 1 [18:02:23.037] SequentialFuture started (and completed) [18:02:23.037] signalConditions() ... [18:02:23.037] - include = 'immediateCondition' [18:02:23.037] - exclude = [18:02:23.037] - resignal = FALSE [18:02:23.038] - Number of conditions: 52 [18:02:23.038] signalConditions() ... done [18:02:23.038] - Launch lazy future ... done [18:02:23.038] run() for 'SequentialFuture' ... done [18:02:23.038] signalConditions() ... [18:02:23.039] - include = 'immediateCondition' [18:02:23.039] - exclude = [18:02:23.039] - resignal = FALSE [18:02:23.039] - Number of conditions: 52 [18:02:23.039] signalConditions() ... done [18:02:23.039] Future state: 'finished' [18:02:23.040] signalConditions() ... [18:02:23.040] - include = 'condition' [18:02:23.040] - exclude = 'immediateCondition' [18:02:23.040] - resignal = TRUE [18:02:23.040] - Number of conditions: 52 [18:02:23.040] - Condition #1: 'simpleMessage', 'message', 'condition' [18:02:22.998] getGlobalsAndPackages() ... [18:02:23.041] - Condition #2: 'simpleMessage', 'message', 'condition' [18:02:22.998] Searching for globals... [18:02:23.041] - Condition #3: 'simpleMessage', 'message', 'condition' [18:02:23.015] - globals found: [4] 'subset', 'data', '==', 'a' [18:02:23.041] - Condition #4: 'simpleMessage', 'message', 'condition' [18:02:23.015] Searching for globals ... DONE [18:02:23.041] - Condition #5: 'simpleMessage', 'message', 'condition' [18:02:23.015] Resolving globals: FALSE [18:02:23.042] - Condition #6: 'simpleMessage', 'message', 'condition' [18:02:23.016] The total size of the 1 globals is 128 bytes (128 bytes) [18:02:23.042] - Condition #7: 'simpleMessage', 'message', 'condition' [18:02:23.016] The total size of the 1 globals exported for future expression ('subset(data, a == 2)') is 128 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'data' (128 bytes of class 'list') [18:02:23.042] - Condition #8: 'simpleMessage', 'message', 'condition' [18:02:23.017] - globals: [1] 'data' [18:02:23.042] - Condition #9: 'simpleMessage', 'message', 'condition' [18:02:23.017] [18:02:23.042] - Condition #10: 'simpleMessage', 'message', 'condition' [18:02:23.017] getGlobalsAndPackages() ... DONE [18:02:23.043] - Condition #11: 'simpleMessage', 'message', 'condition' [18:02:23.017] run() for 'Future' ... [18:02:23.043] - Condition #12: 'simpleMessage', 'message', 'condition' [18:02:23.018] - state: 'created' [18:02:23.043] - Condition #13: 'simpleMessage', 'message', 'condition' [18:02:23.018] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:02:23.043] - Condition #14: 'simpleMessage', 'message', 'condition' [18:02:23.018] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:02:23.044] - Condition #15: 'simpleMessage', 'message', 'condition' [18:02:23.018] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:02:23.044] - Condition #16: 'simpleMessage', 'message', 'condition' [18:02:23.019] - Field: 'label' [18:02:23.044] - Condition #17: 'simpleMessage', 'message', 'condition' [18:02:23.019] - Field: 'local' [18:02:23.044] - Condition #18: 'simpleMessage', 'message', 'condition' [18:02:23.019] - Field: 'owner' [18:02:23.044] - Condition #19: 'simpleMessage', 'message', 'condition' [18:02:23.019] - Field: 'envir' [18:02:23.045] - Condition #20: 'simpleMessage', 'message', 'condition' [18:02:23.019] - Field: 'packages' [18:02:23.046] - Condition #21: 'simpleMessage', 'message', 'condition' [18:02:23.020] - Field: 'gc' [18:02:23.046] - Condition #22: 'simpleMessage', 'message', 'condition' [18:02:23.020] - Field: 'conditions' [18:02:23.046] - Condition #23: 'simpleMessage', 'message', 'condition' [18:02:23.020] - Field: 'expr' [18:02:23.046] - Condition #24: 'simpleMessage', 'message', 'condition' [18:02:23.020] - Field: 'uuid' [18:02:23.047] - Condition #25: 'simpleMessage', 'message', 'condition' [18:02:23.020] - Field: 'seed' [18:02:23.047] - Condition #26: 'simpleMessage', 'message', 'condition' [18:02:23.021] - Field: 'version' [18:02:23.047] - Condition #27: 'simpleMessage', 'message', 'condition' [18:02:23.021] - Field: 'result' [18:02:23.047] - Condition #28: 'simpleMessage', 'message', 'condition' [18:02:23.021] - Field: 'asynchronous' [18:02:23.047] - Condition #29: 'simpleMessage', 'message', 'condition' [18:02:23.021] - Field: 'calls' [18:02:23.048] - Condition #30: 'simpleMessage', 'message', 'condition' [18:02:23.021] - Field: 'globals' [18:02:23.048] - Condition #31: 'simpleMessage', 'message', 'condition' [18:02:23.021] - Field: 'stdout' [18:02:23.048] - Condition #32: 'simpleMessage', 'message', 'condition' [18:02:23.022] - Field: 'earlySignal' [18:02:23.048] - Condition #33: 'simpleMessage', 'message', 'condition' [18:02:23.022] - Field: 'lazy' [18:02:23.048] - Condition #34: 'simpleMessage', 'message', 'condition' [18:02:23.022] - Field: 'state' [18:02:23.049] - Condition #35: 'simpleMessage', 'message', 'condition' [18:02:23.022] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:02:23.049] - Condition #36: 'simpleMessage', 'message', 'condition' [18:02:23.022] - Launch lazy future ... [18:02:23.049] - Condition #37: 'simpleMessage', 'message', 'condition' [18:02:23.023] Packages needed by the future expression (n = 0): [18:02:23.049] - Condition #38: 'simpleMessage', 'message', 'condition' [18:02:23.023] Packages needed by future strategies (n = 0): [18:02:23.050] - Condition #39: 'simpleMessage', 'message', 'condition' [18:02:23.023] { [18:02:23.023] { [18:02:23.023] { [18:02:23.023] ...future.startTime <- base::Sys.time() [18:02:23.023] { [18:02:23.023] { [18:02:23.023] { [18:02:23.023] base::local({ [18:02:23.023] has_future <- base::requireNamespace("future", [18:02:23.023] quietly = TRUE) [18:02:23.023] if (has_future) { [18:02:23.023] ns <- base::getNamespace("future") [18:02:23.023] version <- ns[[".package"]][["version"]] [18:02:23.023] if (is.null(version)) [18:02:23.023] version <- utils::packageVersion("future") [18:02:23.023] } [18:02:23.023] else { [18:02:23.023] version <- NULL [18:02:23.023] } [18:02:23.023] if (!has_future || version < "1.8.0") { [18:02:23.023] info <- base::c(r_version = base::gsub("R version ", [18:02:23.023] "", base::R.version$version.string), [18:02:23.023] platform = base::sprintf("%s (%s-bit)", [18:02:23.023] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:23.023] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:23.023] "release", "version")], collapse = " "), [18:02:23.023] hostname = base::Sys.info()[["nodename"]]) [18:02:23.023] info <- base::sprintf("%s: %s", base::names(info), [18:02:23.023] info) [18:02:23.023] info <- base::paste(info, collapse = "; ") [18:02:23.023] if (!has_future) { [18:02:23.023] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:23.023] info) [18:02:23.023] } [18:02:23.023] else { [18:02:23.023] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:23.023] info, version) [18:02:23.023] } [18:02:23.023] base::stop(msg) [18:02:23.023] } [18:02:23.023] }) [18:02:23.023] } [18:02:23.023] options(future.plan = NULL) [18:02:23.023] Sys.unsetenv("R_FUTURE_PLAN") [18:02:23.023] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:23.023] } [18:02:23.023] ...future.workdir <- getwd() [18:02:23.023] } [18:02:23.023] ...future.oldOptions <- base::as.list(base::.Options) [18:02:23.023] ...future.oldEnvVars <- base::Sys.getenv() [18:02:23.023] } [18:02:23.023] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:23.023] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:23.023] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:23.023] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:23.023] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:23.023] future.stdout.windows.reencode = NULL, width = 80L) [18:02:23.023] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:23.023] base::names(...future.oldOptions)) [18:02:23.023] } [18:02:23.023] if (FALSE) { [18:02:23.023] } [18:02:23.023] else { [18:02:23.023] if (TRUE) { [18:02:23.023] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:23.023] open = "w") [18:02:23.023] } [18:02:23.023] else { [18:02:23.023] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:23.023] windows = "NUL", "/dev/null"), open = "w") [18:02:23.023] } [18:02:23.023] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:23.023] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:23.023] base::sink(type = "output", split = FALSE) [18:02:23.023] base::close(...future.stdout) [18:02:23.023] }, add = TRUE) [18:02:23.023] } [18:02:23.023] ...future.frame <- base::sys.nframe() [18:02:23.023] ...future.conditions <- base::list() [18:02:23.023] ...future.rng <- base::globalenv()$.Random.seed [18:02:23.023] if (FALSE) { [18:02:23.023] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:23.023] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:23.023] } [18:02:23.023] ...future.result <- base::tryCatch({ [18:02:23.023] base::withCallingHandlers({ [18:02:23.023] ...future.value <- base::withVisible(base::local(subset(data, [18:02:23.023] a == 2))) [18:02:23.023] future::FutureResult(value = ...future.value$value, [18:02:23.023] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:23.023] ...future.rng), globalenv = if (FALSE) [18:02:23.023] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:23.023] ...future.globalenv.names)) [18:02:23.023] else NULL, started = ...future.startTime, version = "1.8") [18:02:23.023] }, condition = base::local({ [18:02:23.023] c <- base::c [18:02:23.023] inherits <- base::inherits [18:02:23.023] invokeRestart <- base::invokeRestart [18:02:23.023] length <- base::length [18:02:23.023] list <- base::list [18:02:23.023] seq.int <- base::seq.int [18:02:23.023] signalCondition <- base::signalCondition [18:02:23.023] sys.calls <- base::sys.calls [18:02:23.023] `[[` <- base::`[[` [18:02:23.023] `+` <- base::`+` [18:02:23.023] `<<-` <- base::`<<-` [18:02:23.023] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:23.023] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:23.023] 3L)] [18:02:23.023] } [18:02:23.023] function(cond) { [18:02:23.023] is_error <- inherits(cond, "error") [18:02:23.023] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:23.023] NULL) [18:02:23.023] if (is_error) { [18:02:23.023] sessionInformation <- function() { [18:02:23.023] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:23.023] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:23.023] search = base::search(), system = base::Sys.info()) [18:02:23.023] } [18:02:23.023] ...future.conditions[[length(...future.conditions) + [18:02:23.023] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:23.023] cond$call), session = sessionInformation(), [18:02:23.023] timestamp = base::Sys.time(), signaled = 0L) [18:02:23.023] signalCondition(cond) [18:02:23.023] } [18:02:23.023] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:23.023] "immediateCondition"))) { [18:02:23.023] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:23.023] ...future.conditions[[length(...future.conditions) + [18:02:23.023] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:23.023] if (TRUE && !signal) { [18:02:23.023] muffleCondition <- function (cond, pattern = "^muffle") [18:02:23.023] { [18:02:23.023] inherits <- base::inherits [18:02:23.023] invokeRestart <- base::invokeRestart [18:02:23.023] is.null <- base::is.null [18:02:23.023] muffled <- FALSE [18:02:23.023] if (inherits(cond, "message")) { [18:02:23.023] muffled <- grepl(pattern, "muffleMessage") [18:02:23.023] if (muffled) [18:02:23.023] invokeRestart("muffleMessage") [18:02:23.023] } [18:02:23.023] else if (inherits(cond, "warning")) { [18:02:23.023] muffled <- grepl(pattern, "muffleWarning") [18:02:23.023] if (muffled) [18:02:23.023] invokeRestart("muffleWarning") [18:02:23.023] } [18:02:23.023] else if (inherits(cond, "condition")) { [18:02:23.023] if (!is.null(pattern)) { [18:02:23.023] computeRestarts <- base::computeRestarts [18:02:23.023] grepl <- base::grepl [18:02:23.023] restarts <- computeRestarts(cond) [18:02:23.023] for (restart in restarts) { [18:02:23.023] name <- restart$name [18:02:23.023] if (is.null(name)) [18:02:23.023] next [18:02:23.023] if (!grepl(pattern, name)) [18:02:23.023] next [18:02:23.023] invokeRestart(restart) [18:02:23.023] muffled <- TRUE [18:02:23.023] break [18:02:23.023] } [18:02:23.023] } [18:02:23.023] } [18:02:23.023] invisible(muffled) [18:02:23.023] } [18:02:23.023] muffleCondition(cond, pattern = "^muffle") [18:02:23.023] } [18:02:23.023] } [18:02:23.023] else { [18:02:23.023] if (TRUE) { [18:02:23.023] muffleCondition <- function (cond, pattern = "^muffle") [18:02:23.023] { [18:02:23.023] inherits <- base::inherits [18:02:23.023] invokeRestart <- base::invokeRestart [18:02:23.023] is.null <- base::is.null [18:02:23.023] muffled <- FALSE [18:02:23.023] if (inherits(cond, "message")) { [18:02:23.023] muffled <- grepl(pattern, "muffleMessage") [18:02:23.023] if (muffled) [18:02:23.023] invokeRestart("muffleMessage") [18:02:23.023] } [18:02:23.023] else if (inherits(cond, "warning")) { [18:02:23.023] muffled <- grepl(pattern, "muffleWarning") [18:02:23.023] if (muffled) [18:02:23.023] invokeRestart("muffleWarning") [18:02:23.023] } [18:02:23.023] else if (inherits(cond, "condition")) { [18:02:23.023] if (!is.null(pattern)) { [18:02:23.023] computeRestarts <- base::computeRestarts [18:02:23.023] grepl <- base::grepl [18:02:23.023] restarts <- computeRestarts(cond) [18:02:23.023] for (restart in restarts) { [18:02:23.023] name <- restart$name [18:02:23.023] if (is.null(name)) [18:02:23.023] next [18:02:23.023] if (!grepl(pattern, name)) [18:02:23.023] next [18:02:23.023] invokeRestart(restart) [18:02:23.023] muffled <- TRUE [18:02:23.023] break [18:02:23.023] } [18:02:23.023] } [18:02:23.023] } [18:02:23.023] invisible(muffled) [18:02:23.023] } [18:02:23.023] muffleCondition(cond, pattern = "^muffle") [18:02:23.023] } [18:02:23.023] } [18:02:23.023] } [18:02:23.023] })) [18:02:23.023] }, error = function(ex) { [18:02:23.023] base::structure(base::list(value = NULL, visible = NULL, [18:02:23.023] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:23.023] ...future.rng), started = ...future.startTime, [18:02:23.023] finished = Sys.time(), session_uuid = NA_character_, [18:02:23.023] version = "1.8"), class = "FutureResult") [18:02:23.023] }, finally = { [18:02:23.023] if (!identical(...future.workdir, getwd())) [18:02:23.023] setwd(...future.workdir) [18:02:23.023] { [18:02:23.023] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:23.023] ...future.oldOptions$nwarnings <- NULL [18:02:23.023] } [18:02:23.023] base::options(...future.oldOptions) [18:02:23.023] if (.Platform$OS.type == "windows") { [18:02:23.023] old_names <- names(...future.oldEnvVars) [18:02:23.023] envs <- base::Sys.getenv() [18:02:23.023] names <- names(envs) [18:02:23.023] common <- intersect(names, old_names) [18:02:23.023] added <- setdiff(names, old_names) [18:02:23.023] removed <- setdiff(old_names, names) [18:02:23.023] changed <- common[...future.oldEnvVars[common] != [18:02:23.023] envs[common]] [18:02:23.023] NAMES <- toupper(changed) [18:02:23.023] args <- list() [18:02:23.023] for (kk in seq_along(NAMES)) { [18:02:23.023] name <- changed[[kk]] [18:02:23.023] NAME <- NAMES[[kk]] [18:02:23.023] if (name != NAME && is.element(NAME, old_names)) [18:02:23.023] next [18:02:23.023] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:23.023] } [18:02:23.023] NAMES <- toupper(added) [18:02:23.023] for (kk in seq_along(NAMES)) { [18:02:23.023] name <- added[[kk]] [18:02:23.023] NAME <- NAMES[[kk]] [18:02:23.023] if (name != NAME && is.element(NAME, old_names)) [18:02:23.023] next [18:02:23.023] args[[name]] <- "" [18:02:23.023] } [18:02:23.023] NAMES <- toupper(removed) [18:02:23.023] for (kk in seq_along(NAMES)) { [18:02:23.023] name <- removed[[kk]] [18:02:23.023] NAME <- NAMES[[kk]] [18:02:23.023] if (name != NAME && is.element(NAME, old_names)) [18:02:23.023] next [18:02:23.023] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:23.023] } [18:02:23.023] if (length(args) > 0) [18:02:23.023] base::do.call(base::Sys.setenv, args = args) [18:02:23.023] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:23.023] } [18:02:23.023] else { [18:02:23.023] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:23.023] } [18:02:23.023] { [18:02:23.023] if (base::length(...future.futureOptionsAdded) > [18:02:23.023] 0L) { [18:02:23.023] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:23.023] base::names(opts) <- ...future.futureOptionsAdded [18:02:23.023] base::options(opts) [18:02:23.023] } [18:02:23.023] { [18:02:23.023] { [18:02:23.023] NULL [18:02:23.023] RNGkind("Mersenne-Twister") [18:02:23.023] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:02:23.023] inherits = FALSE) [18:02:23.023] } [18:02:23.023] options(future.plan = NULL) [18:02:23.023] if (is.na(NA_character_)) [18:02:23.023] Sys.unsetenv("R_FUTURE_PLAN") [18:02:23.023] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:23.023] future::plan(list(b = function (..., envir = parent.frame()) [18:02:23.023] { [18:02:23.023] future <- SequentialFuture(..., envir = envir) [18:02:23.023] if (!future$lazy) [18:02:23.023] future <- run(future) [18:02:23.023] invisible(future) [18:02:23.023] }), .cleanup = FALSE, .init = FALSE) [18:02:23.023] } [18:02:23.023] } [18:02:23.023] } [18:02:23.023] }) [18:02:23.023] if (TRUE) { [18:02:23.023] base::sink(type = "output", split = FALSE) [18:02:23.023] if (TRUE) { [18:02:23.023] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:23.023] } [18:02:23.023] else { [18:02:23.023] ...future.result["stdout"] <- base::list(NULL) [18:02:23.023] } [18:02:23.023] base::close(...future.stdout) [18:02:23.023] ...future.stdout <- NULL [18:02:23.023] } [18:02:23.023] ...future.result$conditions <- ...future.conditions [18:02:23.023] ...future.result$finished <- base::Sys.time() [18:02:23.023] ...future.result [18:02:23.023] } [18:02:23.050] - Condition #40: 'simpleMessage', 'message', 'condition' [18:02:23.027] assign_globals() ... [18:02:23.050] - Condition #41: 'simpleMessage', 'message', 'condition' [18:02:23.027] List of 1 [18:02:23.027] $ data:'data.frame': 3 obs. of 2 variables: [18:02:23.027] ..$ a: int [1:3] 1 2 3 [18:02:23.027] ..$ b: int [1:3] 3 2 1 [18:02:23.027] - attr(*, "where")=List of 1 [18:02:23.027] ..$ data: [18:02:23.027] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:02:23.027] - attr(*, "resolved")= logi FALSE [18:02:23.027] - attr(*, "total_size")= num 128 [18:02:23.027] - attr(*, "already-done")= logi TRUE [18:02:23.050] - Condition #42: 'simpleMessage', 'message', 'condition' [18:02:23.031] - copied 'data' to environment [18:02:23.051] - Condition #43: 'simpleMessage', 'message', 'condition' [18:02:23.031] assign_globals() ... done [18:02:23.051] - Condition #44: 'simpleMessage', 'message', 'condition' [18:02:23.032] plan(): Setting new future strategy stack: [18:02:23.051] - Condition #45: 'simpleMessage', 'message', 'condition' [18:02:23.032] List of future strategies: [18:02:23.032] 1. sequential: [18:02:23.032] - args: function (..., envir = parent.frame()) [18:02:23.032] - tweaked: FALSE [18:02:23.032] - call: NULL [18:02:23.051] - Condition #46: 'simpleMessage', 'message', 'condition' [18:02:23.032] plan(): nbrOfWorkers() = 1 [18:02:23.051] - Condition #47: 'simpleMessage', 'message', 'condition' [18:02:23.033] plan(): Setting new future strategy stack: [18:02:23.052] - Condition #48: 'simpleMessage', 'message', 'condition' [18:02:23.034] List of future strategies: [18:02:23.034] 1. sequential: [18:02:23.034] - args: function (..., envir = parent.frame()) [18:02:23.034] - tweaked: FALSE [18:02:23.034] - call: plan(list(a = strategy1, b = strategy2)) [18:02:23.052] - Condition #49: 'simpleMessage', 'message', 'condition' [18:02:23.034] plan(): nbrOfWorkers() = 1 [18:02:23.052] - Condition #50: 'simpleMessage', 'message', 'condition' [18:02:23.034] SequentialFuture started (and completed) [18:02:23.052] - Condition #51: 'simpleMessage', 'message', 'condition' [18:02:23.035] - Launch lazy future ... done [18:02:23.052] - Condition #52: 'simpleMessage', 'message', 'condition' [18:02:23.035] run() for 'SequentialFuture' ... done [18:02:23.053] signalConditions() ... done - plan(list('sequential', 'sequential')) ... DONE - plan(list('sequential', 'multisession')) ... [18:02:23.053] plan(): Setting new future strategy stack: [18:02:23.053] List of future strategies: [18:02:23.053] 1. sequential: [18:02:23.053] - args: function (..., envir = parent.frame()) [18:02:23.053] - tweaked: FALSE [18:02:23.053] - call: plan(list(a = strategy1, b = strategy2)) [18:02:23.053] 2. multisession: [18:02:23.053] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:23.053] - tweaked: FALSE [18:02:23.053] - call: plan(list(a = strategy1, b = strategy2)) [18:02:23.054] plan(): nbrOfWorkers() = 1 [18:02:23.054] getGlobalsAndPackages() ... [18:02:23.055] Searching for globals... [18:02:23.077] - globals found: [21] '{', '<-', 'unclass', '::', '[', 'nested', '-', 'stopifnot', '==', 'length', 'inherits', '[[', 'strategy2', 'for', 'seq_along', 'attr', 'attr<-', '[[<-', 'all.equal', 'list', '%<-%' [18:02:23.078] Searching for globals ... DONE [18:02:23.078] Resolving globals: FALSE [18:02:23.080] The total size of the 2 globals is 55.41 KiB (56736 bytes) [18:02:23.081] The total size of the 2 globals exported for future expression ('{; a <- 1L; plan_a <- unclass(future::plan("list")); nested_a <- nested[-1]; stopifnot(length(nested_a) == 1L, length(plan_a) == 1L, inherits(plan_a[[1]],; "future"), inherits(future::plan("next"), strategy2)); ...; }; y; }') is 55.41 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'nested' (55.29 KiB of class 'list') and 'strategy2' (120 bytes of class 'character') [18:02:23.081] - globals: [2] 'nested', 'strategy2' [18:02:23.081] - packages: [1] 'future' [18:02:23.081] getGlobalsAndPackages() ... DONE [18:02:23.082] run() for 'Future' ... [18:02:23.082] - state: 'created' [18:02:23.082] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:02:23.083] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:02:23.083] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:02:23.083] - Field: 'label' [18:02:23.084] - Field: 'local' [18:02:23.084] - Field: 'owner' [18:02:23.084] - Field: 'envir' [18:02:23.084] - Field: 'packages' [18:02:23.085] - Field: 'gc' [18:02:23.085] - Field: 'conditions' [18:02:23.085] - Field: 'expr' [18:02:23.085] - Field: 'uuid' [18:02:23.086] - Field: 'seed' [18:02:23.086] - Field: 'version' [18:02:23.086] - Field: 'result' [18:02:23.086] - Field: 'asynchronous' [18:02:23.086] - Field: 'calls' [18:02:23.087] - Field: 'globals' [18:02:23.087] - Field: 'stdout' [18:02:23.087] - Field: 'earlySignal' [18:02:23.087] - Field: 'lazy' [18:02:23.088] - Field: 'state' [18:02:23.088] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:02:23.088] - Launch lazy future ... [18:02:23.088] Packages needed by the future expression (n = 1): 'future' [18:02:23.089] Packages needed by future strategies (n = 1): 'future' [18:02:23.090] { [18:02:23.090] { [18:02:23.090] { [18:02:23.090] ...future.startTime <- base::Sys.time() [18:02:23.090] { [18:02:23.090] { [18:02:23.090] { [18:02:23.090] { [18:02:23.090] base::local({ [18:02:23.090] has_future <- base::requireNamespace("future", [18:02:23.090] quietly = TRUE) [18:02:23.090] if (has_future) { [18:02:23.090] ns <- base::getNamespace("future") [18:02:23.090] version <- ns[[".package"]][["version"]] [18:02:23.090] if (is.null(version)) [18:02:23.090] version <- utils::packageVersion("future") [18:02:23.090] } [18:02:23.090] else { [18:02:23.090] version <- NULL [18:02:23.090] } [18:02:23.090] if (!has_future || version < "1.8.0") { [18:02:23.090] info <- base::c(r_version = base::gsub("R version ", [18:02:23.090] "", base::R.version$version.string), [18:02:23.090] platform = base::sprintf("%s (%s-bit)", [18:02:23.090] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:23.090] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:23.090] "release", "version")], collapse = " "), [18:02:23.090] hostname = base::Sys.info()[["nodename"]]) [18:02:23.090] info <- base::sprintf("%s: %s", base::names(info), [18:02:23.090] info) [18:02:23.090] info <- base::paste(info, collapse = "; ") [18:02:23.090] if (!has_future) { [18:02:23.090] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:23.090] info) [18:02:23.090] } [18:02:23.090] else { [18:02:23.090] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:23.090] info, version) [18:02:23.090] } [18:02:23.090] base::stop(msg) [18:02:23.090] } [18:02:23.090] }) [18:02:23.090] } [18:02:23.090] base::local({ [18:02:23.090] for (pkg in "future") { [18:02:23.090] base::loadNamespace(pkg) [18:02:23.090] base::library(pkg, character.only = TRUE) [18:02:23.090] } [18:02:23.090] }) [18:02:23.090] } [18:02:23.090] options(future.plan = NULL) [18:02:23.090] Sys.unsetenv("R_FUTURE_PLAN") [18:02:23.090] future::plan(list(b = function (..., workers = availableCores(), [18:02:23.090] lazy = FALSE, rscript_libs = .libPaths(), [18:02:23.090] envir = parent.frame()) [18:02:23.090] { [18:02:23.090] if (is.function(workers)) [18:02:23.090] workers <- workers() [18:02:23.090] workers <- structure(as.integer(workers), [18:02:23.090] class = class(workers)) [18:02:23.090] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:23.090] workers >= 1) [18:02:23.090] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:23.090] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:23.090] } [18:02:23.090] future <- MultisessionFuture(..., workers = workers, [18:02:23.090] lazy = lazy, rscript_libs = rscript_libs, [18:02:23.090] envir = envir) [18:02:23.090] if (!future$lazy) [18:02:23.090] future <- run(future) [18:02:23.090] invisible(future) [18:02:23.090] }), .cleanup = FALSE, .init = FALSE) [18:02:23.090] } [18:02:23.090] ...future.workdir <- getwd() [18:02:23.090] } [18:02:23.090] ...future.oldOptions <- base::as.list(base::.Options) [18:02:23.090] ...future.oldEnvVars <- base::Sys.getenv() [18:02:23.090] } [18:02:23.090] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:23.090] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:23.090] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:23.090] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:23.090] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:23.090] future.stdout.windows.reencode = NULL, width = 80L) [18:02:23.090] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:23.090] base::names(...future.oldOptions)) [18:02:23.090] } [18:02:23.090] if (FALSE) { [18:02:23.090] } [18:02:23.090] else { [18:02:23.090] if (TRUE) { [18:02:23.090] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:23.090] open = "w") [18:02:23.090] } [18:02:23.090] else { [18:02:23.090] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:23.090] windows = "NUL", "/dev/null"), open = "w") [18:02:23.090] } [18:02:23.090] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:23.090] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:23.090] base::sink(type = "output", split = FALSE) [18:02:23.090] base::close(...future.stdout) [18:02:23.090] }, add = TRUE) [18:02:23.090] } [18:02:23.090] ...future.frame <- base::sys.nframe() [18:02:23.090] ...future.conditions <- base::list() [18:02:23.090] ...future.rng <- base::globalenv()$.Random.seed [18:02:23.090] if (FALSE) { [18:02:23.090] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:23.090] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:23.090] } [18:02:23.090] ...future.result <- base::tryCatch({ [18:02:23.090] base::withCallingHandlers({ [18:02:23.090] ...future.value <- base::withVisible(base::local({ [18:02:23.090] a <- 1L [18:02:23.090] plan_a <- unclass(future::plan("list")) [18:02:23.090] nested_a <- nested[-1] [18:02:23.090] stopifnot(length(nested_a) == 1L, length(plan_a) == [18:02:23.090] 1L, inherits(plan_a[[1]], "future"), inherits(future::plan("next"), [18:02:23.090] strategy2)) [18:02:23.090] for (kk in seq_along(plan_a)) attr(plan_a[[kk]], [18:02:23.090] "init") <- NULL [18:02:23.090] for (kk in seq_along(nested_a)) attr(nested_a[[kk]], [18:02:23.090] "init") <- NULL [18:02:23.090] stopifnot(all.equal(plan_a, nested_a)) [18:02:23.090] y %<-% { [18:02:23.090] b <- 2L [18:02:23.090] plan_b <- future::plan("list") [18:02:23.090] nested_b <- nested_a[-1] [18:02:23.090] stopifnot(length(nested_b) == 0L, length(plan_b) == [18:02:23.090] 1L, inherits(plan_b[[1]], "future"), inherits(future::plan("next"), [18:02:23.090] "sequential")) [18:02:23.090] list(a = a, nested_a = nested_a, plan_a = plan_a, [18:02:23.090] b = b, nested_b = nested_b, plan_b = plan_b) [18:02:23.090] } [18:02:23.090] y [18:02:23.090] })) [18:02:23.090] future::FutureResult(value = ...future.value$value, [18:02:23.090] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:23.090] ...future.rng), globalenv = if (FALSE) [18:02:23.090] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:23.090] ...future.globalenv.names)) [18:02:23.090] else NULL, started = ...future.startTime, version = "1.8") [18:02:23.090] }, condition = base::local({ [18:02:23.090] c <- base::c [18:02:23.090] inherits <- base::inherits [18:02:23.090] invokeRestart <- base::invokeRestart [18:02:23.090] length <- base::length [18:02:23.090] list <- base::list [18:02:23.090] seq.int <- base::seq.int [18:02:23.090] signalCondition <- base::signalCondition [18:02:23.090] sys.calls <- base::sys.calls [18:02:23.090] `[[` <- base::`[[` [18:02:23.090] `+` <- base::`+` [18:02:23.090] `<<-` <- base::`<<-` [18:02:23.090] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:23.090] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:23.090] 3L)] [18:02:23.090] } [18:02:23.090] function(cond) { [18:02:23.090] is_error <- inherits(cond, "error") [18:02:23.090] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:23.090] NULL) [18:02:23.090] if (is_error) { [18:02:23.090] sessionInformation <- function() { [18:02:23.090] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:23.090] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:23.090] search = base::search(), system = base::Sys.info()) [18:02:23.090] } [18:02:23.090] ...future.conditions[[length(...future.conditions) + [18:02:23.090] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:23.090] cond$call), session = sessionInformation(), [18:02:23.090] timestamp = base::Sys.time(), signaled = 0L) [18:02:23.090] signalCondition(cond) [18:02:23.090] } [18:02:23.090] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:23.090] "immediateCondition"))) { [18:02:23.090] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:23.090] ...future.conditions[[length(...future.conditions) + [18:02:23.090] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:23.090] if (TRUE && !signal) { [18:02:23.090] muffleCondition <- function (cond, pattern = "^muffle") [18:02:23.090] { [18:02:23.090] inherits <- base::inherits [18:02:23.090] invokeRestart <- base::invokeRestart [18:02:23.090] is.null <- base::is.null [18:02:23.090] muffled <- FALSE [18:02:23.090] if (inherits(cond, "message")) { [18:02:23.090] muffled <- grepl(pattern, "muffleMessage") [18:02:23.090] if (muffled) [18:02:23.090] invokeRestart("muffleMessage") [18:02:23.090] } [18:02:23.090] else if (inherits(cond, "warning")) { [18:02:23.090] muffled <- grepl(pattern, "muffleWarning") [18:02:23.090] if (muffled) [18:02:23.090] invokeRestart("muffleWarning") [18:02:23.090] } [18:02:23.090] else if (inherits(cond, "condition")) { [18:02:23.090] if (!is.null(pattern)) { [18:02:23.090] computeRestarts <- base::computeRestarts [18:02:23.090] grepl <- base::grepl [18:02:23.090] restarts <- computeRestarts(cond) [18:02:23.090] for (restart in restarts) { [18:02:23.090] name <- restart$name [18:02:23.090] if (is.null(name)) [18:02:23.090] next [18:02:23.090] if (!grepl(pattern, name)) [18:02:23.090] next [18:02:23.090] invokeRestart(restart) [18:02:23.090] muffled <- TRUE [18:02:23.090] break [18:02:23.090] } [18:02:23.090] } [18:02:23.090] } [18:02:23.090] invisible(muffled) [18:02:23.090] } [18:02:23.090] muffleCondition(cond, pattern = "^muffle") [18:02:23.090] } [18:02:23.090] } [18:02:23.090] else { [18:02:23.090] if (TRUE) { [18:02:23.090] muffleCondition <- function (cond, pattern = "^muffle") [18:02:23.090] { [18:02:23.090] inherits <- base::inherits [18:02:23.090] invokeRestart <- base::invokeRestart [18:02:23.090] is.null <- base::is.null [18:02:23.090] muffled <- FALSE [18:02:23.090] if (inherits(cond, "message")) { [18:02:23.090] muffled <- grepl(pattern, "muffleMessage") [18:02:23.090] if (muffled) [18:02:23.090] invokeRestart("muffleMessage") [18:02:23.090] } [18:02:23.090] else if (inherits(cond, "warning")) { [18:02:23.090] muffled <- grepl(pattern, "muffleWarning") [18:02:23.090] if (muffled) [18:02:23.090] invokeRestart("muffleWarning") [18:02:23.090] } [18:02:23.090] else if (inherits(cond, "condition")) { [18:02:23.090] if (!is.null(pattern)) { [18:02:23.090] computeRestarts <- base::computeRestarts [18:02:23.090] grepl <- base::grepl [18:02:23.090] restarts <- computeRestarts(cond) [18:02:23.090] for (restart in restarts) { [18:02:23.090] name <- restart$name [18:02:23.090] if (is.null(name)) [18:02:23.090] next [18:02:23.090] if (!grepl(pattern, name)) [18:02:23.090] next [18:02:23.090] invokeRestart(restart) [18:02:23.090] muffled <- TRUE [18:02:23.090] break [18:02:23.090] } [18:02:23.090] } [18:02:23.090] } [18:02:23.090] invisible(muffled) [18:02:23.090] } [18:02:23.090] muffleCondition(cond, pattern = "^muffle") [18:02:23.090] } [18:02:23.090] } [18:02:23.090] } [18:02:23.090] })) [18:02:23.090] }, error = function(ex) { [18:02:23.090] base::structure(base::list(value = NULL, visible = NULL, [18:02:23.090] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:23.090] ...future.rng), started = ...future.startTime, [18:02:23.090] finished = Sys.time(), session_uuid = NA_character_, [18:02:23.090] version = "1.8"), class = "FutureResult") [18:02:23.090] }, finally = { [18:02:23.090] if (!identical(...future.workdir, getwd())) [18:02:23.090] setwd(...future.workdir) [18:02:23.090] { [18:02:23.090] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:23.090] ...future.oldOptions$nwarnings <- NULL [18:02:23.090] } [18:02:23.090] base::options(...future.oldOptions) [18:02:23.090] if (.Platform$OS.type == "windows") { [18:02:23.090] old_names <- names(...future.oldEnvVars) [18:02:23.090] envs <- base::Sys.getenv() [18:02:23.090] names <- names(envs) [18:02:23.090] common <- intersect(names, old_names) [18:02:23.090] added <- setdiff(names, old_names) [18:02:23.090] removed <- setdiff(old_names, names) [18:02:23.090] changed <- common[...future.oldEnvVars[common] != [18:02:23.090] envs[common]] [18:02:23.090] NAMES <- toupper(changed) [18:02:23.090] args <- list() [18:02:23.090] for (kk in seq_along(NAMES)) { [18:02:23.090] name <- changed[[kk]] [18:02:23.090] NAME <- NAMES[[kk]] [18:02:23.090] if (name != NAME && is.element(NAME, old_names)) [18:02:23.090] next [18:02:23.090] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:23.090] } [18:02:23.090] NAMES <- toupper(added) [18:02:23.090] for (kk in seq_along(NAMES)) { [18:02:23.090] name <- added[[kk]] [18:02:23.090] NAME <- NAMES[[kk]] [18:02:23.090] if (name != NAME && is.element(NAME, old_names)) [18:02:23.090] next [18:02:23.090] args[[name]] <- "" [18:02:23.090] } [18:02:23.090] NAMES <- toupper(removed) [18:02:23.090] for (kk in seq_along(NAMES)) { [18:02:23.090] name <- removed[[kk]] [18:02:23.090] NAME <- NAMES[[kk]] [18:02:23.090] if (name != NAME && is.element(NAME, old_names)) [18:02:23.090] next [18:02:23.090] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:23.090] } [18:02:23.090] if (length(args) > 0) [18:02:23.090] base::do.call(base::Sys.setenv, args = args) [18:02:23.090] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:23.090] } [18:02:23.090] else { [18:02:23.090] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:23.090] } [18:02:23.090] { [18:02:23.090] if (base::length(...future.futureOptionsAdded) > [18:02:23.090] 0L) { [18:02:23.090] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:23.090] base::names(opts) <- ...future.futureOptionsAdded [18:02:23.090] base::options(opts) [18:02:23.090] } [18:02:23.090] { [18:02:23.090] { [18:02:23.090] NULL [18:02:23.090] RNGkind("Mersenne-Twister") [18:02:23.090] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:02:23.090] inherits = FALSE) [18:02:23.090] } [18:02:23.090] options(future.plan = NULL) [18:02:23.090] if (is.na(NA_character_)) [18:02:23.090] Sys.unsetenv("R_FUTURE_PLAN") [18:02:23.090] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:23.090] future::plan(list(a = function (..., envir = parent.frame()) [18:02:23.090] { [18:02:23.090] future <- SequentialFuture(..., envir = envir) [18:02:23.090] if (!future$lazy) [18:02:23.090] future <- run(future) [18:02:23.090] invisible(future) [18:02:23.090] }, b = function (..., workers = availableCores(), [18:02:23.090] lazy = FALSE, rscript_libs = .libPaths(), [18:02:23.090] envir = parent.frame()) [18:02:23.090] { [18:02:23.090] if (is.function(workers)) [18:02:23.090] workers <- workers() [18:02:23.090] workers <- structure(as.integer(workers), [18:02:23.090] class = class(workers)) [18:02:23.090] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:23.090] workers >= 1) [18:02:23.090] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:23.090] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:23.090] } [18:02:23.090] future <- MultisessionFuture(..., workers = workers, [18:02:23.090] lazy = lazy, rscript_libs = rscript_libs, [18:02:23.090] envir = envir) [18:02:23.090] if (!future$lazy) [18:02:23.090] future <- run(future) [18:02:23.090] invisible(future) [18:02:23.090] }), .cleanup = FALSE, .init = FALSE) [18:02:23.090] } [18:02:23.090] } [18:02:23.090] } [18:02:23.090] }) [18:02:23.090] if (TRUE) { [18:02:23.090] base::sink(type = "output", split = FALSE) [18:02:23.090] if (TRUE) { [18:02:23.090] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:23.090] } [18:02:23.090] else { [18:02:23.090] ...future.result["stdout"] <- base::list(NULL) [18:02:23.090] } [18:02:23.090] base::close(...future.stdout) [18:02:23.090] ...future.stdout <- NULL [18:02:23.090] } [18:02:23.090] ...future.result$conditions <- ...future.conditions [18:02:23.090] ...future.result$finished <- base::Sys.time() [18:02:23.090] ...future.result [18:02:23.090] } [18:02:23.096] assign_globals() ... [18:02:23.096] List of 2 [18:02:23.096] $ nested :List of 2 [18:02:23.096] ..$ a:function (..., envir = parent.frame()) [18:02:23.096] .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" [18:02:23.096] .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) [18:02:23.096] ..$ b:function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), [18:02:23.096] envir = parent.frame()) [18:02:23.096] .. ..- attr(*, "class")= chr [1:5] "multisession" "cluster" "multiprocess" "future" ... [18:02:23.096] .. ..- attr(*, "init")= logi TRUE [18:02:23.096] .. ..- attr(*, "untweakable")= chr "persistent" [18:02:23.096] .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) [18:02:23.096] ..- attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [18:02:23.096] $ strategy2: chr "multisession" [18:02:23.096] - attr(*, "where")=List of 2 [18:02:23.096] ..$ nested : [18:02:23.096] ..$ strategy2: [18:02:23.096] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:02:23.096] - attr(*, "resolved")= logi FALSE [18:02:23.096] - attr(*, "total_size")= num 56736 [18:02:23.096] - attr(*, "already-done")= logi TRUE [18:02:23.103] - copied 'nested' to environment [18:02:23.103] - copied 'strategy2' to environment [18:02:23.104] assign_globals() ... done [18:02:23.104] plan(): Setting new future strategy stack: [18:02:23.105] List of future strategies: [18:02:23.105] 1. multisession: [18:02:23.105] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:23.105] - tweaked: FALSE [18:02:23.105] - call: plan(list(a = strategy1, b = strategy2)) [18:02:23.107] plan(): nbrOfWorkers() = 2 [18:02:24.022] plan(): Setting new future strategy stack: [18:02:24.022] List of future strategies: [18:02:24.022] 1. sequential: [18:02:24.022] - args: function (..., envir = parent.frame()) [18:02:24.022] - tweaked: FALSE [18:02:24.022] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.022] 2. multisession: [18:02:24.022] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.022] - tweaked: FALSE [18:02:24.022] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.023] plan(): nbrOfWorkers() = 1 [18:02:24.024] SequentialFuture started (and completed) [18:02:24.024] signalConditions() ... [18:02:24.024] - include = 'immediateCondition' [18:02:24.024] - exclude = [18:02:24.024] - resignal = FALSE [18:02:24.025] - Number of conditions: 97 [18:02:24.025] signalConditions() ... done [18:02:24.025] - Launch lazy future ... done [18:02:24.025] run() for 'SequentialFuture' ... done [18:02:24.026] signalConditions() ... [18:02:24.026] - include = 'immediateCondition' [18:02:24.026] - exclude = [18:02:24.026] - resignal = FALSE [18:02:24.027] - Number of conditions: 97 [18:02:24.027] signalConditions() ... done [18:02:24.027] Future state: 'finished' [18:02:24.027] signalConditions() ... [18:02:24.027] - include = 'condition' [18:02:24.028] - exclude = 'immediateCondition' [18:02:24.028] - resignal = TRUE [18:02:24.028] - Number of conditions: 97 [18:02:24.028] - Condition #1: 'simpleMessage', 'message', 'condition' [18:02:23.108] getGlobalsAndPackages() ... [18:02:24.029] - Condition #2: 'simpleMessage', 'message', 'condition' [18:02:23.109] Searching for globals... [18:02:24.029] - Condition #3: 'simpleMessage', 'message', 'condition' [18:02:23.130] - globals found: [14] '{', '<-', '::', '[', 'nested_a', '-', 'stopifnot', '==', 'length', 'inherits', '[[', 'list', 'a', 'plan_a' [18:02:24.029] - Condition #4: 'simpleMessage', 'message', 'condition' [18:02:23.130] Searching for globals ... DONE [18:02:24.029] - Condition #5: 'simpleMessage', 'message', 'condition' [18:02:23.131] Resolving globals: FALSE [18:02:24.030] - Condition #6: 'simpleMessage', 'message', 'condition' [18:02:23.131] The total size of the 3 globals is 87.82 KiB (89928 bytes) [18:02:24.030] - Condition #7: 'simpleMessage', 'message', 'condition' [18:02:23.132] The total size of the 3 globals exported for future expression ('{; b <- 2L; plan_b <- future::plan("list"); nested_b <- nested_a[-1]; stopifnot(length(nested_b) == 0L, length(plan_b) == 1L, inherits(plan_b[[1]],; "future"), inherits(future::plan("next"), "sequential")); list(a = a, nested_a = nested_a, plan_a = plan_a, b = b,; nested_b = nested_b, plan_b = plan_b); }') is 87.82 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are three globals: 'nested_a' (43.88 KiB of class 'list'), 'plan_a' (43.88 KiB of class 'list') and 'a' (56 bytes of class 'numeric') [18:02:24.030] - Condition #8: 'simpleMessage', 'message', 'condition' [18:02:23.132] - globals: [3] 'nested_a', 'a', 'plan_a' [18:02:24.030] - Condition #9: 'simpleMessage', 'message', 'condition' [18:02:23.133] [18:02:24.031] - Condition #10: 'simpleMessage', 'message', 'condition' [18:02:23.133] getGlobalsAndPackages() ... DONE [18:02:24.031] - Condition #11: 'simpleMessage', 'message', 'condition' [18:02:23.133] run() for 'Future' ... [18:02:24.031] - Condition #12: 'simpleMessage', 'message', 'condition' [18:02:23.133] - state: 'created' [18:02:24.031] - Condition #13: 'simpleMessage', 'message', 'condition' [18:02:23.133] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:24.032] - Condition #14: 'simpleMessage', 'message', 'condition' [18:02:23.138] [local output] makeClusterPSOCK() ... [18:02:24.032] - Condition #15: 'simpleMessage', 'message', 'condition' [18:02:23.168] [local output] Workers: [n = 2] 'localhost', 'localhost' [18:02:24.032] - Condition #16: 'simpleMessage', 'message', 'condition' [18:02:23.175] [local output] Base port: 34495 [18:02:24.032] - Condition #17: 'simpleMessage', 'message', 'condition' [18:02:23.175] [local output] Getting setup options for 2 cluster nodes ... [18:02:24.033] - Condition #18: 'simpleMessage', 'message', 'condition' [18:02:23.176] [local output] - Node 1 of 2 ... [18:02:24.033] - Condition #19: 'simpleMessage', 'message', 'condition' [18:02:23.176] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:24.033] - Condition #20: 'simpleMessage', 'message', 'condition' [18:02:23.177] Testing if worker's PID can be inferred: '"D:/RCompile/recent/R/bin/x64/Rscript" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e4944f335a33.pid\")), silent = TRUE)" -e "file.exists(\"D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e4944f335a33.pid\")"' [18:02:24.033] - Condition #21: 'simpleMessage', 'message', 'condition' [18:02:23.622] - Possible to infer worker's PID: TRUE [18:02:24.034] - Condition #22: 'simpleMessage', 'message', 'condition' [18:02:23.623] [local output] Rscript port: 34495 [18:02:24.034] - Condition #23: 'simpleMessage', 'message', 'condition' [18:02:23.623] [local output] - Node 2 of 2 ... [18:02:24.034] - Condition #24: 'simpleMessage', 'message', 'condition' [18:02:23.624] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:24.034] - Condition #25: 'simpleMessage', 'message', 'condition' [18:02:23.625] [local output] Rscript port: 34495 [18:02:24.035] - Condition #26: 'simpleMessage', 'message', 'condition' [18:02:23.626] [local output] Getting setup options for 2 cluster nodes ... done [18:02:24.035] - Condition #27: 'simpleMessage', 'message', 'condition' [18:02:23.626] [local output] - Parallel setup requested for some PSOCK nodes [18:02:24.035] - Condition #28: 'simpleMessage', 'message', 'condition' [18:02:23.627] [local output] Setting up PSOCK nodes in parallel [18:02:24.035] - Condition #29: 'simpleMessage', 'message', 'condition' [18:02:23.627] List of 36 [18:02:23.627] $ worker : chr "localhost" [18:02:23.627] ..- attr(*, "localhost")= logi TRUE [18:02:23.627] $ master : chr "localhost" [18:02:23.627] $ port : int 34495 [18:02:23.627] $ connectTimeout : num 120 [18:02:23.627] $ timeout : num 120 [18:02:23.627] $ rscript : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\"" [18:02:23.627] $ homogeneous : logi TRUE [18:02:23.627] $ rscript_args : chr "--default-packages=datasets,utils,grDevices,graphics,stats,methods -e \"#label=nested_futures.R:189588:CRANWIN3"| __truncated__ [18:02:23.627] $ rscript_envs : NULL [18:02:23.627] $ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:23.627] $ rscript_startup : NULL [18:02:23.627] $ rscript_sh : chr "cmd" [18:02:23.627] $ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:23.627] $ methods : logi TRUE [18:02:23.627] $ socketOptions : chr "no-delay" [18:02:23.627] $ useXDR : logi FALSE [18:02:23.627] $ outfile : chr "/dev/null" [18:02:23.627] $ renice : int NA [18:02:23.627] $ rshcmd : NULL [18:02:23.627] $ user : chr(0) [18:02:23.627] $ revtunnel : logi FALSE [18:02:23.627] $ rshlogfile : NULL [18:02:23.627] $ rshopts : chr(0) [18:02:23.627] $ rank : int 1 [18:02:23.627] $ manual : logi FALSE [18:02:23.627] $ dryrun : logi FALSE [18:02:23.627] $ quiet : logi FALSE [18:02:23.627] $ setup_strategy : chr "parallel" [18:02:23.627] $ local_cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:23.627] $ pidfile : chr "D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e4944f335a33.pid" [18:02:23.627] $ rshcmd_label : NULL [18:02:23.627] $ rsh_call : NULL [18:02:23.627] $ cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:23.627] $ localMachine : logi TRUE [18:02:23.627] $ make_fcn :function (worker = getOption2("parallelly.localhost.hostname", "localhost"), [18:02:23.627] master = NULL, port, connectTimeout = getOption2("parallelly.makeNodePSOCK.connectTimeout", [18:02:23.627] 2 * 60), timeout = getOption2("parallelly.makeNodePSOCK.timeout", [18:02:23.627] 30 * 24 * 60 * 60), rscript = NULL, homogeneous = NULL, rscript_args = NULL, [18:02:23.627] rscript_envs = NULL, rscript_libs = NULL, rscript_startup = NULL, rscript_sh = c("auto", [18:02:23.627] "cmd", "sh"), default_packages = c("datasets", "utils", "grDevices", [18:02:23.627] "graphics", "stats", if (methods) "methods"), methods = TRUE, socketOptions = getOption2("parallelly.makeNodePSOCK.socketOptions", [18:02:23.627] "no-delay"), useXDR = getOption2("parallelly.makeNodePSOCK.useXDR", [18:02:23.627] FALSE), outfile = "/dev/null", renice = NA_integer_, rshcmd = getOption2("parallelly.makeNodePSOCK.rshcmd", [18:02:23.627] NULL), user = NULL, revtunnel = NA, rshlogfile = NULL, rshopts = getOption2("parallelly.makeNodePSOCK.rshopts", [18:02:23.627] NULL), rank = 1L, manual = FALSE, dryrun = FALSE, quiet = FALSE, [18:02:23.627] setup_strategy = getOption2("parallelly.makeNodePSOCK.setup_strategy", [18:02:23.627] "parallel"), action = c("launch", "options"), verbose = FALSE) [18:02:23.627] $ arguments :List of 28 [18:02:23.627] ..$ worker : chr "localhost" [18:02:23.627] ..$ master : NULL [18:02:23.627] ..$ port : int 34495 [18:02:23.627] ..$ connectTimeout : num 120 [18:02:23.627] ..$ timeout : num 120 [18:02:23.627] ..$ rscript : NULL [18:02:23.627] ..$ homogeneous : NULL [18:02:23.627] ..$ rscript_args : NULL [18:02:23.627] ..$ rscript_envs : NULL [18:02:23.627] ..$ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:23.627] ..$ rscript_startup : NULL [18:02:23.627] ..$ rscript_sh : chr [1:3] "auto" "cmd" "sh" [18:02:23.627] ..$ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:23.627] ..$ methods : logi TRUE [18:02:23.627] ..$ socketOptions : chr "no-delay" [18:02:23.627] ..$ useXDR : logi FALSE [18:02:23.627] ..$ outfile : chr "/dev/null" [18:02:23.627] ..$ renice : int NA [18:02:23.627] ..$ rshcmd : NULL [18:02:23.627] ..$ user : NULL [18:02:23.627] ..$ revtunnel : logi NA [18:02:23.627] ..$ rshlogfile : NULL [18:02:23.627] ..$ rshopts : NULL [18:02:23.627] ..$ rank : int 1 [18:02:23.627] ..$ manual : logi FALSE [18:02:23.627] ..$ dryrun : logi FALSE [18:02:23.627] ..$ quiet : logi FALSE [18:02:23.627] ..$ setup_strategy : chr "parallel" [18:02:23.627] - attr(*, "class")= chr [1:2] "makeNodePSOCKOptions" "makeNodeOptions" [18:02:24.036] - Condition #30: 'simpleMessage', 'message', 'condition' [18:02:23.650] [local output] System call to launch all workers: [18:02:24.036] - Condition #31: 'simpleMessage', 'message', 'condition' [18:02:23.650] [local output] "D:/RCompile/recent/R/bin/x64/Rscript" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "#label=nested_futures.R:189588:CRANWIN3:CRAN" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e4944f335a33.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=34495 OUT=/dev/null TIMEOUT=120 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=parallel [18:02:24.036] - Condition #32: 'simpleMessage', 'message', 'condition' [18:02:23.651] [local output] Starting PSOCK main server [18:02:24.036] - Condition #33: 'simpleMessage', 'message', 'condition' [18:02:23.659] [local output] Workers launched [18:02:24.037] - Condition #34: 'simpleMessage', 'message', 'condition' [18:02:23.660] [local output] Waiting for workers to connect back [18:02:24.037] - Condition #35: 'simpleMessage', 'message', 'condition' [18:02:23.660] - [local output] 0 workers out of 2 ready [18:02:24.037] - Condition #36: 'simpleMessage', 'message', 'condition' [18:02:23.837] - [local output] 0 workers out of 2 ready [18:02:24.037] - Condition #37: 'simpleMessage', 'message', 'condition' [18:02:23.838] - [local output] 1 workers out of 2 ready [18:02:24.038] - Condition #38: 'simpleMessage', 'message', 'condition' [18:02:23.838] - [local output] 2 workers out of 2 ready [18:02:24.038] - Condition #39: 'simpleMessage', 'message', 'condition' [18:02:23.839] [local output] Launching of workers completed [18:02:24.038] - Condition #40: 'simpleMessage', 'message', 'condition' [18:02:23.839] [local output] Collecting session information from workers [18:02:24.038] - Condition #41: 'simpleMessage', 'message', 'condition' [18:02:23.840] [local output] - Worker #1 of 2 [18:02:24.039] - Condition #42: 'simpleMessage', 'message', 'condition' [18:02:23.841] [local output] - Worker #2 of 2 [18:02:24.039] - Condition #43: 'simpleMessage', 'message', 'condition' [18:02:23.841] [local output] makeClusterPSOCK() ... done [18:02:24.039] - Condition #44: 'simpleMessage', 'message', 'condition' [18:02:23.853] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:24.039] - Condition #45: 'simpleMessage', 'message', 'condition' [18:02:23.854] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:24.040] - Condition #46: 'simpleMessage', 'message', 'condition' [18:02:23.854] - Field: 'node' [18:02:24.040] - Condition #47: 'simpleMessage', 'message', 'condition' [18:02:23.854] - Field: 'label' [18:02:24.040] - Condition #48: 'simpleMessage', 'message', 'condition' [18:02:23.854] - Field: 'local' [18:02:24.040] - Condition #49: 'simpleMessage', 'message', 'condition' [18:02:23.854] - Field: 'owner' [18:02:24.041] - Condition #50: 'simpleMessage', 'message', 'condition' [18:02:23.855] - Field: 'envir' [18:02:24.041] - Condition #51: 'simpleMessage', 'message', 'condition' [18:02:23.855] - Field: 'workers' [18:02:24.041] - Condition #52: 'simpleMessage', 'message', 'condition' [18:02:23.855] - Field: 'packages' [18:02:24.041] - Condition #53: 'simpleMessage', 'message', 'condition' [18:02:23.855] - Field: 'gc' [18:02:24.042] - Condition #54: 'simpleMessage', 'message', 'condition' [18:02:23.856] - Field: 'conditions' [18:02:24.042] - Condition #55: 'simpleMessage', 'message', 'condition' [18:02:23.856] - Field: 'persistent' [18:02:24.042] - Condition #56: 'simpleMessage', 'message', 'condition' [18:02:23.856] - Field: 'expr' [18:02:24.042] - Condition #57: 'simpleMessage', 'message', 'condition' [18:02:23.856] - Field: 'uuid' [18:02:24.043] - Condition #58: 'simpleMessage', 'message', 'condition' [18:02:23.857] - Field: 'seed' [18:02:24.043] - Condition #59: 'simpleMessage', 'message', 'condition' [18:02:23.857] - Field: 'version' [18:02:24.043] - Condition #60: 'simpleMessage', 'message', 'condition' [18:02:23.857] - Field: 'result' [18:02:24.043] - Condition #61: 'simpleMessage', 'message', 'condition' [18:02:23.857] - Field: 'asynchronous' [18:02:24.044] - Condition #62: 'simpleMessage', 'message', 'condition' [18:02:23.858] - Field: 'calls' [18:02:24.044] - Condition #63: 'simpleMessage', 'message', 'condition' [18:02:23.858] - Field: 'globals' [18:02:24.044] - Condition #64: 'simpleMessage', 'message', 'condition' [18:02:23.858] - Field: 'stdout' [18:02:24.044] - Condition #65: 'simpleMessage', 'message', 'condition' [18:02:23.858] - Field: 'earlySignal' [18:02:24.045] - Condition #66: 'simpleMessage', 'message', 'condition' [18:02:23.858] - Field: 'lazy' [18:02:24.045] - Condition #67: 'simpleMessage', 'message', 'condition' [18:02:23.859] - Field: 'state' [18:02:24.045] - Condition #68: 'simpleMessage', 'message', 'condition' [18:02:23.859] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:24.045] - Condition #69: 'simpleMessage', 'message', 'condition' [18:02:23.859] - Launch lazy future ... [18:02:24.046] - Condition #70: 'simpleMessage', 'message', 'condition' [18:02:23.860] Packages needed by the future expression (n = 0): [18:02:24.046] - Condition #71: 'simpleMessage', 'message', 'condition' [18:02:23.860] Packages needed by future strategies (n = 0): [18:02:24.046] - Condition #72: 'simpleMessage', 'message', 'condition' [18:02:23.861] { [18:02:23.861] { [18:02:23.861] { [18:02:23.861] ...future.startTime <- base::Sys.time() [18:02:23.861] { [18:02:23.861] { [18:02:23.861] { [18:02:23.861] { [18:02:23.861] base::local({ [18:02:23.861] has_future <- base::requireNamespace("future", [18:02:23.861] quietly = TRUE) [18:02:23.861] if (has_future) { [18:02:23.861] ns <- base::getNamespace("future") [18:02:23.861] version <- ns[[".package"]][["version"]] [18:02:23.861] if (is.null(version)) [18:02:23.861] version <- utils::packageVersion("future") [18:02:23.861] } [18:02:23.861] else { [18:02:23.861] version <- NULL [18:02:23.861] } [18:02:23.861] if (!has_future || version < "1.8.0") { [18:02:23.861] info <- base::c(r_version = base::gsub("R version ", [18:02:23.861] "", base::R.version$version.string), [18:02:23.861] platform = base::sprintf("%s (%s-bit)", [18:02:23.861] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:23.861] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:23.861] "release", "version")], collapse = " "), [18:02:23.861] hostname = base::Sys.info()[["nodename"]]) [18:02:23.861] info <- base::sprintf("%s: %s", base::names(info), [18:02:23.861] info) [18:02:23.861] info <- base::paste(info, collapse = "; ") [18:02:23.861] if (!has_future) { [18:02:23.861] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:23.861] info) [18:02:23.861] } [18:02:23.861] else { [18:02:23.861] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:23.861] info, version) [18:02:23.861] } [18:02:23.861] base::stop(msg) [18:02:23.861] } [18:02:23.861] }) [18:02:23.861] } [18:02:23.861] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:23.861] base::options(mc.cores = 1L) [18:02:23.861] } [18:02:23.861] options(future.plan = NULL) [18:02:23.861] Sys.unsetenv("R_FUTURE_PLAN") [18:02:23.861] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:23.861] } [18:02:23.861] ...future.workdir <- getwd() [18:02:23.861] } [18:02:23.861] ...future.oldOptions <- base::as.list(base::.Options) [18:02:23.861] ...future.oldEnvVars <- base::Sys.getenv() [18:02:23.861] } [18:02:23.861] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:23.861] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:23.861] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:23.861] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:23.861] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:23.861] future.stdout.windows.reencode = NULL, width = 80L) [18:02:23.861] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:23.861] base::names(...future.oldOptions)) [18:02:23.861] } [18:02:23.861] if (FALSE) { [18:02:23.861] } [18:02:23.861] else { [18:02:23.861] if (TRUE) { [18:02:23.861] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:23.861] open = "w") [18:02:23.861] } [18:02:23.861] else { [18:02:23.861] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:23.861] windows = "NUL", "/dev/null"), open = "w") [18:02:23.861] } [18:02:23.861] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:23.861] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:23.861] base::sink(type = "output", split = FALSE) [18:02:23.861] base::close(...future.stdout) [18:02:23.861] }, add = TRUE) [18:02:23.861] } [18:02:23.861] ...future.frame <- base::sys.nframe() [18:02:23.861] ...future.conditions <- base::list() [18:02:23.861] ...future.rng <- base::globalenv()$.Random.seed [18:02:23.861] if (FALSE) { [18:02:23.861] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:23.861] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:23.861] } [18:02:23.861] ...future.result <- base::tryCatch({ [18:02:23.861] base::withCallingHandlers({ [18:02:23.861] ...future.value <- base::withVisible(base::local({ [18:02:23.861] ...future.makeSendCondition <- local({ [18:02:23.861] sendCondition <- NULL [18:02:23.861] function(frame = 1L) { [18:02:23.861] if (is.function(sendCondition)) [18:02:23.861] return(sendCondition) [18:02:23.861] ns <- getNamespace("parallel") [18:02:23.861] if (exists("sendData", mode = "function", [18:02:23.861] envir = ns)) { [18:02:23.861] parallel_sendData <- get("sendData", mode = "function", [18:02:23.861] envir = ns) [18:02:23.861] envir <- sys.frame(frame) [18:02:23.861] master <- NULL [18:02:23.861] while (!identical(envir, .GlobalEnv) && [18:02:23.861] !identical(envir, emptyenv())) { [18:02:23.861] if (exists("master", mode = "list", envir = envir, [18:02:23.861] inherits = FALSE)) { [18:02:23.861] master <- get("master", mode = "list", [18:02:23.861] envir = envir, inherits = FALSE) [18:02:23.861] if (inherits(master, c("SOCKnode", [18:02:23.861] "SOCK0node"))) { [18:02:23.861] sendCondition <<- function(cond) { [18:02:23.861] data <- list(type = "VALUE", value = cond, [18:02:23.861] success = TRUE) [18:02:23.861] parallel_sendData(master, data) [18:02:23.861] } [18:02:23.861] return(sendCondition) [18:02:23.861] } [18:02:23.861] } [18:02:23.861] frame <- frame + 1L [18:02:23.861] envir <- sys.frame(frame) [18:02:23.861] } [18:02:23.861] } [18:02:23.861] sendCondition <<- function(cond) NULL [18:02:23.861] } [18:02:23.861] }) [18:02:23.861] withCallingHandlers({ [18:02:23.861] { [18:02:23.861] b <- 2L [18:02:23.861] plan_b <- future::plan("list") [18:02:23.861] nested_b <- nested_a[-1] [18:02:23.861] stopifnot(length(nested_b) == 0L, length(plan_b) == [18:02:23.861] 1L, inherits(plan_b[[1]], "future"), inherits(future::plan("next"), [18:02:23.861] "sequential")) [18:02:23.861] list(a = a, nested_a = nested_a, plan_a = plan_a, [18:02:23.861] b = b, nested_b = nested_b, plan_b = plan_b) [18:02:23.861] } [18:02:23.861] }, immediateCondition = function(cond) { [18:02:23.861] sendCondition <- ...future.makeSendCondition() [18:02:23.861] sendCondition(cond) [18:02:23.861] muffleCondition <- function (cond, pattern = "^muffle") [18:02:23.861] { [18:02:23.861] inherits <- base::inherits [18:02:23.861] invokeRestart <- base::invokeRestart [18:02:23.861] is.null <- base::is.null [18:02:23.861] muffled <- FALSE [18:02:23.861] if (inherits(cond, "message")) { [18:02:23.861] muffled <- grepl(pattern, "muffleMessage") [18:02:23.861] if (muffled) [18:02:23.861] invokeRestart("muffleMessage") [18:02:23.861] } [18:02:23.861] else if (inherits(cond, "warning")) { [18:02:23.861] muffled <- grepl(pattern, "muffleWarning") [18:02:23.861] if (muffled) [18:02:23.861] invokeRestart("muffleWarning") [18:02:23.861] } [18:02:23.861] else if (inherits(cond, "condition")) { [18:02:23.861] if (!is.null(pattern)) { [18:02:23.861] computeRestarts <- base::computeRestarts [18:02:23.861] grepl <- base::grepl [18:02:23.861] restarts <- computeRestarts(cond) [18:02:23.861] for (restart in restarts) { [18:02:23.861] name <- restart$name [18:02:23.861] if (is.null(name)) [18:02:23.861] next [18:02:23.861] if (!grepl(pattern, name)) [18:02:23.861] next [18:02:23.861] invokeRestart(restart) [18:02:23.861] muffled <- TRUE [18:02:23.861] break [18:02:23.861] } [18:02:23.861] } [18:02:23.861] } [18:02:23.861] invisible(muffled) [18:02:23.861] } [18:02:23.861] muffleCondition(cond) [18:02:23.861] }) [18:02:23.861] })) [18:02:23.861] future::FutureResult(value = ...future.value$value, [18:02:23.861] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:23.861] ...future.rng), globalenv = if (FALSE) [18:02:23.861] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:23.861] ...future.globalenv.names)) [18:02:23.861] else NULL, started = ...future.startTime, version = "1.8") [18:02:23.861] }, condition = base::local({ [18:02:23.861] c <- base::c [18:02:23.861] inherits <- base::inherits [18:02:23.861] invokeRestart <- base::invokeRestart [18:02:23.861] length <- base::length [18:02:23.861] list <- base::list [18:02:23.861] seq.int <- base::seq.int [18:02:23.861] signalCondition <- base::signalCondition [18:02:23.861] sys.calls <- base::sys.calls [18:02:23.861] `[[` <- base::`[[` [18:02:23.861] `+` <- base::`+` [18:02:23.861] `<<-` <- base::`<<-` [18:02:23.861] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:23.861] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:23.861] 3L)] [18:02:23.861] } [18:02:23.861] function(cond) { [18:02:23.861] is_error <- inherits(cond, "error") [18:02:23.861] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:23.861] NULL) [18:02:23.861] if (is_error) { [18:02:23.861] sessionInformation <- function() { [18:02:23.861] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:23.861] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:23.861] search = base::search(), system = base::Sys.info()) [18:02:23.861] } [18:02:23.861] ...future.conditions[[length(...future.conditions) + [18:02:23.861] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:23.861] cond$call), session = sessionInformation(), [18:02:23.861] timestamp = base::Sys.time(), signaled = 0L) [18:02:23.861] signalCondition(cond) [18:02:23.861] } [18:02:23.861] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:23.861] "immediateCondition"))) { [18:02:23.861] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:23.861] ...future.conditions[[length(...future.conditions) + [18:02:23.861] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:23.861] if (TRUE && !signal) { [18:02:23.861] muffleCondition <- function (cond, pattern = "^muffle") [18:02:23.861] { [18:02:23.861] inherits <- base::inherits [18:02:23.861] invokeRestart <- base::invokeRestart [18:02:23.861] is.null <- base::is.null [18:02:23.861] muffled <- FALSE [18:02:23.861] if (inherits(cond, "message")) { [18:02:23.861] muffled <- grepl(pattern, "muffleMessage") [18:02:23.861] if (muffled) [18:02:23.861] invokeRestart("muffleMessage") [18:02:23.861] } [18:02:23.861] else if (inherits(cond, "warning")) { [18:02:23.861] muffled <- grepl(pattern, "muffleWarning") [18:02:23.861] if (muffled) [18:02:23.861] invokeRestart("muffleWarning") [18:02:23.861] } [18:02:23.861] else if (inherits(cond, "condition")) { [18:02:23.861] if (!is.null(pattern)) { [18:02:23.861] computeRestarts <- base::computeRestarts [18:02:23.861] grepl <- base::grepl [18:02:23.861] restarts <- computeRestarts(cond) [18:02:23.861] for (restart in restarts) { [18:02:23.861] name <- restart$name [18:02:23.861] if (is.null(name)) [18:02:23.861] next [18:02:23.861] if (!grepl(pattern, name)) [18:02:23.861] next [18:02:23.861] invokeRestart(restart) [18:02:23.861] muffled <- TRUE [18:02:23.861] break [18:02:23.861] } [18:02:23.861] } [18:02:23.861] } [18:02:23.861] invisible(muffled) [18:02:23.861] } [18:02:23.861] muffleCondition(cond, pattern = "^muffle") [18:02:23.861] } [18:02:23.861] } [18:02:23.861] else { [18:02:23.861] if (TRUE) { [18:02:23.861] muffleCondition <- function (cond, pattern = "^muffle") [18:02:23.861] { [18:02:23.861] inherits <- base::inherits [18:02:23.861] invokeRestart <- base::invokeRestart [18:02:23.861] is.null <- base::is.null [18:02:23.861] muffled <- FALSE [18:02:23.861] if (inherits(cond, "message")) { [18:02:23.861] muffled <- grepl(pattern, "muffleMessage") [18:02:23.861] if (muffled) [18:02:23.861] invokeRestart("muffleMessage") [18:02:23.861] } [18:02:23.861] else if (inherits(cond, "warning")) { [18:02:23.861] muffled <- grepl(pattern, "muffleWarning") [18:02:23.861] if (muffled) [18:02:23.861] invokeRestart("muffleWarning") [18:02:23.861] } [18:02:23.861] else if (inherits(cond, "condition")) { [18:02:23.861] if (!is.null(pattern)) { [18:02:23.861] computeRestarts <- base::computeRestarts [18:02:23.861] grepl <- base::grepl [18:02:23.861] restarts <- computeRestarts(cond) [18:02:23.861] for (restart in restarts) { [18:02:23.861] name <- restart$name [18:02:23.861] if (is.null(name)) [18:02:23.861] next [18:02:23.861] if (!grepl(pattern, name)) [18:02:23.861] next [18:02:23.861] invokeRestart(restart) [18:02:23.861] muffled <- TRUE [18:02:23.861] break [18:02:23.861] } [18:02:23.861] } [18:02:23.861] } [18:02:23.861] invisible(muffled) [18:02:23.861] } [18:02:23.861] muffleCondition(cond, pattern = "^muffle") [18:02:23.861] } [18:02:23.861] } [18:02:23.861] } [18:02:23.861] })) [18:02:23.861] }, error = function(ex) { [18:02:23.861] base::structure(base::list(value = NULL, visible = NULL, [18:02:23.861] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:23.861] ...future.rng), started = ...future.startTime, [18:02:23.861] finished = Sys.time(), session_uuid = NA_character_, [18:02:23.861] version = "1.8"), class = "FutureResult") [18:02:23.861] }, finally = { [18:02:23.861] if (!identical(...future.workdir, getwd())) [18:02:23.861] setwd(...future.workdir) [18:02:23.861] { [18:02:23.861] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:23.861] ...future.oldOptions$nwarnings <- NULL [18:02:23.861] } [18:02:23.861] base::options(...future.oldOptions) [18:02:23.861] if (.Platform$OS.type == "windows") { [18:02:23.861] old_names <- names(...future.oldEnvVars) [18:02:23.861] envs <- base::Sys.getenv() [18:02:23.861] names <- names(envs) [18:02:23.861] common <- intersect(names, old_names) [18:02:23.861] added <- setdiff(names, old_names) [18:02:23.861] removed <- setdiff(old_names, names) [18:02:23.861] changed <- common[...future.oldEnvVars[common] != [18:02:23.861] envs[common]] [18:02:23.861] NAMES <- toupper(changed) [18:02:23.861] args <- list() [18:02:23.861] for (kk in seq_along(NAMES)) { [18:02:23.861] name <- changed[[kk]] [18:02:23.861] NAME <- NAMES[[kk]] [18:02:23.861] if (name != NAME && is.element(NAME, old_names)) [18:02:23.861] next [18:02:23.861] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:23.861] } [18:02:23.861] NAMES <- toupper(added) [18:02:23.861] for (kk in seq_along(NAMES)) { [18:02:23.861] name <- added[[kk]] [18:02:23.861] NAME <- NAMES[[kk]] [18:02:23.861] if (name != NAME && is.element(NAME, old_names)) [18:02:23.861] next [18:02:23.861] args[[name]] <- "" [18:02:23.861] } [18:02:23.861] NAMES <- toupper(removed) [18:02:23.861] for (kk in seq_along(NAMES)) { [18:02:23.861] name <- removed[[kk]] [18:02:23.861] NAME <- NAMES[[kk]] [18:02:23.861] if (name != NAME && is.element(NAME, old_names)) [18:02:23.861] next [18:02:23.861] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:23.861] } [18:02:23.861] if (length(args) > 0) [18:02:23.861] base::do.call(base::Sys.setenv, args = args) [18:02:23.861] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:23.861] } [18:02:23.861] else { [18:02:23.861] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:23.861] } [18:02:23.861] { [18:02:23.861] if (base::length(...future.futureOptionsAdded) > [18:02:23.861] 0L) { [18:02:23.861] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:23.861] base::names(opts) <- ...future.futureOptionsAdded [18:02:23.861] base::options(opts) [18:02:23.861] } [18:02:23.861] { [18:02:23.861] { [18:02:23.861] base::options(mc.cores = ...future.mc.cores.old) [18:02:23.861] NULL [18:02:23.861] } [18:02:23.861] options(future.plan = NULL) [18:02:23.861] if (is.na(NA_character_)) [18:02:23.861] Sys.unsetenv("R_FUTURE_PLAN") [18:02:23.861] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:23.861] future::plan(list(b = function (..., workers = availableCores(), [18:02:23.861] lazy = FALSE, rscript_libs = .libPaths(), [18:02:23.861] envir = parent.frame()) [18:02:23.861] { [18:02:23.861] if (is.function(workers)) [18:02:23.861] workers <- workers() [18:02:23.861] workers <- structure(as.integer(workers), [18:02:23.861] class = class(workers)) [18:02:23.861] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:23.861] workers >= 1) [18:02:23.861] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:23.861] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:23.861] } [18:02:23.861] future <- MultisessionFuture(..., workers = workers, [18:02:23.861] lazy = lazy, rscript_libs = rscript_libs, [18:02:23.861] envir = envir) [18:02:23.861] if (!future$lazy) [18:02:23.861] future <- run(future) [18:02:23.861] invisible(future) [18:02:23.861] }), .cleanup = FALSE, .init = FALSE) [18:02:23.861] } [18:02:23.861] } [18:02:23.861] } [18:02:23.861] }) [18:02:23.861] if (TRUE) { [18:02:23.861] base::sink(type = "output", split = FALSE) [18:02:23.861] if (TRUE) { [18:02:23.861] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:23.861] } [18:02:23.861] else { [18:02:23.861] ...future.result["stdout"] <- base::list(NULL) [18:02:23.861] } [18:02:23.861] base::close(...future.stdout) [18:02:23.861] ...future.stdout <- NULL [18:02:23.861] } [18:02:23.861] ...future.result$conditions <- ...future.conditions [18:02:23.861] ...future.result$finished <- base::Sys.time() [18:02:23.861] ...future.result [18:02:23.861] } [18:02:24.046] - Condition #73: 'simpleMessage', 'message', 'condition' [18:02:23.951] Exporting 3 global objects (87.82 KiB) to cluster node #1 ... [18:02:24.047] - Condition #74: 'simpleMessage', 'message', 'condition' [18:02:23.951] Exporting 'nested_a' (43.88 KiB) to cluster node #1 ... [18:02:24.047] - Condition #75: 'simpleMessage', 'message', 'condition' [18:02:23.952] Exporting 'nested_a' (43.88 KiB) to cluster node #1 ... DONE [18:02:24.047] - Condition #76: 'simpleMessage', 'message', 'condition' [18:02:23.952] Exporting 'a' (56 bytes) to cluster node #1 ... [18:02:24.047] - Condition #77: 'simpleMessage', 'message', 'condition' [18:02:23.952] Exporting 'a' (56 bytes) to cluster node #1 ... DONE [18:02:24.048] - Condition #78: 'simpleMessage', 'message', 'condition' [18:02:23.953] Exporting 'plan_a' (43.88 KiB) to cluster node #1 ... [18:02:24.048] - Condition #79: 'simpleMessage', 'message', 'condition' [18:02:23.953] Exporting 'plan_a' (43.88 KiB) to cluster node #1 ... DONE [18:02:24.048] - Condition #80: 'simpleMessage', 'message', 'condition' [18:02:23.954] Exporting 3 global objects (87.82 KiB) to cluster node #1 ... DONE [18:02:24.048] - Condition #81: 'simpleMessage', 'message', 'condition' [18:02:23.954] MultisessionFuture started [18:02:24.049] - Condition #82: 'simpleMessage', 'message', 'condition' [18:02:23.955] - Launch lazy future ... done [18:02:24.049] - Condition #83: 'simpleMessage', 'message', 'condition' [18:02:23.955] run() for 'MultisessionFuture' ... done [18:02:24.049] - Condition #84: 'simpleMessage', 'message', 'condition' [18:02:23.955] result() for ClusterFuture ... [18:02:24.049] - Condition #85: 'simpleMessage', 'message', 'condition' [18:02:23.956] receiveMessageFromWorker() for ClusterFuture ... [18:02:24.050] - Condition #86: 'simpleMessage', 'message', 'condition' [18:02:23.956] - Validating connection of MultisessionFuture [18:02:24.050] - Condition #87: 'simpleMessage', 'message', 'condition' [18:02:24.015] - received message: FutureResult [18:02:24.050] - Condition #88: 'simpleMessage', 'message', 'condition' [18:02:24.016] - Received FutureResult [18:02:24.050] - Condition #89: 'simpleMessage', 'message', 'condition' [18:02:24.019] - Erased future from FutureRegistry [18:02:24.051] - Condition #90: 'simpleMessage', 'message', 'condition' [18:02:24.020] result() for ClusterFuture ... [18:02:24.051] - Condition #91: 'simpleMessage', 'message', 'condition' [18:02:24.020] - result already collected: FutureResult [18:02:24.051] - Condition #92: 'simpleMessage', 'message', 'condition' [18:02:24.020] result() for ClusterFuture ... done [18:02:24.051] - Condition #93: 'simpleMessage', 'message', 'condition' [18:02:24.020] receiveMessageFromWorker() for ClusterFuture ... done [18:02:24.052] - Condition #94: 'simpleMessage', 'message', 'condition' [18:02:24.020] result() for ClusterFuture ... done [18:02:24.052] - Condition #95: 'simpleMessage', 'message', 'condition' [18:02:24.021] result() for ClusterFuture ... [18:02:24.052] - Condition #96: 'simpleMessage', 'message', 'condition' [18:02:24.021] - result already collected: FutureResult [18:02:24.052] - Condition #97: 'simpleMessage', 'message', 'condition' [18:02:24.021] result() for ClusterFuture ... done [18:02:24.053] signalConditions() ... done List of 6 $ a : int 1 $ nested_a:List of 1 ..$ b:function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) .. ..- attr(*, "class")= chr [1:5] "multisession" "cluster" "multiprocess" "future" ... .. ..- attr(*, "untweakable")= chr "persistent" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ plan_a :List of 1 ..$ b:function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) .. ..- attr(*, "class")= chr [1:5] "multisession" "cluster" "multiprocess" "future" ... .. ..- attr(*, "untweakable")= chr "persistent" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ b : int 2 $ nested_b: Named list() $ plan_b :List of 1 ..$ :function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" ..- attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [18:02:24.061] getGlobalsAndPackages() ... [18:02:24.061] Searching for globals... [18:02:24.063] - globals found: [7] '{', 'value', 'future', 'subset', 'data', '==', 'a' [18:02:24.064] Searching for globals ... DONE [18:02:24.064] Resolving globals: FALSE [18:02:24.065] The total size of the 1 globals is 128 bytes (128 bytes) [18:02:24.065] The total size of the 1 globals exported for future expression ('{; value(future(subset(data, a == 2))); }') is 128 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'data' (128 bytes of class 'list') [18:02:24.066] - globals: [1] 'data' [18:02:24.066] - packages: [1] 'future' [18:02:24.066] getGlobalsAndPackages() ... DONE [18:02:24.067] run() for 'Future' ... [18:02:24.067] - state: 'created' [18:02:24.067] - Future backend: 'FutureStrategy', 'sequential', 'uniprocess', 'future', 'function' [18:02:24.068] - Future class: 'SequentialFuture', 'UniprocessFuture', 'Future', 'environment' [18:02:24.068] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... [18:02:24.068] - Field: 'label' [18:02:24.068] - Field: 'local' [18:02:24.068] - Field: 'owner' [18:02:24.069] - Field: 'envir' [18:02:24.069] - Field: 'packages' [18:02:24.069] - Field: 'gc' [18:02:24.069] - Field: 'conditions' [18:02:24.069] - Field: 'expr' [18:02:24.070] - Field: 'uuid' [18:02:24.070] - Field: 'seed' [18:02:24.070] - Field: 'version' [18:02:24.070] - Field: 'result' [18:02:24.070] - Field: 'asynchronous' [18:02:24.071] - Field: 'calls' [18:02:24.071] - Field: 'globals' [18:02:24.071] - Field: 'stdout' [18:02:24.071] - Field: 'earlySignal' [18:02:24.071] - Field: 'lazy' [18:02:24.072] - Field: 'state' [18:02:24.075] - Copy elements of temporary 'SequentialFuture' to final 'Future' object ... done [18:02:24.075] - Launch lazy future ... [18:02:24.075] Packages needed by the future expression (n = 1): 'future' [18:02:24.075] Packages needed by future strategies (n = 1): 'future' [18:02:24.076] { [18:02:24.076] { [18:02:24.076] { [18:02:24.076] ...future.startTime <- base::Sys.time() [18:02:24.076] { [18:02:24.076] { [18:02:24.076] { [18:02:24.076] { [18:02:24.076] base::local({ [18:02:24.076] has_future <- base::requireNamespace("future", [18:02:24.076] quietly = TRUE) [18:02:24.076] if (has_future) { [18:02:24.076] ns <- base::getNamespace("future") [18:02:24.076] version <- ns[[".package"]][["version"]] [18:02:24.076] if (is.null(version)) [18:02:24.076] version <- utils::packageVersion("future") [18:02:24.076] } [18:02:24.076] else { [18:02:24.076] version <- NULL [18:02:24.076] } [18:02:24.076] if (!has_future || version < "1.8.0") { [18:02:24.076] info <- base::c(r_version = base::gsub("R version ", [18:02:24.076] "", base::R.version$version.string), [18:02:24.076] platform = base::sprintf("%s (%s-bit)", [18:02:24.076] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:24.076] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:24.076] "release", "version")], collapse = " "), [18:02:24.076] hostname = base::Sys.info()[["nodename"]]) [18:02:24.076] info <- base::sprintf("%s: %s", base::names(info), [18:02:24.076] info) [18:02:24.076] info <- base::paste(info, collapse = "; ") [18:02:24.076] if (!has_future) { [18:02:24.076] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:24.076] info) [18:02:24.076] } [18:02:24.076] else { [18:02:24.076] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:24.076] info, version) [18:02:24.076] } [18:02:24.076] base::stop(msg) [18:02:24.076] } [18:02:24.076] }) [18:02:24.076] } [18:02:24.076] base::local({ [18:02:24.076] for (pkg in "future") { [18:02:24.076] base::loadNamespace(pkg) [18:02:24.076] base::library(pkg, character.only = TRUE) [18:02:24.076] } [18:02:24.076] }) [18:02:24.076] } [18:02:24.076] options(future.plan = NULL) [18:02:24.076] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.076] future::plan(list(b = function (..., workers = availableCores(), [18:02:24.076] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.076] envir = parent.frame()) [18:02:24.076] { [18:02:24.076] if (is.function(workers)) [18:02:24.076] workers <- workers() [18:02:24.076] workers <- structure(as.integer(workers), [18:02:24.076] class = class(workers)) [18:02:24.076] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.076] workers >= 1) [18:02:24.076] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.076] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.076] } [18:02:24.076] future <- MultisessionFuture(..., workers = workers, [18:02:24.076] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.076] envir = envir) [18:02:24.076] if (!future$lazy) [18:02:24.076] future <- run(future) [18:02:24.076] invisible(future) [18:02:24.076] }), .cleanup = FALSE, .init = FALSE) [18:02:24.076] } [18:02:24.076] ...future.workdir <- getwd() [18:02:24.076] } [18:02:24.076] ...future.oldOptions <- base::as.list(base::.Options) [18:02:24.076] ...future.oldEnvVars <- base::Sys.getenv() [18:02:24.076] } [18:02:24.076] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:24.076] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:24.076] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:24.076] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:24.076] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:24.076] future.stdout.windows.reencode = NULL, width = 80L) [18:02:24.076] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:24.076] base::names(...future.oldOptions)) [18:02:24.076] } [18:02:24.076] if (FALSE) { [18:02:24.076] } [18:02:24.076] else { [18:02:24.076] if (TRUE) { [18:02:24.076] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:24.076] open = "w") [18:02:24.076] } [18:02:24.076] else { [18:02:24.076] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:24.076] windows = "NUL", "/dev/null"), open = "w") [18:02:24.076] } [18:02:24.076] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:24.076] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:24.076] base::sink(type = "output", split = FALSE) [18:02:24.076] base::close(...future.stdout) [18:02:24.076] }, add = TRUE) [18:02:24.076] } [18:02:24.076] ...future.frame <- base::sys.nframe() [18:02:24.076] ...future.conditions <- base::list() [18:02:24.076] ...future.rng <- base::globalenv()$.Random.seed [18:02:24.076] if (FALSE) { [18:02:24.076] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:24.076] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:24.076] } [18:02:24.076] ...future.result <- base::tryCatch({ [18:02:24.076] base::withCallingHandlers({ [18:02:24.076] ...future.value <- base::withVisible(base::local({ [18:02:24.076] value(future(subset(data, a == 2))) [18:02:24.076] })) [18:02:24.076] future::FutureResult(value = ...future.value$value, [18:02:24.076] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.076] ...future.rng), globalenv = if (FALSE) [18:02:24.076] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:24.076] ...future.globalenv.names)) [18:02:24.076] else NULL, started = ...future.startTime, version = "1.8") [18:02:24.076] }, condition = base::local({ [18:02:24.076] c <- base::c [18:02:24.076] inherits <- base::inherits [18:02:24.076] invokeRestart <- base::invokeRestart [18:02:24.076] length <- base::length [18:02:24.076] list <- base::list [18:02:24.076] seq.int <- base::seq.int [18:02:24.076] signalCondition <- base::signalCondition [18:02:24.076] sys.calls <- base::sys.calls [18:02:24.076] `[[` <- base::`[[` [18:02:24.076] `+` <- base::`+` [18:02:24.076] `<<-` <- base::`<<-` [18:02:24.076] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:24.076] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:24.076] 3L)] [18:02:24.076] } [18:02:24.076] function(cond) { [18:02:24.076] is_error <- inherits(cond, "error") [18:02:24.076] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:24.076] NULL) [18:02:24.076] if (is_error) { [18:02:24.076] sessionInformation <- function() { [18:02:24.076] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:24.076] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:24.076] search = base::search(), system = base::Sys.info()) [18:02:24.076] } [18:02:24.076] ...future.conditions[[length(...future.conditions) + [18:02:24.076] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:24.076] cond$call), session = sessionInformation(), [18:02:24.076] timestamp = base::Sys.time(), signaled = 0L) [18:02:24.076] signalCondition(cond) [18:02:24.076] } [18:02:24.076] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:24.076] "immediateCondition"))) { [18:02:24.076] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:24.076] ...future.conditions[[length(...future.conditions) + [18:02:24.076] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:24.076] if (TRUE && !signal) { [18:02:24.076] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.076] { [18:02:24.076] inherits <- base::inherits [18:02:24.076] invokeRestart <- base::invokeRestart [18:02:24.076] is.null <- base::is.null [18:02:24.076] muffled <- FALSE [18:02:24.076] if (inherits(cond, "message")) { [18:02:24.076] muffled <- grepl(pattern, "muffleMessage") [18:02:24.076] if (muffled) [18:02:24.076] invokeRestart("muffleMessage") [18:02:24.076] } [18:02:24.076] else if (inherits(cond, "warning")) { [18:02:24.076] muffled <- grepl(pattern, "muffleWarning") [18:02:24.076] if (muffled) [18:02:24.076] invokeRestart("muffleWarning") [18:02:24.076] } [18:02:24.076] else if (inherits(cond, "condition")) { [18:02:24.076] if (!is.null(pattern)) { [18:02:24.076] computeRestarts <- base::computeRestarts [18:02:24.076] grepl <- base::grepl [18:02:24.076] restarts <- computeRestarts(cond) [18:02:24.076] for (restart in restarts) { [18:02:24.076] name <- restart$name [18:02:24.076] if (is.null(name)) [18:02:24.076] next [18:02:24.076] if (!grepl(pattern, name)) [18:02:24.076] next [18:02:24.076] invokeRestart(restart) [18:02:24.076] muffled <- TRUE [18:02:24.076] break [18:02:24.076] } [18:02:24.076] } [18:02:24.076] } [18:02:24.076] invisible(muffled) [18:02:24.076] } [18:02:24.076] muffleCondition(cond, pattern = "^muffle") [18:02:24.076] } [18:02:24.076] } [18:02:24.076] else { [18:02:24.076] if (TRUE) { [18:02:24.076] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.076] { [18:02:24.076] inherits <- base::inherits [18:02:24.076] invokeRestart <- base::invokeRestart [18:02:24.076] is.null <- base::is.null [18:02:24.076] muffled <- FALSE [18:02:24.076] if (inherits(cond, "message")) { [18:02:24.076] muffled <- grepl(pattern, "muffleMessage") [18:02:24.076] if (muffled) [18:02:24.076] invokeRestart("muffleMessage") [18:02:24.076] } [18:02:24.076] else if (inherits(cond, "warning")) { [18:02:24.076] muffled <- grepl(pattern, "muffleWarning") [18:02:24.076] if (muffled) [18:02:24.076] invokeRestart("muffleWarning") [18:02:24.076] } [18:02:24.076] else if (inherits(cond, "condition")) { [18:02:24.076] if (!is.null(pattern)) { [18:02:24.076] computeRestarts <- base::computeRestarts [18:02:24.076] grepl <- base::grepl [18:02:24.076] restarts <- computeRestarts(cond) [18:02:24.076] for (restart in restarts) { [18:02:24.076] name <- restart$name [18:02:24.076] if (is.null(name)) [18:02:24.076] next [18:02:24.076] if (!grepl(pattern, name)) [18:02:24.076] next [18:02:24.076] invokeRestart(restart) [18:02:24.076] muffled <- TRUE [18:02:24.076] break [18:02:24.076] } [18:02:24.076] } [18:02:24.076] } [18:02:24.076] invisible(muffled) [18:02:24.076] } [18:02:24.076] muffleCondition(cond, pattern = "^muffle") [18:02:24.076] } [18:02:24.076] } [18:02:24.076] } [18:02:24.076] })) [18:02:24.076] }, error = function(ex) { [18:02:24.076] base::structure(base::list(value = NULL, visible = NULL, [18:02:24.076] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.076] ...future.rng), started = ...future.startTime, [18:02:24.076] finished = Sys.time(), session_uuid = NA_character_, [18:02:24.076] version = "1.8"), class = "FutureResult") [18:02:24.076] }, finally = { [18:02:24.076] if (!identical(...future.workdir, getwd())) [18:02:24.076] setwd(...future.workdir) [18:02:24.076] { [18:02:24.076] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:24.076] ...future.oldOptions$nwarnings <- NULL [18:02:24.076] } [18:02:24.076] base::options(...future.oldOptions) [18:02:24.076] if (.Platform$OS.type == "windows") { [18:02:24.076] old_names <- names(...future.oldEnvVars) [18:02:24.076] envs <- base::Sys.getenv() [18:02:24.076] names <- names(envs) [18:02:24.076] common <- intersect(names, old_names) [18:02:24.076] added <- setdiff(names, old_names) [18:02:24.076] removed <- setdiff(old_names, names) [18:02:24.076] changed <- common[...future.oldEnvVars[common] != [18:02:24.076] envs[common]] [18:02:24.076] NAMES <- toupper(changed) [18:02:24.076] args <- list() [18:02:24.076] for (kk in seq_along(NAMES)) { [18:02:24.076] name <- changed[[kk]] [18:02:24.076] NAME <- NAMES[[kk]] [18:02:24.076] if (name != NAME && is.element(NAME, old_names)) [18:02:24.076] next [18:02:24.076] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.076] } [18:02:24.076] NAMES <- toupper(added) [18:02:24.076] for (kk in seq_along(NAMES)) { [18:02:24.076] name <- added[[kk]] [18:02:24.076] NAME <- NAMES[[kk]] [18:02:24.076] if (name != NAME && is.element(NAME, old_names)) [18:02:24.076] next [18:02:24.076] args[[name]] <- "" [18:02:24.076] } [18:02:24.076] NAMES <- toupper(removed) [18:02:24.076] for (kk in seq_along(NAMES)) { [18:02:24.076] name <- removed[[kk]] [18:02:24.076] NAME <- NAMES[[kk]] [18:02:24.076] if (name != NAME && is.element(NAME, old_names)) [18:02:24.076] next [18:02:24.076] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.076] } [18:02:24.076] if (length(args) > 0) [18:02:24.076] base::do.call(base::Sys.setenv, args = args) [18:02:24.076] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:24.076] } [18:02:24.076] else { [18:02:24.076] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:24.076] } [18:02:24.076] { [18:02:24.076] if (base::length(...future.futureOptionsAdded) > [18:02:24.076] 0L) { [18:02:24.076] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:24.076] base::names(opts) <- ...future.futureOptionsAdded [18:02:24.076] base::options(opts) [18:02:24.076] } [18:02:24.076] { [18:02:24.076] { [18:02:24.076] NULL [18:02:24.076] RNGkind("Mersenne-Twister") [18:02:24.076] base::rm(list = ".Random.seed", envir = base::globalenv(), [18:02:24.076] inherits = FALSE) [18:02:24.076] } [18:02:24.076] options(future.plan = NULL) [18:02:24.076] if (is.na(NA_character_)) [18:02:24.076] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.076] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:24.076] future::plan(list(a = function (..., envir = parent.frame()) [18:02:24.076] { [18:02:24.076] future <- SequentialFuture(..., envir = envir) [18:02:24.076] if (!future$lazy) [18:02:24.076] future <- run(future) [18:02:24.076] invisible(future) [18:02:24.076] }, b = function (..., workers = availableCores(), [18:02:24.076] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.076] envir = parent.frame()) [18:02:24.076] { [18:02:24.076] if (is.function(workers)) [18:02:24.076] workers <- workers() [18:02:24.076] workers <- structure(as.integer(workers), [18:02:24.076] class = class(workers)) [18:02:24.076] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.076] workers >= 1) [18:02:24.076] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.076] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.076] } [18:02:24.076] future <- MultisessionFuture(..., workers = workers, [18:02:24.076] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.076] envir = envir) [18:02:24.076] if (!future$lazy) [18:02:24.076] future <- run(future) [18:02:24.076] invisible(future) [18:02:24.076] }), .cleanup = FALSE, .init = FALSE) [18:02:24.076] } [18:02:24.076] } [18:02:24.076] } [18:02:24.076] }) [18:02:24.076] if (TRUE) { [18:02:24.076] base::sink(type = "output", split = FALSE) [18:02:24.076] if (TRUE) { [18:02:24.076] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:24.076] } [18:02:24.076] else { [18:02:24.076] ...future.result["stdout"] <- base::list(NULL) [18:02:24.076] } [18:02:24.076] base::close(...future.stdout) [18:02:24.076] ...future.stdout <- NULL [18:02:24.076] } [18:02:24.076] ...future.result$conditions <- ...future.conditions [18:02:24.076] ...future.result$finished <- base::Sys.time() [18:02:24.076] ...future.result [18:02:24.076] } [18:02:24.081] assign_globals() ... [18:02:24.081] List of 1 [18:02:24.081] $ data:'data.frame': 3 obs. of 2 variables: [18:02:24.081] ..$ a: int [1:3] 1 2 3 [18:02:24.081] ..$ b: int [1:3] 3 2 1 [18:02:24.081] - attr(*, "where")=List of 1 [18:02:24.081] ..$ data: [18:02:24.081] - attr(*, "class")= chr [1:3] "FutureGlobals" "Globals" "list" [18:02:24.081] - attr(*, "resolved")= logi FALSE [18:02:24.081] - attr(*, "total_size")= num 128 [18:02:24.081] - attr(*, "already-done")= logi TRUE [18:02:24.085] - copied 'data' to environment [18:02:24.085] assign_globals() ... done [18:02:24.086] plan(): Setting new future strategy stack: [18:02:24.086] List of future strategies: [18:02:24.086] 1. multisession: [18:02:24.086] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.086] - tweaked: FALSE [18:02:24.086] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.089] plan(): nbrOfWorkers() = 2 [18:02:24.165] plan(): Setting new future strategy stack: [18:02:24.165] List of future strategies: [18:02:24.165] 1. sequential: [18:02:24.165] - args: function (..., envir = parent.frame()) [18:02:24.165] - tweaked: FALSE [18:02:24.165] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.165] 2. multisession: [18:02:24.165] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.165] - tweaked: FALSE [18:02:24.165] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.166] plan(): nbrOfWorkers() = 1 [18:02:24.166] SequentialFuture started (and completed) [18:02:24.166] signalConditions() ... [18:02:24.166] - include = 'immediateCondition' [18:02:24.166] - exclude = [18:02:24.167] - resignal = FALSE [18:02:24.167] - Number of conditions: 63 [18:02:24.167] signalConditions() ... done [18:02:24.167] - Launch lazy future ... done [18:02:24.167] run() for 'SequentialFuture' ... done [18:02:24.168] signalConditions() ... [18:02:24.168] - include = 'immediateCondition' [18:02:24.168] - exclude = [18:02:24.168] - resignal = FALSE [18:02:24.168] - Number of conditions: 63 [18:02:24.169] signalConditions() ... done [18:02:24.169] Future state: 'finished' [18:02:24.169] signalConditions() ... [18:02:24.169] - include = 'condition' [18:02:24.169] - exclude = 'immediateCondition' [18:02:24.170] - resignal = TRUE [18:02:24.170] - Number of conditions: 63 [18:02:24.170] - Condition #1: 'simpleMessage', 'message', 'condition' [18:02:24.089] getGlobalsAndPackages() ... [18:02:24.170] - Condition #2: 'simpleMessage', 'message', 'condition' [18:02:24.089] Searching for globals... [18:02:24.170] - Condition #3: 'simpleMessage', 'message', 'condition' [18:02:24.111] - globals found: [4] 'subset', 'data', '==', 'a' [18:02:24.171] - Condition #4: 'simpleMessage', 'message', 'condition' [18:02:24.112] Searching for globals ... DONE [18:02:24.171] - Condition #5: 'simpleMessage', 'message', 'condition' [18:02:24.112] Resolving globals: FALSE [18:02:24.171] - Condition #6: 'simpleMessage', 'message', 'condition' [18:02:24.113] The total size of the 1 globals is 128 bytes (128 bytes) [18:02:24.171] - Condition #7: 'simpleMessage', 'message', 'condition' [18:02:24.113] The total size of the 1 globals exported for future expression ('subset(data, a == 2)') is 128 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'data' (128 bytes of class 'list') [18:02:24.171] - Condition #8: 'simpleMessage', 'message', 'condition' [18:02:24.113] - globals: [1] 'data' [18:02:24.172] - Condition #9: 'simpleMessage', 'message', 'condition' [18:02:24.114] [18:02:24.172] - Condition #10: 'simpleMessage', 'message', 'condition' [18:02:24.114] getGlobalsAndPackages() ... DONE [18:02:24.172] - Condition #11: 'simpleMessage', 'message', 'condition' [18:02:24.114] run() for 'Future' ... [18:02:24.172] - Condition #12: 'simpleMessage', 'message', 'condition' [18:02:24.114] - state: 'created' [18:02:24.173] - Condition #13: 'simpleMessage', 'message', 'condition' [18:02:24.115] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:24.173] - Condition #14: 'simpleMessage', 'message', 'condition' [18:02:24.129] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:24.173] - Condition #15: 'simpleMessage', 'message', 'condition' [18:02:24.129] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:24.173] - Condition #16: 'simpleMessage', 'message', 'condition' [18:02:24.129] - Field: 'node' [18:02:24.174] - Condition #17: 'simpleMessage', 'message', 'condition' [18:02:24.129] - Field: 'label' [18:02:24.174] - Condition #18: 'simpleMessage', 'message', 'condition' [18:02:24.129] - Field: 'local' [18:02:24.174] - Condition #19: 'simpleMessage', 'message', 'condition' [18:02:24.130] - Field: 'owner' [18:02:24.174] - Condition #20: 'simpleMessage', 'message', 'condition' [18:02:24.130] - Field: 'envir' [18:02:24.174] - Condition #21: 'simpleMessage', 'message', 'condition' [18:02:24.130] - Field: 'workers' [18:02:24.175] - Condition #22: 'simpleMessage', 'message', 'condition' [18:02:24.130] - Field: 'packages' [18:02:24.175] - Condition #23: 'simpleMessage', 'message', 'condition' [18:02:24.130] - Field: 'gc' [18:02:24.175] - Condition #24: 'simpleMessage', 'message', 'condition' [18:02:24.131] - Field: 'conditions' [18:02:24.175] - Condition #25: 'simpleMessage', 'message', 'condition' [18:02:24.131] - Field: 'persistent' [18:02:24.176] - Condition #26: 'simpleMessage', 'message', 'condition' [18:02:24.131] - Field: 'expr' [18:02:24.176] - Condition #27: 'simpleMessage', 'message', 'condition' [18:02:24.131] - Field: 'uuid' [18:02:24.176] - Condition #28: 'simpleMessage', 'message', 'condition' [18:02:24.131] - Field: 'seed' [18:02:24.176] - Condition #29: 'simpleMessage', 'message', 'condition' [18:02:24.132] - Field: 'version' [18:02:24.176] - Condition #30: 'simpleMessage', 'message', 'condition' [18:02:24.132] - Field: 'result' [18:02:24.177] - Condition #31: 'simpleMessage', 'message', 'condition' [18:02:24.132] - Field: 'asynchronous' [18:02:24.177] - Condition #32: 'simpleMessage', 'message', 'condition' [18:02:24.132] - Field: 'calls' [18:02:24.177] - Condition #33: 'simpleMessage', 'message', 'condition' [18:02:24.132] - Field: 'globals' [18:02:24.177] - Condition #34: 'simpleMessage', 'message', 'condition' [18:02:24.133] - Field: 'stdout' [18:02:24.178] - Condition #35: 'simpleMessage', 'message', 'condition' [18:02:24.133] - Field: 'earlySignal' [18:02:24.178] - Condition #36: 'simpleMessage', 'message', 'condition' [18:02:24.133] - Field: 'lazy' [18:02:24.178] - Condition #37: 'simpleMessage', 'message', 'condition' [18:02:24.133] - Field: 'state' [18:02:24.178] - Condition #38: 'simpleMessage', 'message', 'condition' [18:02:24.133] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:24.178] - Condition #39: 'simpleMessage', 'message', 'condition' [18:02:24.134] - Launch lazy future ... [18:02:24.179] - Condition #40: 'simpleMessage', 'message', 'condition' [18:02:24.134] Packages needed by the future expression (n = 0): [18:02:24.179] - Condition #41: 'simpleMessage', 'message', 'condition' [18:02:24.134] Packages needed by future strategies (n = 0): [18:02:24.179] - Condition #42: 'simpleMessage', 'message', 'condition' [18:02:24.135] { [18:02:24.135] { [18:02:24.135] { [18:02:24.135] ...future.startTime <- base::Sys.time() [18:02:24.135] { [18:02:24.135] { [18:02:24.135] { [18:02:24.135] { [18:02:24.135] base::local({ [18:02:24.135] has_future <- base::requireNamespace("future", [18:02:24.135] quietly = TRUE) [18:02:24.135] if (has_future) { [18:02:24.135] ns <- base::getNamespace("future") [18:02:24.135] version <- ns[[".package"]][["version"]] [18:02:24.135] if (is.null(version)) [18:02:24.135] version <- utils::packageVersion("future") [18:02:24.135] } [18:02:24.135] else { [18:02:24.135] version <- NULL [18:02:24.135] } [18:02:24.135] if (!has_future || version < "1.8.0") { [18:02:24.135] info <- base::c(r_version = base::gsub("R version ", [18:02:24.135] "", base::R.version$version.string), [18:02:24.135] platform = base::sprintf("%s (%s-bit)", [18:02:24.135] base::R.version$platform, 8 * base::.Machine$sizeof.pointer), [18:02:24.135] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:24.135] "release", "version")], collapse = " "), [18:02:24.135] hostname = base::Sys.info()[["nodename"]]) [18:02:24.135] info <- base::sprintf("%s: %s", base::names(info), [18:02:24.135] info) [18:02:24.135] info <- base::paste(info, collapse = "; ") [18:02:24.135] if (!has_future) { [18:02:24.135] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:24.135] info) [18:02:24.135] } [18:02:24.135] else { [18:02:24.135] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:24.135] info, version) [18:02:24.135] } [18:02:24.135] base::stop(msg) [18:02:24.135] } [18:02:24.135] }) [18:02:24.135] } [18:02:24.135] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:24.135] base::options(mc.cores = 1L) [18:02:24.135] } [18:02:24.135] options(future.plan = NULL) [18:02:24.135] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.135] future::plan("default", .cleanup = FALSE, .init = FALSE) [18:02:24.135] } [18:02:24.135] ...future.workdir <- getwd() [18:02:24.135] } [18:02:24.135] ...future.oldOptions <- base::as.list(base::.Options) [18:02:24.135] ...future.oldEnvVars <- base::Sys.getenv() [18:02:24.135] } [18:02:24.135] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:24.135] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:24.135] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:24.135] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:24.135] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:24.135] future.stdout.windows.reencode = NULL, width = 80L) [18:02:24.135] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:24.135] base::names(...future.oldOptions)) [18:02:24.135] } [18:02:24.135] if (FALSE) { [18:02:24.135] } [18:02:24.135] else { [18:02:24.135] if (TRUE) { [18:02:24.135] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:24.135] open = "w") [18:02:24.135] } [18:02:24.135] else { [18:02:24.135] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:24.135] windows = "NUL", "/dev/null"), open = "w") [18:02:24.135] } [18:02:24.135] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:24.135] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:24.135] base::sink(type = "output", split = FALSE) [18:02:24.135] base::close(...future.stdout) [18:02:24.135] }, add = TRUE) [18:02:24.135] } [18:02:24.135] ...future.frame <- base::sys.nframe() [18:02:24.135] ...future.conditions <- base::list() [18:02:24.135] ...future.rng <- base::globalenv()$.Random.seed [18:02:24.135] if (FALSE) { [18:02:24.135] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:24.135] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:24.135] } [18:02:24.135] ...future.result <- base::tryCatch({ [18:02:24.135] base::withCallingHandlers({ [18:02:24.135] ...future.value <- base::withVisible(base::local({ [18:02:24.135] ...future.makeSendCondition <- local({ [18:02:24.135] sendCondition <- NULL [18:02:24.135] function(frame = 1L) { [18:02:24.135] if (is.function(sendCondition)) [18:02:24.135] return(sendCondition) [18:02:24.135] ns <- getNamespace("parallel") [18:02:24.135] if (exists("sendData", mode = "function", [18:02:24.135] envir = ns)) { [18:02:24.135] parallel_sendData <- get("sendData", mode = "function", [18:02:24.135] envir = ns) [18:02:24.135] envir <- sys.frame(frame) [18:02:24.135] master <- NULL [18:02:24.135] while (!identical(envir, .GlobalEnv) && [18:02:24.135] !identical(envir, emptyenv())) { [18:02:24.135] if (exists("master", mode = "list", envir = envir, [18:02:24.135] inherits = FALSE)) { [18:02:24.135] master <- get("master", mode = "list", [18:02:24.135] envir = envir, inherits = FALSE) [18:02:24.135] if (inherits(master, c("SOCKnode", [18:02:24.135] "SOCK0node"))) { [18:02:24.135] sendCondition <<- function(cond) { [18:02:24.135] data <- list(type = "VALUE", value = cond, [18:02:24.135] success = TRUE) [18:02:24.135] parallel_sendData(master, data) [18:02:24.135] } [18:02:24.135] return(sendCondition) [18:02:24.135] } [18:02:24.135] } [18:02:24.135] frame <- frame + 1L [18:02:24.135] envir <- sys.frame(frame) [18:02:24.135] } [18:02:24.135] } [18:02:24.135] sendCondition <<- function(cond) NULL [18:02:24.135] } [18:02:24.135] }) [18:02:24.135] withCallingHandlers({ [18:02:24.135] subset(data, a == 2) [18:02:24.135] }, immediateCondition = function(cond) { [18:02:24.135] sendCondition <- ...future.makeSendCondition() [18:02:24.135] sendCondition(cond) [18:02:24.135] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.135] { [18:02:24.135] inherits <- base::inherits [18:02:24.135] invokeRestart <- base::invokeRestart [18:02:24.135] is.null <- base::is.null [18:02:24.135] muffled <- FALSE [18:02:24.135] if (inherits(cond, "message")) { [18:02:24.135] muffled <- grepl(pattern, "muffleMessage") [18:02:24.135] if (muffled) [18:02:24.135] invokeRestart("muffleMessage") [18:02:24.135] } [18:02:24.135] else if (inherits(cond, "warning")) { [18:02:24.135] muffled <- grepl(pattern, "muffleWarning") [18:02:24.135] if (muffled) [18:02:24.135] invokeRestart("muffleWarning") [18:02:24.135] } [18:02:24.135] else if (inherits(cond, "condition")) { [18:02:24.135] if (!is.null(pattern)) { [18:02:24.135] computeRestarts <- base::computeRestarts [18:02:24.135] grepl <- base::grepl [18:02:24.135] restarts <- computeRestarts(cond) [18:02:24.135] for (restart in restarts) { [18:02:24.135] name <- restart$name [18:02:24.135] if (is.null(name)) [18:02:24.135] next [18:02:24.135] if (!grepl(pattern, name)) [18:02:24.135] next [18:02:24.135] invokeRestart(restart) [18:02:24.135] muffled <- TRUE [18:02:24.135] break [18:02:24.135] } [18:02:24.135] } [18:02:24.135] } [18:02:24.135] invisible(muffled) [18:02:24.135] } [18:02:24.135] muffleCondition(cond) [18:02:24.135] }) [18:02:24.135] })) [18:02:24.135] future::FutureResult(value = ...future.value$value, [18:02:24.135] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.135] ...future.rng), globalenv = if (FALSE) [18:02:24.135] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:24.135] ...future.globalenv.names)) [18:02:24.135] else NULL, started = ...future.startTime, version = "1.8") [18:02:24.135] }, condition = base::local({ [18:02:24.135] c <- base::c [18:02:24.135] inherits <- base::inherits [18:02:24.135] invokeRestart <- base::invokeRestart [18:02:24.135] length <- base::length [18:02:24.135] list <- base::list [18:02:24.135] seq.int <- base::seq.int [18:02:24.135] signalCondition <- base::signalCondition [18:02:24.135] sys.calls <- base::sys.calls [18:02:24.135] `[[` <- base::`[[` [18:02:24.135] `+` <- base::`+` [18:02:24.135] `<<-` <- base::`<<-` [18:02:24.135] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:24.135] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:24.135] 3L)] [18:02:24.135] } [18:02:24.135] function(cond) { [18:02:24.135] is_error <- inherits(cond, "error") [18:02:24.135] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:24.135] NULL) [18:02:24.135] if (is_error) { [18:02:24.135] sessionInformation <- function() { [18:02:24.135] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:24.135] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:24.135] search = base::search(), system = base::Sys.info()) [18:02:24.135] } [18:02:24.135] ...future.conditions[[length(...future.conditions) + [18:02:24.135] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:24.135] cond$call), session = sessionInformation(), [18:02:24.135] timestamp = base::Sys.time(), signaled = 0L) [18:02:24.135] signalCondition(cond) [18:02:24.135] } [18:02:24.135] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:24.135] "immediateCondition"))) { [18:02:24.135] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:24.135] ...future.conditions[[length(...future.conditions) + [18:02:24.135] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:24.135] if (TRUE && !signal) { [18:02:24.135] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.135] { [18:02:24.135] inherits <- base::inherits [18:02:24.135] invokeRestart <- base::invokeRestart [18:02:24.135] is.null <- base::is.null [18:02:24.135] muffled <- FALSE [18:02:24.135] if (inherits(cond, "message")) { [18:02:24.135] muffled <- grepl(pattern, "muffleMessage") [18:02:24.135] if (muffled) [18:02:24.135] invokeRestart("muffleMessage") [18:02:24.135] } [18:02:24.135] else if (inherits(cond, "warning")) { [18:02:24.135] muffled <- grepl(pattern, "muffleWarning") [18:02:24.135] if (muffled) [18:02:24.135] invokeRestart("muffleWarning") [18:02:24.135] } [18:02:24.135] else if (inherits(cond, "condition")) { [18:02:24.135] if (!is.null(pattern)) { [18:02:24.135] computeRestarts <- base::computeRestarts [18:02:24.135] grepl <- base::grepl [18:02:24.135] restarts <- computeRestarts(cond) [18:02:24.135] for (restart in restarts) { [18:02:24.135] name <- restart$name [18:02:24.135] if (is.null(name)) [18:02:24.135] next [18:02:24.135] if (!grepl(pattern, name)) [18:02:24.135] next [18:02:24.135] invokeRestart(restart) [18:02:24.135] muffled <- TRUE [18:02:24.135] break [18:02:24.135] } [18:02:24.135] } [18:02:24.135] } [18:02:24.135] invisible(muffled) [18:02:24.135] } [18:02:24.135] muffleCondition(cond, pattern = "^muffle") [18:02:24.135] } [18:02:24.135] } [18:02:24.135] else { [18:02:24.135] if (TRUE) { [18:02:24.135] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.135] { [18:02:24.135] inherits <- base::inherits [18:02:24.135] invokeRestart <- base::invokeRestart [18:02:24.135] is.null <- base::is.null [18:02:24.135] muffled <- FALSE [18:02:24.135] if (inherits(cond, "message")) { [18:02:24.135] muffled <- grepl(pattern, "muffleMessage") [18:02:24.135] if (muffled) [18:02:24.135] invokeRestart("muffleMessage") [18:02:24.135] } [18:02:24.135] else if (inherits(cond, "warning")) { [18:02:24.135] muffled <- grepl(pattern, "muffleWarning") [18:02:24.135] if (muffled) [18:02:24.135] invokeRestart("muffleWarning") [18:02:24.135] } [18:02:24.135] else if (inherits(cond, "condition")) { [18:02:24.135] if (!is.null(pattern)) { [18:02:24.135] computeRestarts <- base::computeRestarts [18:02:24.135] grepl <- base::grepl [18:02:24.135] restarts <- computeRestarts(cond) [18:02:24.135] for (restart in restarts) { [18:02:24.135] name <- restart$name [18:02:24.135] if (is.null(name)) [18:02:24.135] next [18:02:24.135] if (!grepl(pattern, name)) [18:02:24.135] next [18:02:24.135] invokeRestart(restart) [18:02:24.135] muffled <- TRUE [18:02:24.135] break [18:02:24.135] } [18:02:24.135] } [18:02:24.135] } [18:02:24.135] invisible(muffled) [18:02:24.135] } [18:02:24.135] muffleCondition(cond, pattern = "^muffle") [18:02:24.135] } [18:02:24.135] } [18:02:24.135] } [18:02:24.135] })) [18:02:24.135] }, error = function(ex) { [18:02:24.135] base::structure(base::list(value = NULL, visible = NULL, [18:02:24.135] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.135] ...future.rng), started = ...future.startTime, [18:02:24.135] finished = Sys.time(), session_uuid = NA_character_, [18:02:24.135] version = "1.8"), class = "FutureResult") [18:02:24.135] }, finally = { [18:02:24.135] if (!identical(...future.workdir, getwd())) [18:02:24.135] setwd(...future.workdir) [18:02:24.135] { [18:02:24.135] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:24.135] ...future.oldOptions$nwarnings <- NULL [18:02:24.135] } [18:02:24.135] base::options(...future.oldOptions) [18:02:24.135] if (.Platform$OS.type == "windows") { [18:02:24.135] old_names <- names(...future.oldEnvVars) [18:02:24.135] envs <- base::Sys.getenv() [18:02:24.135] names <- names(envs) [18:02:24.135] common <- intersect(names, old_names) [18:02:24.135] added <- setdiff(names, old_names) [18:02:24.135] removed <- setdiff(old_names, names) [18:02:24.135] changed <- common[...future.oldEnvVars[common] != [18:02:24.135] envs[common]] [18:02:24.135] NAMES <- toupper(changed) [18:02:24.135] args <- list() [18:02:24.135] for (kk in seq_along(NAMES)) { [18:02:24.135] name <- changed[[kk]] [18:02:24.135] NAME <- NAMES[[kk]] [18:02:24.135] if (name != NAME && is.element(NAME, old_names)) [18:02:24.135] next [18:02:24.135] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.135] } [18:02:24.135] NAMES <- toupper(added) [18:02:24.135] for (kk in seq_along(NAMES)) { [18:02:24.135] name <- added[[kk]] [18:02:24.135] NAME <- NAMES[[kk]] [18:02:24.135] if (name != NAME && is.element(NAME, old_names)) [18:02:24.135] next [18:02:24.135] args[[name]] <- "" [18:02:24.135] } [18:02:24.135] NAMES <- toupper(removed) [18:02:24.135] for (kk in seq_along(NAMES)) { [18:02:24.135] name <- removed[[kk]] [18:02:24.135] NAME <- NAMES[[kk]] [18:02:24.135] if (name != NAME && is.element(NAME, old_names)) [18:02:24.135] next [18:02:24.135] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.135] } [18:02:24.135] if (length(args) > 0) [18:02:24.135] base::do.call(base::Sys.setenv, args = args) [18:02:24.135] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:24.135] } [18:02:24.135] else { [18:02:24.135] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:24.135] } [18:02:24.135] { [18:02:24.135] if (base::length(...future.futureOptionsAdded) > [18:02:24.135] 0L) { [18:02:24.135] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:24.135] base::names(opts) <- ...future.futureOptionsAdded [18:02:24.135] base::options(opts) [18:02:24.135] } [18:02:24.135] { [18:02:24.135] { [18:02:24.135] base::options(mc.cores = ...future.mc.cores.old) [18:02:24.135] NULL [18:02:24.135] } [18:02:24.135] options(future.plan = NULL) [18:02:24.135] if (is.na(NA_character_)) [18:02:24.135] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.135] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:24.135] future::plan(list(b = function (..., workers = availableCores(), [18:02:24.135] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.135] envir = parent.frame()) [18:02:24.135] { [18:02:24.135] if (is.function(workers)) [18:02:24.135] workers <- workers() [18:02:24.135] workers <- structure(as.integer(workers), [18:02:24.135] class = class(workers)) [18:02:24.135] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.135] workers >= 1) [18:02:24.135] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.135] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.135] } [18:02:24.135] future <- MultisessionFuture(..., workers = workers, [18:02:24.135] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.135] envir = envir) [18:02:24.135] if (!future$lazy) [18:02:24.135] future <- run(future) [18:02:24.135] invisible(future) [18:02:24.135] }), .cleanup = FALSE, .init = FALSE) [18:02:24.135] } [18:02:24.135] } [18:02:24.135] } [18:02:24.135] }) [18:02:24.135] if (TRUE) { [18:02:24.135] base::sink(type = "output", split = FALSE) [18:02:24.135] if (TRUE) { [18:02:24.135] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:24.135] } [18:02:24.135] else { [18:02:24.135] ...future.result["stdout"] <- base::list(NULL) [18:02:24.135] } [18:02:24.135] base::close(...future.stdout) [18:02:24.135] ...future.stdout <- NULL [18:02:24.135] } [18:02:24.135] ...future.result$conditions <- ...future.conditions [18:02:24.135] ...future.result$finished <- base::Sys.time() [18:02:24.135] ...future.result [18:02:24.135] } [18:02:24.180] - Condition #43: 'simpleMessage', 'message', 'condition' [18:02:24.140] Exporting 1 global objects (128 bytes) to cluster node #1 ... [18:02:24.180] - Condition #44: 'simpleMessage', 'message', 'condition' [18:02:24.141] Exporting 'data' (128 bytes) to cluster node #1 ... [18:02:24.180] - Condition #45: 'simpleMessage', 'message', 'condition' [18:02:24.141] Exporting 'data' (128 bytes) to cluster node #1 ... DONE [18:02:24.180] - Condition #46: 'simpleMessage', 'message', 'condition' [18:02:24.142] Exporting 1 global objects (128 bytes) to cluster node #1 ... DONE [18:02:24.180] - Condition #47: 'simpleMessage', 'message', 'condition' [18:02:24.142] MultisessionFuture started [18:02:24.181] - Condition #48: 'simpleMessage', 'message', 'condition' [18:02:24.143] - Launch lazy future ... done [18:02:24.181] - Condition #49: 'simpleMessage', 'message', 'condition' [18:02:24.143] run() for 'MultisessionFuture' ... done [18:02:24.181] - Condition #50: 'simpleMessage', 'message', 'condition' [18:02:24.143] result() for ClusterFuture ... [18:02:24.181] - Condition #51: 'simpleMessage', 'message', 'condition' [18:02:24.143] receiveMessageFromWorker() for ClusterFuture ... [18:02:24.182] - Condition #52: 'simpleMessage', 'message', 'condition' [18:02:24.143] - Validating connection of MultisessionFuture [18:02:24.182] - Condition #53: 'simpleMessage', 'message', 'condition' [18:02:24.162] - received message: FutureResult [18:02:24.182] - Condition #54: 'simpleMessage', 'message', 'condition' [18:02:24.162] - Received FutureResult [18:02:24.182] - Condition #55: 'simpleMessage', 'message', 'condition' [18:02:24.162] - Erased future from FutureRegistry [18:02:24.183] - Condition #56: 'simpleMessage', 'message', 'condition' [18:02:24.162] result() for ClusterFuture ... [18:02:24.183] - Condition #57: 'simpleMessage', 'message', 'condition' [18:02:24.163] - result already collected: FutureResult [18:02:24.183] - Condition #58: 'simpleMessage', 'message', 'condition' [18:02:24.163] result() for ClusterFuture ... done [18:02:24.183] - Condition #59: 'simpleMessage', 'message', 'condition' [18:02:24.163] receiveMessageFromWorker() for ClusterFuture ... done [18:02:24.183] - Condition #60: 'simpleMessage', 'message', 'condition' [18:02:24.163] result() for ClusterFuture ... done [18:02:24.184] - Condition #61: 'simpleMessage', 'message', 'condition' [18:02:24.163] result() for ClusterFuture ... [18:02:24.184] - Condition #62: 'simpleMessage', 'message', 'condition' [18:02:24.163] - result already collected: FutureResult [18:02:24.184] - Condition #63: 'simpleMessage', 'message', 'condition' [18:02:24.164] result() for ClusterFuture ... done [18:02:24.184] signalConditions() ... done - plan(list('sequential', 'multisession')) ... DONE - plan(list('multisession', 'sequential')) ... [18:02:24.185] plan(): Setting new future strategy stack: [18:02:24.185] List of future strategies: [18:02:24.185] 1. multisession: [18:02:24.185] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.185] - tweaked: FALSE [18:02:24.185] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.185] 2. sequential: [18:02:24.185] - args: function (..., envir = parent.frame()) [18:02:24.185] - tweaked: FALSE [18:02:24.185] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.186] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... [18:02:24.186] multisession: [18:02:24.186] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.186] - tweaked: FALSE [18:02:24.186] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.189] getGlobalsAndPackages() ... [18:02:24.189] Not searching for globals [18:02:24.190] - globals: [0] [18:02:24.190] getGlobalsAndPackages() ... DONE [18:02:24.190] [local output] makeClusterPSOCK() ... [18:02:24.191] [local output] Workers: [n = 2] 'localhost', 'localhost' [18:02:24.194] [local output] Base port: 28164 [18:02:24.194] [local output] Getting setup options for 2 cluster nodes ... [18:02:24.194] [local output] - Node 1 of 2 ... [18:02:24.194] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:24.196] [local output] Rscript port: 28164 [18:02:24.197] [local output] - Node 2 of 2 ... [18:02:24.198] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:24.199] [local output] Rscript port: 28164 [18:02:24.199] [local output] Getting setup options for 2 cluster nodes ... done [18:02:24.199] [local output] - Parallel setup requested for some PSOCK nodes [18:02:24.200] [local output] Setting up PSOCK nodes in parallel [18:02:24.200] List of 36 [18:02:24.200] $ worker : chr "localhost" [18:02:24.200] ..- attr(*, "localhost")= logi TRUE [18:02:24.200] $ master : chr "localhost" [18:02:24.200] $ port : int 28164 [18:02:24.200] $ connectTimeout : num 120 [18:02:24.200] $ timeout : num 120 [18:02:24.200] $ rscript : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\"" [18:02:24.200] $ homogeneous : logi TRUE [18:02:24.200] $ rscript_args : chr "--default-packages=datasets,utils,grDevices,graphics,stats,methods -e \"#label=nested_futures.R:189588:CRANWIN3"| __truncated__ [18:02:24.200] $ rscript_envs : NULL [18:02:24.200] $ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:24.200] $ rscript_startup : NULL [18:02:24.200] $ rscript_sh : chr "cmd" [18:02:24.200] $ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:24.200] $ methods : logi TRUE [18:02:24.200] $ socketOptions : chr "no-delay" [18:02:24.200] $ useXDR : logi FALSE [18:02:24.200] $ outfile : chr "/dev/null" [18:02:24.200] $ renice : int NA [18:02:24.200] $ rshcmd : NULL [18:02:24.200] $ user : chr(0) [18:02:24.200] $ revtunnel : logi FALSE [18:02:24.200] $ rshlogfile : NULL [18:02:24.200] $ rshopts : chr(0) [18:02:24.200] $ rank : int 1 [18:02:24.200] $ manual : logi FALSE [18:02:24.200] $ dryrun : logi FALSE [18:02:24.200] $ quiet : logi FALSE [18:02:24.200] $ setup_strategy : chr "parallel" [18:02:24.200] $ local_cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:24.200] $ pidfile : chr "D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e49431e32c70.pid" [18:02:24.200] $ rshcmd_label : NULL [18:02:24.200] $ rsh_call : NULL [18:02:24.200] $ cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:24.200] $ localMachine : logi TRUE [18:02:24.200] $ make_fcn :function (worker = getOption2("parallelly.localhost.hostname", "localhost"), [18:02:24.200] master = NULL, port, connectTimeout = getOption2("parallelly.makeNodePSOCK.connectTimeout", [18:02:24.200] 2 * 60), timeout = getOption2("parallelly.makeNodePSOCK.timeout", [18:02:24.200] 30 * 24 * 60 * 60), rscript = NULL, homogeneous = NULL, rscript_args = NULL, [18:02:24.200] rscript_envs = NULL, rscript_libs = NULL, rscript_startup = NULL, rscript_sh = c("auto", [18:02:24.200] "cmd", "sh"), default_packages = c("datasets", "utils", "grDevices", [18:02:24.200] "graphics", "stats", if (methods) "methods"), methods = TRUE, socketOptions = getOption2("parallelly.makeNodePSOCK.socketOptions", [18:02:24.200] "no-delay"), useXDR = getOption2("parallelly.makeNodePSOCK.useXDR", [18:02:24.200] FALSE), outfile = "/dev/null", renice = NA_integer_, rshcmd = getOption2("parallelly.makeNodePSOCK.rshcmd", [18:02:24.200] NULL), user = NULL, revtunnel = NA, rshlogfile = NULL, rshopts = getOption2("parallelly.makeNodePSOCK.rshopts", [18:02:24.200] NULL), rank = 1L, manual = FALSE, dryrun = FALSE, quiet = FALSE, [18:02:24.200] setup_strategy = getOption2("parallelly.makeNodePSOCK.setup_strategy", [18:02:24.200] "parallel"), action = c("launch", "options"), verbose = FALSE) [18:02:24.200] $ arguments :List of 28 [18:02:24.200] ..$ worker : chr "localhost" [18:02:24.200] ..$ master : NULL [18:02:24.200] ..$ port : int 28164 [18:02:24.200] ..$ connectTimeout : num 120 [18:02:24.200] ..$ timeout : num 120 [18:02:24.200] ..$ rscript : NULL [18:02:24.200] ..$ homogeneous : NULL [18:02:24.200] ..$ rscript_args : NULL [18:02:24.200] ..$ rscript_envs : NULL [18:02:24.200] ..$ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:24.200] ..$ rscript_startup : NULL [18:02:24.200] ..$ rscript_sh : chr [1:3] "auto" "cmd" "sh" [18:02:24.200] ..$ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:24.200] ..$ methods : logi TRUE [18:02:24.200] ..$ socketOptions : chr "no-delay" [18:02:24.200] ..$ useXDR : logi FALSE [18:02:24.200] ..$ outfile : chr "/dev/null" [18:02:24.200] ..$ renice : int NA [18:02:24.200] ..$ rshcmd : NULL [18:02:24.200] ..$ user : NULL [18:02:24.200] ..$ revtunnel : logi NA [18:02:24.200] ..$ rshlogfile : NULL [18:02:24.200] ..$ rshopts : NULL [18:02:24.200] ..$ rank : int 1 [18:02:24.200] ..$ manual : logi FALSE [18:02:24.200] ..$ dryrun : logi FALSE [18:02:24.200] ..$ quiet : logi FALSE [18:02:24.200] ..$ setup_strategy : chr "parallel" [18:02:24.200] - attr(*, "class")= chr [1:2] "makeNodePSOCKOptions" "makeNodeOptions" [18:02:24.224] [local output] System call to launch all workers: [18:02:24.225] [local output] "D:/RCompile/recent/R/bin/x64/Rscript" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "#label=nested_futures.R:189588:CRANWIN3:CRAN" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e49431e32c70.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=28164 OUT=/dev/null TIMEOUT=120 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=parallel [18:02:24.225] [local output] Starting PSOCK main server [18:02:24.233] [local output] Workers launched [18:02:24.234] [local output] Waiting for workers to connect back [18:02:24.234] - [local output] 0 workers out of 2 ready [18:02:24.401] - [local output] 0 workers out of 2 ready [18:02:24.402] - [local output] 1 workers out of 2 ready [18:02:24.403] - [local output] 2 workers out of 2 ready [18:02:24.403] [local output] Launching of workers completed [18:02:24.403] [local output] Collecting session information from workers [18:02:24.404] [local output] - Worker #1 of 2 [18:02:24.404] [local output] - Worker #2 of 2 [18:02:24.405] [local output] makeClusterPSOCK() ... done [18:02:24.417] Packages needed by the future expression (n = 0): [18:02:24.417] Packages needed by future strategies (n = 1): 'future' [18:02:24.418] { [18:02:24.418] { [18:02:24.418] { [18:02:24.418] ...future.startTime <- base::Sys.time() [18:02:24.418] { [18:02:24.418] { [18:02:24.418] { [18:02:24.418] { [18:02:24.418] { [18:02:24.418] base::local({ [18:02:24.418] has_future <- base::requireNamespace("future", [18:02:24.418] quietly = TRUE) [18:02:24.418] if (has_future) { [18:02:24.418] ns <- base::getNamespace("future") [18:02:24.418] version <- ns[[".package"]][["version"]] [18:02:24.418] if (is.null(version)) [18:02:24.418] version <- utils::packageVersion("future") [18:02:24.418] } [18:02:24.418] else { [18:02:24.418] version <- NULL [18:02:24.418] } [18:02:24.418] if (!has_future || version < "1.8.0") { [18:02:24.418] info <- base::c(r_version = base::gsub("R version ", [18:02:24.418] "", base::R.version$version.string), [18:02:24.418] platform = base::sprintf("%s (%s-bit)", [18:02:24.418] base::R.version$platform, 8 * [18:02:24.418] base::.Machine$sizeof.pointer), [18:02:24.418] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:24.418] "release", "version")], collapse = " "), [18:02:24.418] hostname = base::Sys.info()[["nodename"]]) [18:02:24.418] info <- base::sprintf("%s: %s", base::names(info), [18:02:24.418] info) [18:02:24.418] info <- base::paste(info, collapse = "; ") [18:02:24.418] if (!has_future) { [18:02:24.418] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:24.418] info) [18:02:24.418] } [18:02:24.418] else { [18:02:24.418] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:24.418] info, version) [18:02:24.418] } [18:02:24.418] base::stop(msg) [18:02:24.418] } [18:02:24.418] }) [18:02:24.418] } [18:02:24.418] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:24.418] base::options(mc.cores = 1L) [18:02:24.418] } [18:02:24.418] base::local({ [18:02:24.418] for (pkg in "future") { [18:02:24.418] base::loadNamespace(pkg) [18:02:24.418] base::library(pkg, character.only = TRUE) [18:02:24.418] } [18:02:24.418] }) [18:02:24.418] } [18:02:24.418] options(future.plan = NULL) [18:02:24.418] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.418] future::plan(list(b = function (..., envir = parent.frame()) [18:02:24.418] { [18:02:24.418] future <- SequentialFuture(..., envir = envir) [18:02:24.418] if (!future$lazy) [18:02:24.418] future <- run(future) [18:02:24.418] invisible(future) [18:02:24.418] }), .cleanup = FALSE, .init = FALSE) [18:02:24.418] } [18:02:24.418] ...future.workdir <- getwd() [18:02:24.418] } [18:02:24.418] ...future.oldOptions <- base::as.list(base::.Options) [18:02:24.418] ...future.oldEnvVars <- base::Sys.getenv() [18:02:24.418] } [18:02:24.418] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:24.418] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:24.418] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:24.418] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:24.418] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:24.418] future.stdout.windows.reencode = NULL, width = 80L) [18:02:24.418] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:24.418] base::names(...future.oldOptions)) [18:02:24.418] } [18:02:24.418] if (FALSE) { [18:02:24.418] } [18:02:24.418] else { [18:02:24.418] if (TRUE) { [18:02:24.418] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:24.418] open = "w") [18:02:24.418] } [18:02:24.418] else { [18:02:24.418] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:24.418] windows = "NUL", "/dev/null"), open = "w") [18:02:24.418] } [18:02:24.418] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:24.418] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:24.418] base::sink(type = "output", split = FALSE) [18:02:24.418] base::close(...future.stdout) [18:02:24.418] }, add = TRUE) [18:02:24.418] } [18:02:24.418] ...future.frame <- base::sys.nframe() [18:02:24.418] ...future.conditions <- base::list() [18:02:24.418] ...future.rng <- base::globalenv()$.Random.seed [18:02:24.418] if (FALSE) { [18:02:24.418] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:24.418] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:24.418] } [18:02:24.418] ...future.result <- base::tryCatch({ [18:02:24.418] base::withCallingHandlers({ [18:02:24.418] ...future.value <- base::withVisible(base::local({ [18:02:24.418] ...future.makeSendCondition <- local({ [18:02:24.418] sendCondition <- NULL [18:02:24.418] function(frame = 1L) { [18:02:24.418] if (is.function(sendCondition)) [18:02:24.418] return(sendCondition) [18:02:24.418] ns <- getNamespace("parallel") [18:02:24.418] if (exists("sendData", mode = "function", [18:02:24.418] envir = ns)) { [18:02:24.418] parallel_sendData <- get("sendData", mode = "function", [18:02:24.418] envir = ns) [18:02:24.418] envir <- sys.frame(frame) [18:02:24.418] master <- NULL [18:02:24.418] while (!identical(envir, .GlobalEnv) && [18:02:24.418] !identical(envir, emptyenv())) { [18:02:24.418] if (exists("master", mode = "list", envir = envir, [18:02:24.418] inherits = FALSE)) { [18:02:24.418] master <- get("master", mode = "list", [18:02:24.418] envir = envir, inherits = FALSE) [18:02:24.418] if (inherits(master, c("SOCKnode", [18:02:24.418] "SOCK0node"))) { [18:02:24.418] sendCondition <<- function(cond) { [18:02:24.418] data <- list(type = "VALUE", value = cond, [18:02:24.418] success = TRUE) [18:02:24.418] parallel_sendData(master, data) [18:02:24.418] } [18:02:24.418] return(sendCondition) [18:02:24.418] } [18:02:24.418] } [18:02:24.418] frame <- frame + 1L [18:02:24.418] envir <- sys.frame(frame) [18:02:24.418] } [18:02:24.418] } [18:02:24.418] sendCondition <<- function(cond) NULL [18:02:24.418] } [18:02:24.418] }) [18:02:24.418] withCallingHandlers({ [18:02:24.418] NA [18:02:24.418] }, immediateCondition = function(cond) { [18:02:24.418] sendCondition <- ...future.makeSendCondition() [18:02:24.418] sendCondition(cond) [18:02:24.418] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.418] { [18:02:24.418] inherits <- base::inherits [18:02:24.418] invokeRestart <- base::invokeRestart [18:02:24.418] is.null <- base::is.null [18:02:24.418] muffled <- FALSE [18:02:24.418] if (inherits(cond, "message")) { [18:02:24.418] muffled <- grepl(pattern, "muffleMessage") [18:02:24.418] if (muffled) [18:02:24.418] invokeRestart("muffleMessage") [18:02:24.418] } [18:02:24.418] else if (inherits(cond, "warning")) { [18:02:24.418] muffled <- grepl(pattern, "muffleWarning") [18:02:24.418] if (muffled) [18:02:24.418] invokeRestart("muffleWarning") [18:02:24.418] } [18:02:24.418] else if (inherits(cond, "condition")) { [18:02:24.418] if (!is.null(pattern)) { [18:02:24.418] computeRestarts <- base::computeRestarts [18:02:24.418] grepl <- base::grepl [18:02:24.418] restarts <- computeRestarts(cond) [18:02:24.418] for (restart in restarts) { [18:02:24.418] name <- restart$name [18:02:24.418] if (is.null(name)) [18:02:24.418] next [18:02:24.418] if (!grepl(pattern, name)) [18:02:24.418] next [18:02:24.418] invokeRestart(restart) [18:02:24.418] muffled <- TRUE [18:02:24.418] break [18:02:24.418] } [18:02:24.418] } [18:02:24.418] } [18:02:24.418] invisible(muffled) [18:02:24.418] } [18:02:24.418] muffleCondition(cond) [18:02:24.418] }) [18:02:24.418] })) [18:02:24.418] future::FutureResult(value = ...future.value$value, [18:02:24.418] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.418] ...future.rng), globalenv = if (FALSE) [18:02:24.418] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:24.418] ...future.globalenv.names)) [18:02:24.418] else NULL, started = ...future.startTime, version = "1.8") [18:02:24.418] }, condition = base::local({ [18:02:24.418] c <- base::c [18:02:24.418] inherits <- base::inherits [18:02:24.418] invokeRestart <- base::invokeRestart [18:02:24.418] length <- base::length [18:02:24.418] list <- base::list [18:02:24.418] seq.int <- base::seq.int [18:02:24.418] signalCondition <- base::signalCondition [18:02:24.418] sys.calls <- base::sys.calls [18:02:24.418] `[[` <- base::`[[` [18:02:24.418] `+` <- base::`+` [18:02:24.418] `<<-` <- base::`<<-` [18:02:24.418] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:24.418] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:24.418] 3L)] [18:02:24.418] } [18:02:24.418] function(cond) { [18:02:24.418] is_error <- inherits(cond, "error") [18:02:24.418] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:24.418] NULL) [18:02:24.418] if (is_error) { [18:02:24.418] sessionInformation <- function() { [18:02:24.418] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:24.418] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:24.418] search = base::search(), system = base::Sys.info()) [18:02:24.418] } [18:02:24.418] ...future.conditions[[length(...future.conditions) + [18:02:24.418] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:24.418] cond$call), session = sessionInformation(), [18:02:24.418] timestamp = base::Sys.time(), signaled = 0L) [18:02:24.418] signalCondition(cond) [18:02:24.418] } [18:02:24.418] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:24.418] "immediateCondition"))) { [18:02:24.418] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:24.418] ...future.conditions[[length(...future.conditions) + [18:02:24.418] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:24.418] if (TRUE && !signal) { [18:02:24.418] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.418] { [18:02:24.418] inherits <- base::inherits [18:02:24.418] invokeRestart <- base::invokeRestart [18:02:24.418] is.null <- base::is.null [18:02:24.418] muffled <- FALSE [18:02:24.418] if (inherits(cond, "message")) { [18:02:24.418] muffled <- grepl(pattern, "muffleMessage") [18:02:24.418] if (muffled) [18:02:24.418] invokeRestart("muffleMessage") [18:02:24.418] } [18:02:24.418] else if (inherits(cond, "warning")) { [18:02:24.418] muffled <- grepl(pattern, "muffleWarning") [18:02:24.418] if (muffled) [18:02:24.418] invokeRestart("muffleWarning") [18:02:24.418] } [18:02:24.418] else if (inherits(cond, "condition")) { [18:02:24.418] if (!is.null(pattern)) { [18:02:24.418] computeRestarts <- base::computeRestarts [18:02:24.418] grepl <- base::grepl [18:02:24.418] restarts <- computeRestarts(cond) [18:02:24.418] for (restart in restarts) { [18:02:24.418] name <- restart$name [18:02:24.418] if (is.null(name)) [18:02:24.418] next [18:02:24.418] if (!grepl(pattern, name)) [18:02:24.418] next [18:02:24.418] invokeRestart(restart) [18:02:24.418] muffled <- TRUE [18:02:24.418] break [18:02:24.418] } [18:02:24.418] } [18:02:24.418] } [18:02:24.418] invisible(muffled) [18:02:24.418] } [18:02:24.418] muffleCondition(cond, pattern = "^muffle") [18:02:24.418] } [18:02:24.418] } [18:02:24.418] else { [18:02:24.418] if (TRUE) { [18:02:24.418] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.418] { [18:02:24.418] inherits <- base::inherits [18:02:24.418] invokeRestart <- base::invokeRestart [18:02:24.418] is.null <- base::is.null [18:02:24.418] muffled <- FALSE [18:02:24.418] if (inherits(cond, "message")) { [18:02:24.418] muffled <- grepl(pattern, "muffleMessage") [18:02:24.418] if (muffled) [18:02:24.418] invokeRestart("muffleMessage") [18:02:24.418] } [18:02:24.418] else if (inherits(cond, "warning")) { [18:02:24.418] muffled <- grepl(pattern, "muffleWarning") [18:02:24.418] if (muffled) [18:02:24.418] invokeRestart("muffleWarning") [18:02:24.418] } [18:02:24.418] else if (inherits(cond, "condition")) { [18:02:24.418] if (!is.null(pattern)) { [18:02:24.418] computeRestarts <- base::computeRestarts [18:02:24.418] grepl <- base::grepl [18:02:24.418] restarts <- computeRestarts(cond) [18:02:24.418] for (restart in restarts) { [18:02:24.418] name <- restart$name [18:02:24.418] if (is.null(name)) [18:02:24.418] next [18:02:24.418] if (!grepl(pattern, name)) [18:02:24.418] next [18:02:24.418] invokeRestart(restart) [18:02:24.418] muffled <- TRUE [18:02:24.418] break [18:02:24.418] } [18:02:24.418] } [18:02:24.418] } [18:02:24.418] invisible(muffled) [18:02:24.418] } [18:02:24.418] muffleCondition(cond, pattern = "^muffle") [18:02:24.418] } [18:02:24.418] } [18:02:24.418] } [18:02:24.418] })) [18:02:24.418] }, error = function(ex) { [18:02:24.418] base::structure(base::list(value = NULL, visible = NULL, [18:02:24.418] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.418] ...future.rng), started = ...future.startTime, [18:02:24.418] finished = Sys.time(), session_uuid = NA_character_, [18:02:24.418] version = "1.8"), class = "FutureResult") [18:02:24.418] }, finally = { [18:02:24.418] if (!identical(...future.workdir, getwd())) [18:02:24.418] setwd(...future.workdir) [18:02:24.418] { [18:02:24.418] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:24.418] ...future.oldOptions$nwarnings <- NULL [18:02:24.418] } [18:02:24.418] base::options(...future.oldOptions) [18:02:24.418] if (.Platform$OS.type == "windows") { [18:02:24.418] old_names <- names(...future.oldEnvVars) [18:02:24.418] envs <- base::Sys.getenv() [18:02:24.418] names <- names(envs) [18:02:24.418] common <- intersect(names, old_names) [18:02:24.418] added <- setdiff(names, old_names) [18:02:24.418] removed <- setdiff(old_names, names) [18:02:24.418] changed <- common[...future.oldEnvVars[common] != [18:02:24.418] envs[common]] [18:02:24.418] NAMES <- toupper(changed) [18:02:24.418] args <- list() [18:02:24.418] for (kk in seq_along(NAMES)) { [18:02:24.418] name <- changed[[kk]] [18:02:24.418] NAME <- NAMES[[kk]] [18:02:24.418] if (name != NAME && is.element(NAME, old_names)) [18:02:24.418] next [18:02:24.418] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.418] } [18:02:24.418] NAMES <- toupper(added) [18:02:24.418] for (kk in seq_along(NAMES)) { [18:02:24.418] name <- added[[kk]] [18:02:24.418] NAME <- NAMES[[kk]] [18:02:24.418] if (name != NAME && is.element(NAME, old_names)) [18:02:24.418] next [18:02:24.418] args[[name]] <- "" [18:02:24.418] } [18:02:24.418] NAMES <- toupper(removed) [18:02:24.418] for (kk in seq_along(NAMES)) { [18:02:24.418] name <- removed[[kk]] [18:02:24.418] NAME <- NAMES[[kk]] [18:02:24.418] if (name != NAME && is.element(NAME, old_names)) [18:02:24.418] next [18:02:24.418] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.418] } [18:02:24.418] if (length(args) > 0) [18:02:24.418] base::do.call(base::Sys.setenv, args = args) [18:02:24.418] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:24.418] } [18:02:24.418] else { [18:02:24.418] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:24.418] } [18:02:24.418] { [18:02:24.418] if (base::length(...future.futureOptionsAdded) > [18:02:24.418] 0L) { [18:02:24.418] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:24.418] base::names(opts) <- ...future.futureOptionsAdded [18:02:24.418] base::options(opts) [18:02:24.418] } [18:02:24.418] { [18:02:24.418] { [18:02:24.418] base::options(mc.cores = ...future.mc.cores.old) [18:02:24.418] NULL [18:02:24.418] } [18:02:24.418] options(future.plan = NULL) [18:02:24.418] if (is.na(NA_character_)) [18:02:24.418] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.418] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:24.418] future::plan(list(a = function (..., workers = availableCores(), [18:02:24.418] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.418] envir = parent.frame()) [18:02:24.418] { [18:02:24.418] if (is.function(workers)) [18:02:24.418] workers <- workers() [18:02:24.418] workers <- structure(as.integer(workers), [18:02:24.418] class = class(workers)) [18:02:24.418] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.418] workers >= 1) [18:02:24.418] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.418] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.418] } [18:02:24.418] future <- MultisessionFuture(..., workers = workers, [18:02:24.418] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.418] envir = envir) [18:02:24.418] if (!future$lazy) [18:02:24.418] future <- run(future) [18:02:24.418] invisible(future) [18:02:24.418] }, b = function (..., envir = parent.frame()) [18:02:24.418] { [18:02:24.418] future <- SequentialFuture(..., envir = envir) [18:02:24.418] if (!future$lazy) [18:02:24.418] future <- run(future) [18:02:24.418] invisible(future) [18:02:24.418] }), .cleanup = FALSE, .init = FALSE) [18:02:24.418] } [18:02:24.418] } [18:02:24.418] } [18:02:24.418] }) [18:02:24.418] if (TRUE) { [18:02:24.418] base::sink(type = "output", split = FALSE) [18:02:24.418] if (TRUE) { [18:02:24.418] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:24.418] } [18:02:24.418] else { [18:02:24.418] ...future.result["stdout"] <- base::list(NULL) [18:02:24.418] } [18:02:24.418] base::close(...future.stdout) [18:02:24.418] ...future.stdout <- NULL [18:02:24.418] } [18:02:24.418] ...future.result$conditions <- ...future.conditions [18:02:24.418] ...future.result$finished <- base::Sys.time() [18:02:24.418] ...future.result [18:02:24.418] } [18:02:24.502] MultisessionFuture started [18:02:24.502] result() for ClusterFuture ... [18:02:24.502] receiveMessageFromWorker() for ClusterFuture ... [18:02:24.503] - Validating connection of MultisessionFuture [18:02:24.564] - received message: FutureResult [18:02:24.564] - Received FutureResult [18:02:24.565] - Erased future from FutureRegistry [18:02:24.565] result() for ClusterFuture ... [18:02:24.565] - result already collected: FutureResult [18:02:24.565] result() for ClusterFuture ... done [18:02:24.565] receiveMessageFromWorker() for ClusterFuture ... done [18:02:24.566] result() for ClusterFuture ... done [18:02:24.566] result() for ClusterFuture ... [18:02:24.566] - result already collected: FutureResult [18:02:24.566] result() for ClusterFuture ... done [18:02:24.566] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... DONE [18:02:24.569] plan(): nbrOfWorkers() = 2 [18:02:24.569] getGlobalsAndPackages() ... [18:02:24.569] Searching for globals... [18:02:24.592] - globals found: [21] '{', '<-', 'unclass', '::', '[', 'nested', '-', 'stopifnot', '==', 'length', 'inherits', '[[', 'strategy2', 'for', 'seq_along', 'attr', 'attr<-', '[[<-', 'all.equal', 'list', '%<-%' [18:02:24.593] Searching for globals ... DONE [18:02:24.593] Resolving globals: FALSE [18:02:24.594] The total size of the 2 globals is 55.46 KiB (56792 bytes) [18:02:24.595] The total size of the 2 globals exported for future expression ('{; a <- 1L; plan_a <- unclass(future::plan("list")); nested_a <- nested[-1]; stopifnot(length(nested_a) == 1L, length(plan_a) == 1L, inherits(plan_a[[1]],; "future"), inherits(future::plan("next"), strategy2)); ...; }; y; }') is 55.46 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'nested' (55.34 KiB of class 'list') and 'strategy2' (120 bytes of class 'character') [18:02:24.595] - globals: [2] 'nested', 'strategy2' [18:02:24.595] - packages: [1] 'future' [18:02:24.596] getGlobalsAndPackages() ... DONE [18:02:24.596] run() for 'Future' ... [18:02:24.596] - state: 'created' [18:02:24.596] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:24.610] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:24.610] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:24.610] - Field: 'node' [18:02:24.610] - Field: 'label' [18:02:24.611] - Field: 'local' [18:02:24.611] - Field: 'owner' [18:02:24.611] - Field: 'envir' [18:02:24.611] - Field: 'workers' [18:02:24.611] - Field: 'packages' [18:02:24.612] - Field: 'gc' [18:02:24.612] - Field: 'conditions' [18:02:24.612] - Field: 'persistent' [18:02:24.612] - Field: 'expr' [18:02:24.612] - Field: 'uuid' [18:02:24.612] - Field: 'seed' [18:02:24.613] - Field: 'version' [18:02:24.613] - Field: 'result' [18:02:24.613] - Field: 'asynchronous' [18:02:24.613] - Field: 'calls' [18:02:24.613] - Field: 'globals' [18:02:24.613] - Field: 'stdout' [18:02:24.614] - Field: 'earlySignal' [18:02:24.614] - Field: 'lazy' [18:02:24.614] - Field: 'state' [18:02:24.614] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:24.614] - Launch lazy future ... [18:02:24.615] Packages needed by the future expression (n = 1): 'future' [18:02:24.615] Packages needed by future strategies (n = 1): 'future' [18:02:24.616] { [18:02:24.616] { [18:02:24.616] { [18:02:24.616] ...future.startTime <- base::Sys.time() [18:02:24.616] { [18:02:24.616] { [18:02:24.616] { [18:02:24.616] { [18:02:24.616] { [18:02:24.616] base::local({ [18:02:24.616] has_future <- base::requireNamespace("future", [18:02:24.616] quietly = TRUE) [18:02:24.616] if (has_future) { [18:02:24.616] ns <- base::getNamespace("future") [18:02:24.616] version <- ns[[".package"]][["version"]] [18:02:24.616] if (is.null(version)) [18:02:24.616] version <- utils::packageVersion("future") [18:02:24.616] } [18:02:24.616] else { [18:02:24.616] version <- NULL [18:02:24.616] } [18:02:24.616] if (!has_future || version < "1.8.0") { [18:02:24.616] info <- base::c(r_version = base::gsub("R version ", [18:02:24.616] "", base::R.version$version.string), [18:02:24.616] platform = base::sprintf("%s (%s-bit)", [18:02:24.616] base::R.version$platform, 8 * [18:02:24.616] base::.Machine$sizeof.pointer), [18:02:24.616] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:24.616] "release", "version")], collapse = " "), [18:02:24.616] hostname = base::Sys.info()[["nodename"]]) [18:02:24.616] info <- base::sprintf("%s: %s", base::names(info), [18:02:24.616] info) [18:02:24.616] info <- base::paste(info, collapse = "; ") [18:02:24.616] if (!has_future) { [18:02:24.616] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:24.616] info) [18:02:24.616] } [18:02:24.616] else { [18:02:24.616] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:24.616] info, version) [18:02:24.616] } [18:02:24.616] base::stop(msg) [18:02:24.616] } [18:02:24.616] }) [18:02:24.616] } [18:02:24.616] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:24.616] base::options(mc.cores = 1L) [18:02:24.616] } [18:02:24.616] base::local({ [18:02:24.616] for (pkg in "future") { [18:02:24.616] base::loadNamespace(pkg) [18:02:24.616] base::library(pkg, character.only = TRUE) [18:02:24.616] } [18:02:24.616] }) [18:02:24.616] } [18:02:24.616] options(future.plan = NULL) [18:02:24.616] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.616] future::plan(list(b = function (..., envir = parent.frame()) [18:02:24.616] { [18:02:24.616] future <- SequentialFuture(..., envir = envir) [18:02:24.616] if (!future$lazy) [18:02:24.616] future <- run(future) [18:02:24.616] invisible(future) [18:02:24.616] }), .cleanup = FALSE, .init = FALSE) [18:02:24.616] } [18:02:24.616] ...future.workdir <- getwd() [18:02:24.616] } [18:02:24.616] ...future.oldOptions <- base::as.list(base::.Options) [18:02:24.616] ...future.oldEnvVars <- base::Sys.getenv() [18:02:24.616] } [18:02:24.616] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:24.616] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:24.616] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:24.616] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:24.616] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:24.616] future.stdout.windows.reencode = NULL, width = 80L) [18:02:24.616] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:24.616] base::names(...future.oldOptions)) [18:02:24.616] } [18:02:24.616] if (FALSE) { [18:02:24.616] } [18:02:24.616] else { [18:02:24.616] if (TRUE) { [18:02:24.616] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:24.616] open = "w") [18:02:24.616] } [18:02:24.616] else { [18:02:24.616] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:24.616] windows = "NUL", "/dev/null"), open = "w") [18:02:24.616] } [18:02:24.616] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:24.616] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:24.616] base::sink(type = "output", split = FALSE) [18:02:24.616] base::close(...future.stdout) [18:02:24.616] }, add = TRUE) [18:02:24.616] } [18:02:24.616] ...future.frame <- base::sys.nframe() [18:02:24.616] ...future.conditions <- base::list() [18:02:24.616] ...future.rng <- base::globalenv()$.Random.seed [18:02:24.616] if (FALSE) { [18:02:24.616] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:24.616] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:24.616] } [18:02:24.616] ...future.result <- base::tryCatch({ [18:02:24.616] base::withCallingHandlers({ [18:02:24.616] ...future.value <- base::withVisible(base::local({ [18:02:24.616] ...future.makeSendCondition <- local({ [18:02:24.616] sendCondition <- NULL [18:02:24.616] function(frame = 1L) { [18:02:24.616] if (is.function(sendCondition)) [18:02:24.616] return(sendCondition) [18:02:24.616] ns <- getNamespace("parallel") [18:02:24.616] if (exists("sendData", mode = "function", [18:02:24.616] envir = ns)) { [18:02:24.616] parallel_sendData <- get("sendData", mode = "function", [18:02:24.616] envir = ns) [18:02:24.616] envir <- sys.frame(frame) [18:02:24.616] master <- NULL [18:02:24.616] while (!identical(envir, .GlobalEnv) && [18:02:24.616] !identical(envir, emptyenv())) { [18:02:24.616] if (exists("master", mode = "list", envir = envir, [18:02:24.616] inherits = FALSE)) { [18:02:24.616] master <- get("master", mode = "list", [18:02:24.616] envir = envir, inherits = FALSE) [18:02:24.616] if (inherits(master, c("SOCKnode", [18:02:24.616] "SOCK0node"))) { [18:02:24.616] sendCondition <<- function(cond) { [18:02:24.616] data <- list(type = "VALUE", value = cond, [18:02:24.616] success = TRUE) [18:02:24.616] parallel_sendData(master, data) [18:02:24.616] } [18:02:24.616] return(sendCondition) [18:02:24.616] } [18:02:24.616] } [18:02:24.616] frame <- frame + 1L [18:02:24.616] envir <- sys.frame(frame) [18:02:24.616] } [18:02:24.616] } [18:02:24.616] sendCondition <<- function(cond) NULL [18:02:24.616] } [18:02:24.616] }) [18:02:24.616] withCallingHandlers({ [18:02:24.616] { [18:02:24.616] a <- 1L [18:02:24.616] plan_a <- unclass(future::plan("list")) [18:02:24.616] nested_a <- nested[-1] [18:02:24.616] stopifnot(length(nested_a) == 1L, length(plan_a) == [18:02:24.616] 1L, inherits(plan_a[[1]], "future"), inherits(future::plan("next"), [18:02:24.616] strategy2)) [18:02:24.616] for (kk in seq_along(plan_a)) attr(plan_a[[kk]], [18:02:24.616] "init") <- NULL [18:02:24.616] for (kk in seq_along(nested_a)) attr(nested_a[[kk]], [18:02:24.616] "init") <- NULL [18:02:24.616] stopifnot(all.equal(plan_a, nested_a)) [18:02:24.616] y %<-% { [18:02:24.616] b <- 2L [18:02:24.616] plan_b <- future::plan("list") [18:02:24.616] nested_b <- nested_a[-1] [18:02:24.616] stopifnot(length(nested_b) == 0L, length(plan_b) == [18:02:24.616] 1L, inherits(plan_b[[1]], "future"), [18:02:24.616] inherits(future::plan("next"), "sequential")) [18:02:24.616] list(a = a, nested_a = nested_a, plan_a = plan_a, [18:02:24.616] b = b, nested_b = nested_b, plan_b = plan_b) [18:02:24.616] } [18:02:24.616] y [18:02:24.616] } [18:02:24.616] }, immediateCondition = function(cond) { [18:02:24.616] sendCondition <- ...future.makeSendCondition() [18:02:24.616] sendCondition(cond) [18:02:24.616] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.616] { [18:02:24.616] inherits <- base::inherits [18:02:24.616] invokeRestart <- base::invokeRestart [18:02:24.616] is.null <- base::is.null [18:02:24.616] muffled <- FALSE [18:02:24.616] if (inherits(cond, "message")) { [18:02:24.616] muffled <- grepl(pattern, "muffleMessage") [18:02:24.616] if (muffled) [18:02:24.616] invokeRestart("muffleMessage") [18:02:24.616] } [18:02:24.616] else if (inherits(cond, "warning")) { [18:02:24.616] muffled <- grepl(pattern, "muffleWarning") [18:02:24.616] if (muffled) [18:02:24.616] invokeRestart("muffleWarning") [18:02:24.616] } [18:02:24.616] else if (inherits(cond, "condition")) { [18:02:24.616] if (!is.null(pattern)) { [18:02:24.616] computeRestarts <- base::computeRestarts [18:02:24.616] grepl <- base::grepl [18:02:24.616] restarts <- computeRestarts(cond) [18:02:24.616] for (restart in restarts) { [18:02:24.616] name <- restart$name [18:02:24.616] if (is.null(name)) [18:02:24.616] next [18:02:24.616] if (!grepl(pattern, name)) [18:02:24.616] next [18:02:24.616] invokeRestart(restart) [18:02:24.616] muffled <- TRUE [18:02:24.616] break [18:02:24.616] } [18:02:24.616] } [18:02:24.616] } [18:02:24.616] invisible(muffled) [18:02:24.616] } [18:02:24.616] muffleCondition(cond) [18:02:24.616] }) [18:02:24.616] })) [18:02:24.616] future::FutureResult(value = ...future.value$value, [18:02:24.616] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.616] ...future.rng), globalenv = if (FALSE) [18:02:24.616] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:24.616] ...future.globalenv.names)) [18:02:24.616] else NULL, started = ...future.startTime, version = "1.8") [18:02:24.616] }, condition = base::local({ [18:02:24.616] c <- base::c [18:02:24.616] inherits <- base::inherits [18:02:24.616] invokeRestart <- base::invokeRestart [18:02:24.616] length <- base::length [18:02:24.616] list <- base::list [18:02:24.616] seq.int <- base::seq.int [18:02:24.616] signalCondition <- base::signalCondition [18:02:24.616] sys.calls <- base::sys.calls [18:02:24.616] `[[` <- base::`[[` [18:02:24.616] `+` <- base::`+` [18:02:24.616] `<<-` <- base::`<<-` [18:02:24.616] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:24.616] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:24.616] 3L)] [18:02:24.616] } [18:02:24.616] function(cond) { [18:02:24.616] is_error <- inherits(cond, "error") [18:02:24.616] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:24.616] NULL) [18:02:24.616] if (is_error) { [18:02:24.616] sessionInformation <- function() { [18:02:24.616] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:24.616] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:24.616] search = base::search(), system = base::Sys.info()) [18:02:24.616] } [18:02:24.616] ...future.conditions[[length(...future.conditions) + [18:02:24.616] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:24.616] cond$call), session = sessionInformation(), [18:02:24.616] timestamp = base::Sys.time(), signaled = 0L) [18:02:24.616] signalCondition(cond) [18:02:24.616] } [18:02:24.616] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:24.616] "immediateCondition"))) { [18:02:24.616] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:24.616] ...future.conditions[[length(...future.conditions) + [18:02:24.616] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:24.616] if (TRUE && !signal) { [18:02:24.616] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.616] { [18:02:24.616] inherits <- base::inherits [18:02:24.616] invokeRestart <- base::invokeRestart [18:02:24.616] is.null <- base::is.null [18:02:24.616] muffled <- FALSE [18:02:24.616] if (inherits(cond, "message")) { [18:02:24.616] muffled <- grepl(pattern, "muffleMessage") [18:02:24.616] if (muffled) [18:02:24.616] invokeRestart("muffleMessage") [18:02:24.616] } [18:02:24.616] else if (inherits(cond, "warning")) { [18:02:24.616] muffled <- grepl(pattern, "muffleWarning") [18:02:24.616] if (muffled) [18:02:24.616] invokeRestart("muffleWarning") [18:02:24.616] } [18:02:24.616] else if (inherits(cond, "condition")) { [18:02:24.616] if (!is.null(pattern)) { [18:02:24.616] computeRestarts <- base::computeRestarts [18:02:24.616] grepl <- base::grepl [18:02:24.616] restarts <- computeRestarts(cond) [18:02:24.616] for (restart in restarts) { [18:02:24.616] name <- restart$name [18:02:24.616] if (is.null(name)) [18:02:24.616] next [18:02:24.616] if (!grepl(pattern, name)) [18:02:24.616] next [18:02:24.616] invokeRestart(restart) [18:02:24.616] muffled <- TRUE [18:02:24.616] break [18:02:24.616] } [18:02:24.616] } [18:02:24.616] } [18:02:24.616] invisible(muffled) [18:02:24.616] } [18:02:24.616] muffleCondition(cond, pattern = "^muffle") [18:02:24.616] } [18:02:24.616] } [18:02:24.616] else { [18:02:24.616] if (TRUE) { [18:02:24.616] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.616] { [18:02:24.616] inherits <- base::inherits [18:02:24.616] invokeRestart <- base::invokeRestart [18:02:24.616] is.null <- base::is.null [18:02:24.616] muffled <- FALSE [18:02:24.616] if (inherits(cond, "message")) { [18:02:24.616] muffled <- grepl(pattern, "muffleMessage") [18:02:24.616] if (muffled) [18:02:24.616] invokeRestart("muffleMessage") [18:02:24.616] } [18:02:24.616] else if (inherits(cond, "warning")) { [18:02:24.616] muffled <- grepl(pattern, "muffleWarning") [18:02:24.616] if (muffled) [18:02:24.616] invokeRestart("muffleWarning") [18:02:24.616] } [18:02:24.616] else if (inherits(cond, "condition")) { [18:02:24.616] if (!is.null(pattern)) { [18:02:24.616] computeRestarts <- base::computeRestarts [18:02:24.616] grepl <- base::grepl [18:02:24.616] restarts <- computeRestarts(cond) [18:02:24.616] for (restart in restarts) { [18:02:24.616] name <- restart$name [18:02:24.616] if (is.null(name)) [18:02:24.616] next [18:02:24.616] if (!grepl(pattern, name)) [18:02:24.616] next [18:02:24.616] invokeRestart(restart) [18:02:24.616] muffled <- TRUE [18:02:24.616] break [18:02:24.616] } [18:02:24.616] } [18:02:24.616] } [18:02:24.616] invisible(muffled) [18:02:24.616] } [18:02:24.616] muffleCondition(cond, pattern = "^muffle") [18:02:24.616] } [18:02:24.616] } [18:02:24.616] } [18:02:24.616] })) [18:02:24.616] }, error = function(ex) { [18:02:24.616] base::structure(base::list(value = NULL, visible = NULL, [18:02:24.616] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.616] ...future.rng), started = ...future.startTime, [18:02:24.616] finished = Sys.time(), session_uuid = NA_character_, [18:02:24.616] version = "1.8"), class = "FutureResult") [18:02:24.616] }, finally = { [18:02:24.616] if (!identical(...future.workdir, getwd())) [18:02:24.616] setwd(...future.workdir) [18:02:24.616] { [18:02:24.616] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:24.616] ...future.oldOptions$nwarnings <- NULL [18:02:24.616] } [18:02:24.616] base::options(...future.oldOptions) [18:02:24.616] if (.Platform$OS.type == "windows") { [18:02:24.616] old_names <- names(...future.oldEnvVars) [18:02:24.616] envs <- base::Sys.getenv() [18:02:24.616] names <- names(envs) [18:02:24.616] common <- intersect(names, old_names) [18:02:24.616] added <- setdiff(names, old_names) [18:02:24.616] removed <- setdiff(old_names, names) [18:02:24.616] changed <- common[...future.oldEnvVars[common] != [18:02:24.616] envs[common]] [18:02:24.616] NAMES <- toupper(changed) [18:02:24.616] args <- list() [18:02:24.616] for (kk in seq_along(NAMES)) { [18:02:24.616] name <- changed[[kk]] [18:02:24.616] NAME <- NAMES[[kk]] [18:02:24.616] if (name != NAME && is.element(NAME, old_names)) [18:02:24.616] next [18:02:24.616] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.616] } [18:02:24.616] NAMES <- toupper(added) [18:02:24.616] for (kk in seq_along(NAMES)) { [18:02:24.616] name <- added[[kk]] [18:02:24.616] NAME <- NAMES[[kk]] [18:02:24.616] if (name != NAME && is.element(NAME, old_names)) [18:02:24.616] next [18:02:24.616] args[[name]] <- "" [18:02:24.616] } [18:02:24.616] NAMES <- toupper(removed) [18:02:24.616] for (kk in seq_along(NAMES)) { [18:02:24.616] name <- removed[[kk]] [18:02:24.616] NAME <- NAMES[[kk]] [18:02:24.616] if (name != NAME && is.element(NAME, old_names)) [18:02:24.616] next [18:02:24.616] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.616] } [18:02:24.616] if (length(args) > 0) [18:02:24.616] base::do.call(base::Sys.setenv, args = args) [18:02:24.616] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:24.616] } [18:02:24.616] else { [18:02:24.616] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:24.616] } [18:02:24.616] { [18:02:24.616] if (base::length(...future.futureOptionsAdded) > [18:02:24.616] 0L) { [18:02:24.616] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:24.616] base::names(opts) <- ...future.futureOptionsAdded [18:02:24.616] base::options(opts) [18:02:24.616] } [18:02:24.616] { [18:02:24.616] { [18:02:24.616] base::options(mc.cores = ...future.mc.cores.old) [18:02:24.616] NULL [18:02:24.616] } [18:02:24.616] options(future.plan = NULL) [18:02:24.616] if (is.na(NA_character_)) [18:02:24.616] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.616] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:24.616] future::plan(list(a = function (..., workers = availableCores(), [18:02:24.616] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.616] envir = parent.frame()) [18:02:24.616] { [18:02:24.616] if (is.function(workers)) [18:02:24.616] workers <- workers() [18:02:24.616] workers <- structure(as.integer(workers), [18:02:24.616] class = class(workers)) [18:02:24.616] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.616] workers >= 1) [18:02:24.616] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.616] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.616] } [18:02:24.616] future <- MultisessionFuture(..., workers = workers, [18:02:24.616] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.616] envir = envir) [18:02:24.616] if (!future$lazy) [18:02:24.616] future <- run(future) [18:02:24.616] invisible(future) [18:02:24.616] }, b = function (..., envir = parent.frame()) [18:02:24.616] { [18:02:24.616] future <- SequentialFuture(..., envir = envir) [18:02:24.616] if (!future$lazy) [18:02:24.616] future <- run(future) [18:02:24.616] invisible(future) [18:02:24.616] }), .cleanup = FALSE, .init = FALSE) [18:02:24.616] } [18:02:24.616] } [18:02:24.616] } [18:02:24.616] }) [18:02:24.616] if (TRUE) { [18:02:24.616] base::sink(type = "output", split = FALSE) [18:02:24.616] if (TRUE) { [18:02:24.616] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:24.616] } [18:02:24.616] else { [18:02:24.616] ...future.result["stdout"] <- base::list(NULL) [18:02:24.616] } [18:02:24.616] base::close(...future.stdout) [18:02:24.616] ...future.stdout <- NULL [18:02:24.616] } [18:02:24.616] ...future.result$conditions <- ...future.conditions [18:02:24.616] ...future.result$finished <- base::Sys.time() [18:02:24.616] ...future.result [18:02:24.616] } [18:02:24.622] Exporting 2 global objects (55.46 KiB) to cluster node #1 ... [18:02:24.622] Exporting 'nested' (55.34 KiB) to cluster node #1 ... [18:02:24.623] Exporting 'nested' (55.34 KiB) to cluster node #1 ... DONE [18:02:24.623] Exporting 'strategy2' (120 bytes) to cluster node #1 ... [18:02:24.623] Exporting 'strategy2' (120 bytes) to cluster node #1 ... DONE [18:02:24.623] Exporting 2 global objects (55.46 KiB) to cluster node #1 ... DONE [18:02:24.624] MultisessionFuture started [18:02:24.624] - Launch lazy future ... done [18:02:24.625] run() for 'MultisessionFuture' ... done [18:02:24.625] result() for ClusterFuture ... [18:02:24.625] receiveMessageFromWorker() for ClusterFuture ... [18:02:24.625] - Validating connection of MultisessionFuture [18:02:24.673] - received message: FutureResult [18:02:24.674] - Received FutureResult [18:02:24.674] - Erased future from FutureRegistry [18:02:24.674] result() for ClusterFuture ... [18:02:24.674] - result already collected: FutureResult [18:02:24.674] result() for ClusterFuture ... done [18:02:24.674] receiveMessageFromWorker() for ClusterFuture ... done [18:02:24.675] result() for ClusterFuture ... done [18:02:24.675] result() for ClusterFuture ... [18:02:24.675] - result already collected: FutureResult [18:02:24.675] result() for ClusterFuture ... done List of 6 $ a : int 1 $ nested_a:List of 1 ..$ b:function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ plan_a :List of 1 ..$ b:function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ b : int 2 $ nested_b: Named list() $ plan_b :List of 1 ..$ :function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" ..- attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [18:02:24.681] getGlobalsAndPackages() ... [18:02:24.681] Searching for globals... [18:02:24.683] - globals found: [7] '{', 'value', 'future', 'subset', 'data', '==', 'a' [18:02:24.683] Searching for globals ... DONE [18:02:24.683] Resolving globals: FALSE [18:02:24.684] The total size of the 1 globals is 128 bytes (128 bytes) [18:02:24.685] The total size of the 1 globals exported for future expression ('{; value(future(subset(data, a == 2))); }') is 128 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'data' (128 bytes of class 'list') [18:02:24.685] - globals: [1] 'data' [18:02:24.685] - packages: [1] 'future' [18:02:24.685] getGlobalsAndPackages() ... DONE [18:02:24.685] run() for 'Future' ... [18:02:24.686] - state: 'created' [18:02:24.686] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:24.699] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:24.700] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:24.700] - Field: 'node' [18:02:24.700] - Field: 'label' [18:02:24.700] - Field: 'local' [18:02:24.700] - Field: 'owner' [18:02:24.701] - Field: 'envir' [18:02:24.701] - Field: 'workers' [18:02:24.701] - Field: 'packages' [18:02:24.701] - Field: 'gc' [18:02:24.701] - Field: 'conditions' [18:02:24.701] - Field: 'persistent' [18:02:24.702] - Field: 'expr' [18:02:24.702] - Field: 'uuid' [18:02:24.702] - Field: 'seed' [18:02:24.702] - Field: 'version' [18:02:24.702] - Field: 'result' [18:02:24.703] - Field: 'asynchronous' [18:02:24.703] - Field: 'calls' [18:02:24.703] - Field: 'globals' [18:02:24.703] - Field: 'stdout' [18:02:24.703] - Field: 'earlySignal' [18:02:24.703] - Field: 'lazy' [18:02:24.704] - Field: 'state' [18:02:24.704] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:24.704] - Launch lazy future ... [18:02:24.704] Packages needed by the future expression (n = 1): 'future' [18:02:24.705] Packages needed by future strategies (n = 1): 'future' [18:02:24.705] { [18:02:24.705] { [18:02:24.705] { [18:02:24.705] ...future.startTime <- base::Sys.time() [18:02:24.705] { [18:02:24.705] { [18:02:24.705] { [18:02:24.705] { [18:02:24.705] { [18:02:24.705] base::local({ [18:02:24.705] has_future <- base::requireNamespace("future", [18:02:24.705] quietly = TRUE) [18:02:24.705] if (has_future) { [18:02:24.705] ns <- base::getNamespace("future") [18:02:24.705] version <- ns[[".package"]][["version"]] [18:02:24.705] if (is.null(version)) [18:02:24.705] version <- utils::packageVersion("future") [18:02:24.705] } [18:02:24.705] else { [18:02:24.705] version <- NULL [18:02:24.705] } [18:02:24.705] if (!has_future || version < "1.8.0") { [18:02:24.705] info <- base::c(r_version = base::gsub("R version ", [18:02:24.705] "", base::R.version$version.string), [18:02:24.705] platform = base::sprintf("%s (%s-bit)", [18:02:24.705] base::R.version$platform, 8 * [18:02:24.705] base::.Machine$sizeof.pointer), [18:02:24.705] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:24.705] "release", "version")], collapse = " "), [18:02:24.705] hostname = base::Sys.info()[["nodename"]]) [18:02:24.705] info <- base::sprintf("%s: %s", base::names(info), [18:02:24.705] info) [18:02:24.705] info <- base::paste(info, collapse = "; ") [18:02:24.705] if (!has_future) { [18:02:24.705] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:24.705] info) [18:02:24.705] } [18:02:24.705] else { [18:02:24.705] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:24.705] info, version) [18:02:24.705] } [18:02:24.705] base::stop(msg) [18:02:24.705] } [18:02:24.705] }) [18:02:24.705] } [18:02:24.705] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:24.705] base::options(mc.cores = 1L) [18:02:24.705] } [18:02:24.705] base::local({ [18:02:24.705] for (pkg in "future") { [18:02:24.705] base::loadNamespace(pkg) [18:02:24.705] base::library(pkg, character.only = TRUE) [18:02:24.705] } [18:02:24.705] }) [18:02:24.705] } [18:02:24.705] options(future.plan = NULL) [18:02:24.705] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.705] future::plan(list(b = function (..., envir = parent.frame()) [18:02:24.705] { [18:02:24.705] future <- SequentialFuture(..., envir = envir) [18:02:24.705] if (!future$lazy) [18:02:24.705] future <- run(future) [18:02:24.705] invisible(future) [18:02:24.705] }), .cleanup = FALSE, .init = FALSE) [18:02:24.705] } [18:02:24.705] ...future.workdir <- getwd() [18:02:24.705] } [18:02:24.705] ...future.oldOptions <- base::as.list(base::.Options) [18:02:24.705] ...future.oldEnvVars <- base::Sys.getenv() [18:02:24.705] } [18:02:24.705] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:24.705] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:24.705] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:24.705] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:24.705] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:24.705] future.stdout.windows.reencode = NULL, width = 80L) [18:02:24.705] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:24.705] base::names(...future.oldOptions)) [18:02:24.705] } [18:02:24.705] if (FALSE) { [18:02:24.705] } [18:02:24.705] else { [18:02:24.705] if (TRUE) { [18:02:24.705] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:24.705] open = "w") [18:02:24.705] } [18:02:24.705] else { [18:02:24.705] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:24.705] windows = "NUL", "/dev/null"), open = "w") [18:02:24.705] } [18:02:24.705] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:24.705] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:24.705] base::sink(type = "output", split = FALSE) [18:02:24.705] base::close(...future.stdout) [18:02:24.705] }, add = TRUE) [18:02:24.705] } [18:02:24.705] ...future.frame <- base::sys.nframe() [18:02:24.705] ...future.conditions <- base::list() [18:02:24.705] ...future.rng <- base::globalenv()$.Random.seed [18:02:24.705] if (FALSE) { [18:02:24.705] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:24.705] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:24.705] } [18:02:24.705] ...future.result <- base::tryCatch({ [18:02:24.705] base::withCallingHandlers({ [18:02:24.705] ...future.value <- base::withVisible(base::local({ [18:02:24.705] ...future.makeSendCondition <- local({ [18:02:24.705] sendCondition <- NULL [18:02:24.705] function(frame = 1L) { [18:02:24.705] if (is.function(sendCondition)) [18:02:24.705] return(sendCondition) [18:02:24.705] ns <- getNamespace("parallel") [18:02:24.705] if (exists("sendData", mode = "function", [18:02:24.705] envir = ns)) { [18:02:24.705] parallel_sendData <- get("sendData", mode = "function", [18:02:24.705] envir = ns) [18:02:24.705] envir <- sys.frame(frame) [18:02:24.705] master <- NULL [18:02:24.705] while (!identical(envir, .GlobalEnv) && [18:02:24.705] !identical(envir, emptyenv())) { [18:02:24.705] if (exists("master", mode = "list", envir = envir, [18:02:24.705] inherits = FALSE)) { [18:02:24.705] master <- get("master", mode = "list", [18:02:24.705] envir = envir, inherits = FALSE) [18:02:24.705] if (inherits(master, c("SOCKnode", [18:02:24.705] "SOCK0node"))) { [18:02:24.705] sendCondition <<- function(cond) { [18:02:24.705] data <- list(type = "VALUE", value = cond, [18:02:24.705] success = TRUE) [18:02:24.705] parallel_sendData(master, data) [18:02:24.705] } [18:02:24.705] return(sendCondition) [18:02:24.705] } [18:02:24.705] } [18:02:24.705] frame <- frame + 1L [18:02:24.705] envir <- sys.frame(frame) [18:02:24.705] } [18:02:24.705] } [18:02:24.705] sendCondition <<- function(cond) NULL [18:02:24.705] } [18:02:24.705] }) [18:02:24.705] withCallingHandlers({ [18:02:24.705] { [18:02:24.705] value(future(subset(data, a == 2))) [18:02:24.705] } [18:02:24.705] }, immediateCondition = function(cond) { [18:02:24.705] sendCondition <- ...future.makeSendCondition() [18:02:24.705] sendCondition(cond) [18:02:24.705] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.705] { [18:02:24.705] inherits <- base::inherits [18:02:24.705] invokeRestart <- base::invokeRestart [18:02:24.705] is.null <- base::is.null [18:02:24.705] muffled <- FALSE [18:02:24.705] if (inherits(cond, "message")) { [18:02:24.705] muffled <- grepl(pattern, "muffleMessage") [18:02:24.705] if (muffled) [18:02:24.705] invokeRestart("muffleMessage") [18:02:24.705] } [18:02:24.705] else if (inherits(cond, "warning")) { [18:02:24.705] muffled <- grepl(pattern, "muffleWarning") [18:02:24.705] if (muffled) [18:02:24.705] invokeRestart("muffleWarning") [18:02:24.705] } [18:02:24.705] else if (inherits(cond, "condition")) { [18:02:24.705] if (!is.null(pattern)) { [18:02:24.705] computeRestarts <- base::computeRestarts [18:02:24.705] grepl <- base::grepl [18:02:24.705] restarts <- computeRestarts(cond) [18:02:24.705] for (restart in restarts) { [18:02:24.705] name <- restart$name [18:02:24.705] if (is.null(name)) [18:02:24.705] next [18:02:24.705] if (!grepl(pattern, name)) [18:02:24.705] next [18:02:24.705] invokeRestart(restart) [18:02:24.705] muffled <- TRUE [18:02:24.705] break [18:02:24.705] } [18:02:24.705] } [18:02:24.705] } [18:02:24.705] invisible(muffled) [18:02:24.705] } [18:02:24.705] muffleCondition(cond) [18:02:24.705] }) [18:02:24.705] })) [18:02:24.705] future::FutureResult(value = ...future.value$value, [18:02:24.705] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.705] ...future.rng), globalenv = if (FALSE) [18:02:24.705] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:24.705] ...future.globalenv.names)) [18:02:24.705] else NULL, started = ...future.startTime, version = "1.8") [18:02:24.705] }, condition = base::local({ [18:02:24.705] c <- base::c [18:02:24.705] inherits <- base::inherits [18:02:24.705] invokeRestart <- base::invokeRestart [18:02:24.705] length <- base::length [18:02:24.705] list <- base::list [18:02:24.705] seq.int <- base::seq.int [18:02:24.705] signalCondition <- base::signalCondition [18:02:24.705] sys.calls <- base::sys.calls [18:02:24.705] `[[` <- base::`[[` [18:02:24.705] `+` <- base::`+` [18:02:24.705] `<<-` <- base::`<<-` [18:02:24.705] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:24.705] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:24.705] 3L)] [18:02:24.705] } [18:02:24.705] function(cond) { [18:02:24.705] is_error <- inherits(cond, "error") [18:02:24.705] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:24.705] NULL) [18:02:24.705] if (is_error) { [18:02:24.705] sessionInformation <- function() { [18:02:24.705] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:24.705] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:24.705] search = base::search(), system = base::Sys.info()) [18:02:24.705] } [18:02:24.705] ...future.conditions[[length(...future.conditions) + [18:02:24.705] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:24.705] cond$call), session = sessionInformation(), [18:02:24.705] timestamp = base::Sys.time(), signaled = 0L) [18:02:24.705] signalCondition(cond) [18:02:24.705] } [18:02:24.705] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:24.705] "immediateCondition"))) { [18:02:24.705] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:24.705] ...future.conditions[[length(...future.conditions) + [18:02:24.705] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:24.705] if (TRUE && !signal) { [18:02:24.705] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.705] { [18:02:24.705] inherits <- base::inherits [18:02:24.705] invokeRestart <- base::invokeRestart [18:02:24.705] is.null <- base::is.null [18:02:24.705] muffled <- FALSE [18:02:24.705] if (inherits(cond, "message")) { [18:02:24.705] muffled <- grepl(pattern, "muffleMessage") [18:02:24.705] if (muffled) [18:02:24.705] invokeRestart("muffleMessage") [18:02:24.705] } [18:02:24.705] else if (inherits(cond, "warning")) { [18:02:24.705] muffled <- grepl(pattern, "muffleWarning") [18:02:24.705] if (muffled) [18:02:24.705] invokeRestart("muffleWarning") [18:02:24.705] } [18:02:24.705] else if (inherits(cond, "condition")) { [18:02:24.705] if (!is.null(pattern)) { [18:02:24.705] computeRestarts <- base::computeRestarts [18:02:24.705] grepl <- base::grepl [18:02:24.705] restarts <- computeRestarts(cond) [18:02:24.705] for (restart in restarts) { [18:02:24.705] name <- restart$name [18:02:24.705] if (is.null(name)) [18:02:24.705] next [18:02:24.705] if (!grepl(pattern, name)) [18:02:24.705] next [18:02:24.705] invokeRestart(restart) [18:02:24.705] muffled <- TRUE [18:02:24.705] break [18:02:24.705] } [18:02:24.705] } [18:02:24.705] } [18:02:24.705] invisible(muffled) [18:02:24.705] } [18:02:24.705] muffleCondition(cond, pattern = "^muffle") [18:02:24.705] } [18:02:24.705] } [18:02:24.705] else { [18:02:24.705] if (TRUE) { [18:02:24.705] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.705] { [18:02:24.705] inherits <- base::inherits [18:02:24.705] invokeRestart <- base::invokeRestart [18:02:24.705] is.null <- base::is.null [18:02:24.705] muffled <- FALSE [18:02:24.705] if (inherits(cond, "message")) { [18:02:24.705] muffled <- grepl(pattern, "muffleMessage") [18:02:24.705] if (muffled) [18:02:24.705] invokeRestart("muffleMessage") [18:02:24.705] } [18:02:24.705] else if (inherits(cond, "warning")) { [18:02:24.705] muffled <- grepl(pattern, "muffleWarning") [18:02:24.705] if (muffled) [18:02:24.705] invokeRestart("muffleWarning") [18:02:24.705] } [18:02:24.705] else if (inherits(cond, "condition")) { [18:02:24.705] if (!is.null(pattern)) { [18:02:24.705] computeRestarts <- base::computeRestarts [18:02:24.705] grepl <- base::grepl [18:02:24.705] restarts <- computeRestarts(cond) [18:02:24.705] for (restart in restarts) { [18:02:24.705] name <- restart$name [18:02:24.705] if (is.null(name)) [18:02:24.705] next [18:02:24.705] if (!grepl(pattern, name)) [18:02:24.705] next [18:02:24.705] invokeRestart(restart) [18:02:24.705] muffled <- TRUE [18:02:24.705] break [18:02:24.705] } [18:02:24.705] } [18:02:24.705] } [18:02:24.705] invisible(muffled) [18:02:24.705] } [18:02:24.705] muffleCondition(cond, pattern = "^muffle") [18:02:24.705] } [18:02:24.705] } [18:02:24.705] } [18:02:24.705] })) [18:02:24.705] }, error = function(ex) { [18:02:24.705] base::structure(base::list(value = NULL, visible = NULL, [18:02:24.705] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.705] ...future.rng), started = ...future.startTime, [18:02:24.705] finished = Sys.time(), session_uuid = NA_character_, [18:02:24.705] version = "1.8"), class = "FutureResult") [18:02:24.705] }, finally = { [18:02:24.705] if (!identical(...future.workdir, getwd())) [18:02:24.705] setwd(...future.workdir) [18:02:24.705] { [18:02:24.705] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:24.705] ...future.oldOptions$nwarnings <- NULL [18:02:24.705] } [18:02:24.705] base::options(...future.oldOptions) [18:02:24.705] if (.Platform$OS.type == "windows") { [18:02:24.705] old_names <- names(...future.oldEnvVars) [18:02:24.705] envs <- base::Sys.getenv() [18:02:24.705] names <- names(envs) [18:02:24.705] common <- intersect(names, old_names) [18:02:24.705] added <- setdiff(names, old_names) [18:02:24.705] removed <- setdiff(old_names, names) [18:02:24.705] changed <- common[...future.oldEnvVars[common] != [18:02:24.705] envs[common]] [18:02:24.705] NAMES <- toupper(changed) [18:02:24.705] args <- list() [18:02:24.705] for (kk in seq_along(NAMES)) { [18:02:24.705] name <- changed[[kk]] [18:02:24.705] NAME <- NAMES[[kk]] [18:02:24.705] if (name != NAME && is.element(NAME, old_names)) [18:02:24.705] next [18:02:24.705] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.705] } [18:02:24.705] NAMES <- toupper(added) [18:02:24.705] for (kk in seq_along(NAMES)) { [18:02:24.705] name <- added[[kk]] [18:02:24.705] NAME <- NAMES[[kk]] [18:02:24.705] if (name != NAME && is.element(NAME, old_names)) [18:02:24.705] next [18:02:24.705] args[[name]] <- "" [18:02:24.705] } [18:02:24.705] NAMES <- toupper(removed) [18:02:24.705] for (kk in seq_along(NAMES)) { [18:02:24.705] name <- removed[[kk]] [18:02:24.705] NAME <- NAMES[[kk]] [18:02:24.705] if (name != NAME && is.element(NAME, old_names)) [18:02:24.705] next [18:02:24.705] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.705] } [18:02:24.705] if (length(args) > 0) [18:02:24.705] base::do.call(base::Sys.setenv, args = args) [18:02:24.705] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:24.705] } [18:02:24.705] else { [18:02:24.705] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:24.705] } [18:02:24.705] { [18:02:24.705] if (base::length(...future.futureOptionsAdded) > [18:02:24.705] 0L) { [18:02:24.705] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:24.705] base::names(opts) <- ...future.futureOptionsAdded [18:02:24.705] base::options(opts) [18:02:24.705] } [18:02:24.705] { [18:02:24.705] { [18:02:24.705] base::options(mc.cores = ...future.mc.cores.old) [18:02:24.705] NULL [18:02:24.705] } [18:02:24.705] options(future.plan = NULL) [18:02:24.705] if (is.na(NA_character_)) [18:02:24.705] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.705] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:24.705] future::plan(list(a = function (..., workers = availableCores(), [18:02:24.705] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.705] envir = parent.frame()) [18:02:24.705] { [18:02:24.705] if (is.function(workers)) [18:02:24.705] workers <- workers() [18:02:24.705] workers <- structure(as.integer(workers), [18:02:24.705] class = class(workers)) [18:02:24.705] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.705] workers >= 1) [18:02:24.705] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.705] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.705] } [18:02:24.705] future <- MultisessionFuture(..., workers = workers, [18:02:24.705] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.705] envir = envir) [18:02:24.705] if (!future$lazy) [18:02:24.705] future <- run(future) [18:02:24.705] invisible(future) [18:02:24.705] }, b = function (..., envir = parent.frame()) [18:02:24.705] { [18:02:24.705] future <- SequentialFuture(..., envir = envir) [18:02:24.705] if (!future$lazy) [18:02:24.705] future <- run(future) [18:02:24.705] invisible(future) [18:02:24.705] }), .cleanup = FALSE, .init = FALSE) [18:02:24.705] } [18:02:24.705] } [18:02:24.705] } [18:02:24.705] }) [18:02:24.705] if (TRUE) { [18:02:24.705] base::sink(type = "output", split = FALSE) [18:02:24.705] if (TRUE) { [18:02:24.705] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:24.705] } [18:02:24.705] else { [18:02:24.705] ...future.result["stdout"] <- base::list(NULL) [18:02:24.705] } [18:02:24.705] base::close(...future.stdout) [18:02:24.705] ...future.stdout <- NULL [18:02:24.705] } [18:02:24.705] ...future.result$conditions <- ...future.conditions [18:02:24.705] ...future.result$finished <- base::Sys.time() [18:02:24.705] ...future.result [18:02:24.705] } [18:02:24.711] Exporting 1 global objects (128 bytes) to cluster node #1 ... [18:02:24.711] Exporting 'data' (128 bytes) to cluster node #1 ... [18:02:24.712] Exporting 'data' (128 bytes) to cluster node #1 ... DONE [18:02:24.712] Exporting 1 global objects (128 bytes) to cluster node #1 ... DONE [18:02:24.713] MultisessionFuture started [18:02:24.713] - Launch lazy future ... done [18:02:24.713] run() for 'MultisessionFuture' ... done [18:02:24.713] result() for ClusterFuture ... [18:02:24.713] receiveMessageFromWorker() for ClusterFuture ... [18:02:24.714] - Validating connection of MultisessionFuture [18:02:24.741] - received message: FutureResult [18:02:24.742] - Received FutureResult [18:02:24.742] - Erased future from FutureRegistry [18:02:24.742] result() for ClusterFuture ... [18:02:24.742] - result already collected: FutureResult [18:02:24.742] result() for ClusterFuture ... done [18:02:24.744] receiveMessageFromWorker() for ClusterFuture ... done [18:02:24.744] result() for ClusterFuture ... done [18:02:24.744] result() for ClusterFuture ... [18:02:24.745] - result already collected: FutureResult [18:02:24.745] result() for ClusterFuture ... done - plan(list('multisession', 'sequential')) ... DONE - plan(list('multisession', 'multisession')) ... [18:02:24.745] plan(): Setting new future strategy stack: [18:02:24.745] List of future strategies: [18:02:24.745] 1. multisession: [18:02:24.745] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.745] - tweaked: FALSE [18:02:24.745] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.745] 2. multisession: [18:02:24.745] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.745] - tweaked: FALSE [18:02:24.745] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.746] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... [18:02:24.746] multisession: [18:02:24.746] - args: function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) [18:02:24.746] - tweaked: FALSE [18:02:24.746] - call: plan(list(a = strategy1, b = strategy2)) [18:02:24.749] getGlobalsAndPackages() ... [18:02:24.749] Not searching for globals [18:02:24.749] - globals: [0] [18:02:24.749] getGlobalsAndPackages() ... DONE [18:02:24.750] [local output] makeClusterPSOCK() ... [18:02:24.750] [local output] Workers: [n = 2] 'localhost', 'localhost' [18:02:24.753] [local output] Base port: 35694 [18:02:24.753] [local output] Getting setup options for 2 cluster nodes ... [18:02:24.753] [local output] - Node 1 of 2 ... [18:02:24.754] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:24.755] [local output] Rscript port: 35694 [18:02:24.756] [local output] - Node 2 of 2 ... [18:02:24.756] [local output] localMachine=TRUE => revtunnel=FALSE [18:02:24.757] [local output] Rscript port: 35694 [18:02:24.758] [local output] Getting setup options for 2 cluster nodes ... done [18:02:24.758] [local output] - Parallel setup requested for some PSOCK nodes [18:02:24.758] [local output] Setting up PSOCK nodes in parallel [18:02:24.759] List of 36 [18:02:24.759] $ worker : chr "localhost" [18:02:24.759] ..- attr(*, "localhost")= logi TRUE [18:02:24.759] $ master : chr "localhost" [18:02:24.759] $ port : int 35694 [18:02:24.759] $ connectTimeout : num 120 [18:02:24.759] $ timeout : num 120 [18:02:24.759] $ rscript : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\"" [18:02:24.759] $ homogeneous : logi TRUE [18:02:24.759] $ rscript_args : chr "--default-packages=datasets,utils,grDevices,graphics,stats,methods -e \"#label=nested_futures.R:189588:CRANWIN3"| __truncated__ [18:02:24.759] $ rscript_envs : NULL [18:02:24.759] $ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:24.759] $ rscript_startup : NULL [18:02:24.759] $ rscript_sh : chr "cmd" [18:02:24.759] $ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:24.759] $ methods : logi TRUE [18:02:24.759] $ socketOptions : chr "no-delay" [18:02:24.759] $ useXDR : logi FALSE [18:02:24.759] $ outfile : chr "/dev/null" [18:02:24.759] $ renice : int NA [18:02:24.759] $ rshcmd : NULL [18:02:24.759] $ user : chr(0) [18:02:24.759] $ revtunnel : logi FALSE [18:02:24.759] $ rshlogfile : NULL [18:02:24.759] $ rshopts : chr(0) [18:02:24.759] $ rank : int 1 [18:02:24.759] $ manual : logi FALSE [18:02:24.759] $ dryrun : logi FALSE [18:02:24.759] $ quiet : logi FALSE [18:02:24.759] $ setup_strategy : chr "parallel" [18:02:24.759] $ local_cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:24.759] $ pidfile : chr "D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e49419971e.pid" [18:02:24.759] $ rshcmd_label : NULL [18:02:24.759] $ rsh_call : NULL [18:02:24.759] $ cmd : chr "\"D:/RCompile/recent/R/bin/x64/Rscript\" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "| __truncated__ [18:02:24.759] $ localMachine : logi TRUE [18:02:24.759] $ make_fcn :function (worker = getOption2("parallelly.localhost.hostname", "localhost"), [18:02:24.759] master = NULL, port, connectTimeout = getOption2("parallelly.makeNodePSOCK.connectTimeout", [18:02:24.759] 2 * 60), timeout = getOption2("parallelly.makeNodePSOCK.timeout", [18:02:24.759] 30 * 24 * 60 * 60), rscript = NULL, homogeneous = NULL, rscript_args = NULL, [18:02:24.759] rscript_envs = NULL, rscript_libs = NULL, rscript_startup = NULL, rscript_sh = c("auto", [18:02:24.759] "cmd", "sh"), default_packages = c("datasets", "utils", "grDevices", [18:02:24.759] "graphics", "stats", if (methods) "methods"), methods = TRUE, socketOptions = getOption2("parallelly.makeNodePSOCK.socketOptions", [18:02:24.759] "no-delay"), useXDR = getOption2("parallelly.makeNodePSOCK.useXDR", [18:02:24.759] FALSE), outfile = "/dev/null", renice = NA_integer_, rshcmd = getOption2("parallelly.makeNodePSOCK.rshcmd", [18:02:24.759] NULL), user = NULL, revtunnel = NA, rshlogfile = NULL, rshopts = getOption2("parallelly.makeNodePSOCK.rshopts", [18:02:24.759] NULL), rank = 1L, manual = FALSE, dryrun = FALSE, quiet = FALSE, [18:02:24.759] setup_strategy = getOption2("parallelly.makeNodePSOCK.setup_strategy", [18:02:24.759] "parallel"), action = c("launch", "options"), verbose = FALSE) [18:02:24.759] $ arguments :List of 28 [18:02:24.759] ..$ worker : chr "localhost" [18:02:24.759] ..$ master : NULL [18:02:24.759] ..$ port : int 35694 [18:02:24.759] ..$ connectTimeout : num 120 [18:02:24.759] ..$ timeout : num 120 [18:02:24.759] ..$ rscript : NULL [18:02:24.759] ..$ homogeneous : NULL [18:02:24.759] ..$ rscript_args : NULL [18:02:24.759] ..$ rscript_envs : NULL [18:02:24.759] ..$ rscript_libs : chr [1:2] "D:/temp/Rtmp67Lu9b/RLIBS_19fe819742e2c" "D:/RCompile/recent/R/library" [18:02:24.759] ..$ rscript_startup : NULL [18:02:24.759] ..$ rscript_sh : chr [1:3] "auto" "cmd" "sh" [18:02:24.759] ..$ default_packages: chr [1:6] "datasets" "utils" "grDevices" "graphics" ... [18:02:24.759] ..$ methods : logi TRUE [18:02:24.759] ..$ socketOptions : chr "no-delay" [18:02:24.759] ..$ useXDR : logi FALSE [18:02:24.759] ..$ outfile : chr "/dev/null" [18:02:24.759] ..$ renice : int NA [18:02:24.759] ..$ rshcmd : NULL [18:02:24.759] ..$ user : NULL [18:02:24.759] ..$ revtunnel : logi NA [18:02:24.759] ..$ rshlogfile : NULL [18:02:24.759] ..$ rshopts : NULL [18:02:24.759] ..$ rank : int 1 [18:02:24.759] ..$ manual : logi FALSE [18:02:24.759] ..$ dryrun : logi FALSE [18:02:24.759] ..$ quiet : logi FALSE [18:02:24.759] ..$ setup_strategy : chr "parallel" [18:02:24.759] - attr(*, "class")= chr [1:2] "makeNodePSOCKOptions" "makeNodeOptions" [18:02:24.780] [local output] System call to launch all workers: [18:02:24.780] [local output] "D:/RCompile/recent/R/bin/x64/Rscript" --default-packages=datasets,utils,grDevices,graphics,stats,methods -e "#label=nested_futures.R:189588:CRANWIN3:CRAN" -e "try(suppressWarnings(cat(Sys.getpid(),file=\"D:/temp/Rtmp8c9NYS/worker.rank=1.parallelly.parent=189588.2e49419971e.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=35694 OUT=/dev/null TIMEOUT=120 XDR=FALSE SETUPTIMEOUT=120 SETUPSTRATEGY=parallel [18:02:24.780] [local output] Starting PSOCK main server [18:02:24.790] [local output] Workers launched [18:02:24.790] [local output] Waiting for workers to connect back [18:02:24.790] - [local output] 0 workers out of 2 ready [18:02:24.961] - [local output] 0 workers out of 2 ready [18:02:24.961] - [local output] 1 workers out of 2 ready [18:02:24.964] - [local output] 1 workers out of 2 ready [18:02:24.965] - [local output] 2 workers out of 2 ready [18:02:24.965] [local output] Launching of workers completed [18:02:24.965] [local output] Collecting session information from workers [18:02:24.966] [local output] - Worker #1 of 2 [18:02:24.967] [local output] - Worker #2 of 2 [18:02:24.967] [local output] makeClusterPSOCK() ... done [18:02:24.979] Packages needed by the future expression (n = 0): [18:02:24.979] Packages needed by future strategies (n = 1): 'future' [18:02:24.980] { [18:02:24.980] { [18:02:24.980] { [18:02:24.980] ...future.startTime <- base::Sys.time() [18:02:24.980] { [18:02:24.980] { [18:02:24.980] { [18:02:24.980] { [18:02:24.980] { [18:02:24.980] base::local({ [18:02:24.980] has_future <- base::requireNamespace("future", [18:02:24.980] quietly = TRUE) [18:02:24.980] if (has_future) { [18:02:24.980] ns <- base::getNamespace("future") [18:02:24.980] version <- ns[[".package"]][["version"]] [18:02:24.980] if (is.null(version)) [18:02:24.980] version <- utils::packageVersion("future") [18:02:24.980] } [18:02:24.980] else { [18:02:24.980] version <- NULL [18:02:24.980] } [18:02:24.980] if (!has_future || version < "1.8.0") { [18:02:24.980] info <- base::c(r_version = base::gsub("R version ", [18:02:24.980] "", base::R.version$version.string), [18:02:24.980] platform = base::sprintf("%s (%s-bit)", [18:02:24.980] base::R.version$platform, 8 * [18:02:24.980] base::.Machine$sizeof.pointer), [18:02:24.980] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:24.980] "release", "version")], collapse = " "), [18:02:24.980] hostname = base::Sys.info()[["nodename"]]) [18:02:24.980] info <- base::sprintf("%s: %s", base::names(info), [18:02:24.980] info) [18:02:24.980] info <- base::paste(info, collapse = "; ") [18:02:24.980] if (!has_future) { [18:02:24.980] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:24.980] info) [18:02:24.980] } [18:02:24.980] else { [18:02:24.980] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:24.980] info, version) [18:02:24.980] } [18:02:24.980] base::stop(msg) [18:02:24.980] } [18:02:24.980] }) [18:02:24.980] } [18:02:24.980] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:24.980] base::options(mc.cores = 1L) [18:02:24.980] } [18:02:24.980] base::local({ [18:02:24.980] for (pkg in "future") { [18:02:24.980] base::loadNamespace(pkg) [18:02:24.980] base::library(pkg, character.only = TRUE) [18:02:24.980] } [18:02:24.980] }) [18:02:24.980] } [18:02:24.980] options(future.plan = NULL) [18:02:24.980] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.980] future::plan(list(b = function (..., workers = availableCores(), [18:02:24.980] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.980] envir = parent.frame()) [18:02:24.980] { [18:02:24.980] if (is.function(workers)) [18:02:24.980] workers <- workers() [18:02:24.980] workers <- structure(as.integer(workers), [18:02:24.980] class = class(workers)) [18:02:24.980] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.980] workers >= 1) [18:02:24.980] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.980] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.980] } [18:02:24.980] future <- MultisessionFuture(..., workers = workers, [18:02:24.980] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.980] envir = envir) [18:02:24.980] if (!future$lazy) [18:02:24.980] future <- run(future) [18:02:24.980] invisible(future) [18:02:24.980] }), .cleanup = FALSE, .init = FALSE) [18:02:24.980] } [18:02:24.980] ...future.workdir <- getwd() [18:02:24.980] } [18:02:24.980] ...future.oldOptions <- base::as.list(base::.Options) [18:02:24.980] ...future.oldEnvVars <- base::Sys.getenv() [18:02:24.980] } [18:02:24.980] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:24.980] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:24.980] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:24.980] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:24.980] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:24.980] future.stdout.windows.reencode = NULL, width = 80L) [18:02:24.980] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:24.980] base::names(...future.oldOptions)) [18:02:24.980] } [18:02:24.980] if (FALSE) { [18:02:24.980] } [18:02:24.980] else { [18:02:24.980] if (TRUE) { [18:02:24.980] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:24.980] open = "w") [18:02:24.980] } [18:02:24.980] else { [18:02:24.980] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:24.980] windows = "NUL", "/dev/null"), open = "w") [18:02:24.980] } [18:02:24.980] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:24.980] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:24.980] base::sink(type = "output", split = FALSE) [18:02:24.980] base::close(...future.stdout) [18:02:24.980] }, add = TRUE) [18:02:24.980] } [18:02:24.980] ...future.frame <- base::sys.nframe() [18:02:24.980] ...future.conditions <- base::list() [18:02:24.980] ...future.rng <- base::globalenv()$.Random.seed [18:02:24.980] if (FALSE) { [18:02:24.980] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:24.980] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:24.980] } [18:02:24.980] ...future.result <- base::tryCatch({ [18:02:24.980] base::withCallingHandlers({ [18:02:24.980] ...future.value <- base::withVisible(base::local({ [18:02:24.980] ...future.makeSendCondition <- local({ [18:02:24.980] sendCondition <- NULL [18:02:24.980] function(frame = 1L) { [18:02:24.980] if (is.function(sendCondition)) [18:02:24.980] return(sendCondition) [18:02:24.980] ns <- getNamespace("parallel") [18:02:24.980] if (exists("sendData", mode = "function", [18:02:24.980] envir = ns)) { [18:02:24.980] parallel_sendData <- get("sendData", mode = "function", [18:02:24.980] envir = ns) [18:02:24.980] envir <- sys.frame(frame) [18:02:24.980] master <- NULL [18:02:24.980] while (!identical(envir, .GlobalEnv) && [18:02:24.980] !identical(envir, emptyenv())) { [18:02:24.980] if (exists("master", mode = "list", envir = envir, [18:02:24.980] inherits = FALSE)) { [18:02:24.980] master <- get("master", mode = "list", [18:02:24.980] envir = envir, inherits = FALSE) [18:02:24.980] if (inherits(master, c("SOCKnode", [18:02:24.980] "SOCK0node"))) { [18:02:24.980] sendCondition <<- function(cond) { [18:02:24.980] data <- list(type = "VALUE", value = cond, [18:02:24.980] success = TRUE) [18:02:24.980] parallel_sendData(master, data) [18:02:24.980] } [18:02:24.980] return(sendCondition) [18:02:24.980] } [18:02:24.980] } [18:02:24.980] frame <- frame + 1L [18:02:24.980] envir <- sys.frame(frame) [18:02:24.980] } [18:02:24.980] } [18:02:24.980] sendCondition <<- function(cond) NULL [18:02:24.980] } [18:02:24.980] }) [18:02:24.980] withCallingHandlers({ [18:02:24.980] NA [18:02:24.980] }, immediateCondition = function(cond) { [18:02:24.980] sendCondition <- ...future.makeSendCondition() [18:02:24.980] sendCondition(cond) [18:02:24.980] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.980] { [18:02:24.980] inherits <- base::inherits [18:02:24.980] invokeRestart <- base::invokeRestart [18:02:24.980] is.null <- base::is.null [18:02:24.980] muffled <- FALSE [18:02:24.980] if (inherits(cond, "message")) { [18:02:24.980] muffled <- grepl(pattern, "muffleMessage") [18:02:24.980] if (muffled) [18:02:24.980] invokeRestart("muffleMessage") [18:02:24.980] } [18:02:24.980] else if (inherits(cond, "warning")) { [18:02:24.980] muffled <- grepl(pattern, "muffleWarning") [18:02:24.980] if (muffled) [18:02:24.980] invokeRestart("muffleWarning") [18:02:24.980] } [18:02:24.980] else if (inherits(cond, "condition")) { [18:02:24.980] if (!is.null(pattern)) { [18:02:24.980] computeRestarts <- base::computeRestarts [18:02:24.980] grepl <- base::grepl [18:02:24.980] restarts <- computeRestarts(cond) [18:02:24.980] for (restart in restarts) { [18:02:24.980] name <- restart$name [18:02:24.980] if (is.null(name)) [18:02:24.980] next [18:02:24.980] if (!grepl(pattern, name)) [18:02:24.980] next [18:02:24.980] invokeRestart(restart) [18:02:24.980] muffled <- TRUE [18:02:24.980] break [18:02:24.980] } [18:02:24.980] } [18:02:24.980] } [18:02:24.980] invisible(muffled) [18:02:24.980] } [18:02:24.980] muffleCondition(cond) [18:02:24.980] }) [18:02:24.980] })) [18:02:24.980] future::FutureResult(value = ...future.value$value, [18:02:24.980] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.980] ...future.rng), globalenv = if (FALSE) [18:02:24.980] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:24.980] ...future.globalenv.names)) [18:02:24.980] else NULL, started = ...future.startTime, version = "1.8") [18:02:24.980] }, condition = base::local({ [18:02:24.980] c <- base::c [18:02:24.980] inherits <- base::inherits [18:02:24.980] invokeRestart <- base::invokeRestart [18:02:24.980] length <- base::length [18:02:24.980] list <- base::list [18:02:24.980] seq.int <- base::seq.int [18:02:24.980] signalCondition <- base::signalCondition [18:02:24.980] sys.calls <- base::sys.calls [18:02:24.980] `[[` <- base::`[[` [18:02:24.980] `+` <- base::`+` [18:02:24.980] `<<-` <- base::`<<-` [18:02:24.980] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:24.980] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:24.980] 3L)] [18:02:24.980] } [18:02:24.980] function(cond) { [18:02:24.980] is_error <- inherits(cond, "error") [18:02:24.980] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:24.980] NULL) [18:02:24.980] if (is_error) { [18:02:24.980] sessionInformation <- function() { [18:02:24.980] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:24.980] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:24.980] search = base::search(), system = base::Sys.info()) [18:02:24.980] } [18:02:24.980] ...future.conditions[[length(...future.conditions) + [18:02:24.980] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:24.980] cond$call), session = sessionInformation(), [18:02:24.980] timestamp = base::Sys.time(), signaled = 0L) [18:02:24.980] signalCondition(cond) [18:02:24.980] } [18:02:24.980] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:24.980] "immediateCondition"))) { [18:02:24.980] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:24.980] ...future.conditions[[length(...future.conditions) + [18:02:24.980] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:24.980] if (TRUE && !signal) { [18:02:24.980] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.980] { [18:02:24.980] inherits <- base::inherits [18:02:24.980] invokeRestart <- base::invokeRestart [18:02:24.980] is.null <- base::is.null [18:02:24.980] muffled <- FALSE [18:02:24.980] if (inherits(cond, "message")) { [18:02:24.980] muffled <- grepl(pattern, "muffleMessage") [18:02:24.980] if (muffled) [18:02:24.980] invokeRestart("muffleMessage") [18:02:24.980] } [18:02:24.980] else if (inherits(cond, "warning")) { [18:02:24.980] muffled <- grepl(pattern, "muffleWarning") [18:02:24.980] if (muffled) [18:02:24.980] invokeRestart("muffleWarning") [18:02:24.980] } [18:02:24.980] else if (inherits(cond, "condition")) { [18:02:24.980] if (!is.null(pattern)) { [18:02:24.980] computeRestarts <- base::computeRestarts [18:02:24.980] grepl <- base::grepl [18:02:24.980] restarts <- computeRestarts(cond) [18:02:24.980] for (restart in restarts) { [18:02:24.980] name <- restart$name [18:02:24.980] if (is.null(name)) [18:02:24.980] next [18:02:24.980] if (!grepl(pattern, name)) [18:02:24.980] next [18:02:24.980] invokeRestart(restart) [18:02:24.980] muffled <- TRUE [18:02:24.980] break [18:02:24.980] } [18:02:24.980] } [18:02:24.980] } [18:02:24.980] invisible(muffled) [18:02:24.980] } [18:02:24.980] muffleCondition(cond, pattern = "^muffle") [18:02:24.980] } [18:02:24.980] } [18:02:24.980] else { [18:02:24.980] if (TRUE) { [18:02:24.980] muffleCondition <- function (cond, pattern = "^muffle") [18:02:24.980] { [18:02:24.980] inherits <- base::inherits [18:02:24.980] invokeRestart <- base::invokeRestart [18:02:24.980] is.null <- base::is.null [18:02:24.980] muffled <- FALSE [18:02:24.980] if (inherits(cond, "message")) { [18:02:24.980] muffled <- grepl(pattern, "muffleMessage") [18:02:24.980] if (muffled) [18:02:24.980] invokeRestart("muffleMessage") [18:02:24.980] } [18:02:24.980] else if (inherits(cond, "warning")) { [18:02:24.980] muffled <- grepl(pattern, "muffleWarning") [18:02:24.980] if (muffled) [18:02:24.980] invokeRestart("muffleWarning") [18:02:24.980] } [18:02:24.980] else if (inherits(cond, "condition")) { [18:02:24.980] if (!is.null(pattern)) { [18:02:24.980] computeRestarts <- base::computeRestarts [18:02:24.980] grepl <- base::grepl [18:02:24.980] restarts <- computeRestarts(cond) [18:02:24.980] for (restart in restarts) { [18:02:24.980] name <- restart$name [18:02:24.980] if (is.null(name)) [18:02:24.980] next [18:02:24.980] if (!grepl(pattern, name)) [18:02:24.980] next [18:02:24.980] invokeRestart(restart) [18:02:24.980] muffled <- TRUE [18:02:24.980] break [18:02:24.980] } [18:02:24.980] } [18:02:24.980] } [18:02:24.980] invisible(muffled) [18:02:24.980] } [18:02:24.980] muffleCondition(cond, pattern = "^muffle") [18:02:24.980] } [18:02:24.980] } [18:02:24.980] } [18:02:24.980] })) [18:02:24.980] }, error = function(ex) { [18:02:24.980] base::structure(base::list(value = NULL, visible = NULL, [18:02:24.980] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:24.980] ...future.rng), started = ...future.startTime, [18:02:24.980] finished = Sys.time(), session_uuid = NA_character_, [18:02:24.980] version = "1.8"), class = "FutureResult") [18:02:24.980] }, finally = { [18:02:24.980] if (!identical(...future.workdir, getwd())) [18:02:24.980] setwd(...future.workdir) [18:02:24.980] { [18:02:24.980] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:24.980] ...future.oldOptions$nwarnings <- NULL [18:02:24.980] } [18:02:24.980] base::options(...future.oldOptions) [18:02:24.980] if (.Platform$OS.type == "windows") { [18:02:24.980] old_names <- names(...future.oldEnvVars) [18:02:24.980] envs <- base::Sys.getenv() [18:02:24.980] names <- names(envs) [18:02:24.980] common <- intersect(names, old_names) [18:02:24.980] added <- setdiff(names, old_names) [18:02:24.980] removed <- setdiff(old_names, names) [18:02:24.980] changed <- common[...future.oldEnvVars[common] != [18:02:24.980] envs[common]] [18:02:24.980] NAMES <- toupper(changed) [18:02:24.980] args <- list() [18:02:24.980] for (kk in seq_along(NAMES)) { [18:02:24.980] name <- changed[[kk]] [18:02:24.980] NAME <- NAMES[[kk]] [18:02:24.980] if (name != NAME && is.element(NAME, old_names)) [18:02:24.980] next [18:02:24.980] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.980] } [18:02:24.980] NAMES <- toupper(added) [18:02:24.980] for (kk in seq_along(NAMES)) { [18:02:24.980] name <- added[[kk]] [18:02:24.980] NAME <- NAMES[[kk]] [18:02:24.980] if (name != NAME && is.element(NAME, old_names)) [18:02:24.980] next [18:02:24.980] args[[name]] <- "" [18:02:24.980] } [18:02:24.980] NAMES <- toupper(removed) [18:02:24.980] for (kk in seq_along(NAMES)) { [18:02:24.980] name <- removed[[kk]] [18:02:24.980] NAME <- NAMES[[kk]] [18:02:24.980] if (name != NAME && is.element(NAME, old_names)) [18:02:24.980] next [18:02:24.980] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:24.980] } [18:02:24.980] if (length(args) > 0) [18:02:24.980] base::do.call(base::Sys.setenv, args = args) [18:02:24.980] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:24.980] } [18:02:24.980] else { [18:02:24.980] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:24.980] } [18:02:24.980] { [18:02:24.980] if (base::length(...future.futureOptionsAdded) > [18:02:24.980] 0L) { [18:02:24.980] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:24.980] base::names(opts) <- ...future.futureOptionsAdded [18:02:24.980] base::options(opts) [18:02:24.980] } [18:02:24.980] { [18:02:24.980] { [18:02:24.980] base::options(mc.cores = ...future.mc.cores.old) [18:02:24.980] NULL [18:02:24.980] } [18:02:24.980] options(future.plan = NULL) [18:02:24.980] if (is.na(NA_character_)) [18:02:24.980] Sys.unsetenv("R_FUTURE_PLAN") [18:02:24.980] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:24.980] future::plan(list(a = function (..., workers = availableCores(), [18:02:24.980] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.980] envir = parent.frame()) [18:02:24.980] { [18:02:24.980] if (is.function(workers)) [18:02:24.980] workers <- workers() [18:02:24.980] workers <- structure(as.integer(workers), [18:02:24.980] class = class(workers)) [18:02:24.980] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.980] workers >= 1) [18:02:24.980] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.980] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.980] } [18:02:24.980] future <- MultisessionFuture(..., workers = workers, [18:02:24.980] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.980] envir = envir) [18:02:24.980] if (!future$lazy) [18:02:24.980] future <- run(future) [18:02:24.980] invisible(future) [18:02:24.980] }, b = function (..., workers = availableCores(), [18:02:24.980] lazy = FALSE, rscript_libs = .libPaths(), [18:02:24.980] envir = parent.frame()) [18:02:24.980] { [18:02:24.980] if (is.function(workers)) [18:02:24.980] workers <- workers() [18:02:24.980] workers <- structure(as.integer(workers), [18:02:24.980] class = class(workers)) [18:02:24.980] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:24.980] workers >= 1) [18:02:24.980] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:24.980] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:24.980] } [18:02:24.980] future <- MultisessionFuture(..., workers = workers, [18:02:24.980] lazy = lazy, rscript_libs = rscript_libs, [18:02:24.980] envir = envir) [18:02:24.980] if (!future$lazy) [18:02:24.980] future <- run(future) [18:02:24.980] invisible(future) [18:02:24.980] }), .cleanup = FALSE, .init = FALSE) [18:02:24.980] } [18:02:24.980] } [18:02:24.980] } [18:02:24.980] }) [18:02:24.980] if (TRUE) { [18:02:24.980] base::sink(type = "output", split = FALSE) [18:02:24.980] if (TRUE) { [18:02:24.980] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:24.980] } [18:02:24.980] else { [18:02:24.980] ...future.result["stdout"] <- base::list(NULL) [18:02:24.980] } [18:02:24.980] base::close(...future.stdout) [18:02:24.980] ...future.stdout <- NULL [18:02:24.980] } [18:02:24.980] ...future.result$conditions <- ...future.conditions [18:02:24.980] ...future.result$finished <- base::Sys.time() [18:02:24.980] ...future.result [18:02:24.980] } [18:02:25.065] MultisessionFuture started [18:02:25.065] result() for ClusterFuture ... [18:02:25.065] receiveMessageFromWorker() for ClusterFuture ... [18:02:25.065] - Validating connection of MultisessionFuture [18:02:25.135] - received message: FutureResult [18:02:25.135] - Received FutureResult [18:02:25.135] - Erased future from FutureRegistry [18:02:25.135] result() for ClusterFuture ... [18:02:25.136] - result already collected: FutureResult [18:02:25.136] result() for ClusterFuture ... done [18:02:25.136] receiveMessageFromWorker() for ClusterFuture ... done [18:02:25.136] result() for ClusterFuture ... done [18:02:25.136] result() for ClusterFuture ... [18:02:25.136] - result already collected: FutureResult [18:02:25.136] result() for ClusterFuture ... done [18:02:25.137] plan(): plan_init() of 'multisession', 'cluster', 'multiprocess', 'future', 'function' ... DONE [18:02:25.139] plan(): nbrOfWorkers() = 2 [18:02:25.140] getGlobalsAndPackages() ... [18:02:25.140] Searching for globals... [18:02:25.161] - globals found: [21] '{', '<-', 'unclass', '::', '[', 'nested', '-', 'stopifnot', '==', 'length', 'inherits', '[[', 'strategy2', 'for', 'seq_along', 'attr', 'attr<-', '[[<-', 'all.equal', 'list', '%<-%' [18:02:25.162] Searching for globals ... DONE [18:02:25.162] Resolving globals: FALSE [18:02:25.163] The total size of the 2 globals is 88.27 KiB (90384 bytes) [18:02:25.164] The total size of the 2 globals exported for future expression ('{; a <- 1L; plan_a <- unclass(future::plan("list")); nested_a <- nested[-1]; stopifnot(length(nested_a) == 1L, length(plan_a) == 1L, inherits(plan_a[[1]],; "future"), inherits(future::plan("next"), strategy2)); ...; }; y; }') is 88.27 KiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There are two globals: 'nested' (88.15 KiB of class 'list') and 'strategy2' (120 bytes of class 'character') [18:02:25.164] - globals: [2] 'nested', 'strategy2' [18:02:25.164] - packages: [1] 'future' [18:02:25.164] getGlobalsAndPackages() ... DONE [18:02:25.165] run() for 'Future' ... [18:02:25.165] - state: 'created' [18:02:25.165] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:25.179] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:25.179] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:25.180] - Field: 'node' [18:02:25.180] - Field: 'label' [18:02:25.180] - Field: 'local' [18:02:25.180] - Field: 'owner' [18:02:25.180] - Field: 'envir' [18:02:25.180] - Field: 'workers' [18:02:25.181] - Field: 'packages' [18:02:25.181] - Field: 'gc' [18:02:25.181] - Field: 'conditions' [18:02:25.181] - Field: 'persistent' [18:02:25.181] - Field: 'expr' [18:02:25.182] - Field: 'uuid' [18:02:25.182] - Field: 'seed' [18:02:25.182] - Field: 'version' [18:02:25.182] - Field: 'result' [18:02:25.182] - Field: 'asynchronous' [18:02:25.182] - Field: 'calls' [18:02:25.183] - Field: 'globals' [18:02:25.183] - Field: 'stdout' [18:02:25.183] - Field: 'earlySignal' [18:02:25.183] - Field: 'lazy' [18:02:25.183] - Field: 'state' [18:02:25.184] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:25.184] - Launch lazy future ... [18:02:25.184] Packages needed by the future expression (n = 1): 'future' [18:02:25.184] Packages needed by future strategies (n = 1): 'future' [18:02:25.185] { [18:02:25.185] { [18:02:25.185] { [18:02:25.185] ...future.startTime <- base::Sys.time() [18:02:25.185] { [18:02:25.185] { [18:02:25.185] { [18:02:25.185] { [18:02:25.185] { [18:02:25.185] base::local({ [18:02:25.185] has_future <- base::requireNamespace("future", [18:02:25.185] quietly = TRUE) [18:02:25.185] if (has_future) { [18:02:25.185] ns <- base::getNamespace("future") [18:02:25.185] version <- ns[[".package"]][["version"]] [18:02:25.185] if (is.null(version)) [18:02:25.185] version <- utils::packageVersion("future") [18:02:25.185] } [18:02:25.185] else { [18:02:25.185] version <- NULL [18:02:25.185] } [18:02:25.185] if (!has_future || version < "1.8.0") { [18:02:25.185] info <- base::c(r_version = base::gsub("R version ", [18:02:25.185] "", base::R.version$version.string), [18:02:25.185] platform = base::sprintf("%s (%s-bit)", [18:02:25.185] base::R.version$platform, 8 * [18:02:25.185] base::.Machine$sizeof.pointer), [18:02:25.185] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:25.185] "release", "version")], collapse = " "), [18:02:25.185] hostname = base::Sys.info()[["nodename"]]) [18:02:25.185] info <- base::sprintf("%s: %s", base::names(info), [18:02:25.185] info) [18:02:25.185] info <- base::paste(info, collapse = "; ") [18:02:25.185] if (!has_future) { [18:02:25.185] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:25.185] info) [18:02:25.185] } [18:02:25.185] else { [18:02:25.185] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:25.185] info, version) [18:02:25.185] } [18:02:25.185] base::stop(msg) [18:02:25.185] } [18:02:25.185] }) [18:02:25.185] } [18:02:25.185] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:25.185] base::options(mc.cores = 1L) [18:02:25.185] } [18:02:25.185] base::local({ [18:02:25.185] for (pkg in "future") { [18:02:25.185] base::loadNamespace(pkg) [18:02:25.185] base::library(pkg, character.only = TRUE) [18:02:25.185] } [18:02:25.185] }) [18:02:25.185] } [18:02:25.185] options(future.plan = NULL) [18:02:25.185] Sys.unsetenv("R_FUTURE_PLAN") [18:02:25.185] future::plan(list(b = function (..., workers = availableCores(), [18:02:25.185] lazy = FALSE, rscript_libs = .libPaths(), [18:02:25.185] envir = parent.frame()) [18:02:25.185] { [18:02:25.185] if (is.function(workers)) [18:02:25.185] workers <- workers() [18:02:25.185] workers <- structure(as.integer(workers), [18:02:25.185] class = class(workers)) [18:02:25.185] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:25.185] workers >= 1) [18:02:25.185] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:25.185] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:25.185] } [18:02:25.185] future <- MultisessionFuture(..., workers = workers, [18:02:25.185] lazy = lazy, rscript_libs = rscript_libs, [18:02:25.185] envir = envir) [18:02:25.185] if (!future$lazy) [18:02:25.185] future <- run(future) [18:02:25.185] invisible(future) [18:02:25.185] }), .cleanup = FALSE, .init = FALSE) [18:02:25.185] } [18:02:25.185] ...future.workdir <- getwd() [18:02:25.185] } [18:02:25.185] ...future.oldOptions <- base::as.list(base::.Options) [18:02:25.185] ...future.oldEnvVars <- base::Sys.getenv() [18:02:25.185] } [18:02:25.185] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:25.185] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:25.185] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:25.185] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:25.185] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:25.185] future.stdout.windows.reencode = NULL, width = 80L) [18:02:25.185] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:25.185] base::names(...future.oldOptions)) [18:02:25.185] } [18:02:25.185] if (FALSE) { [18:02:25.185] } [18:02:25.185] else { [18:02:25.185] if (TRUE) { [18:02:25.185] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:25.185] open = "w") [18:02:25.185] } [18:02:25.185] else { [18:02:25.185] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:25.185] windows = "NUL", "/dev/null"), open = "w") [18:02:25.185] } [18:02:25.185] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:25.185] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:25.185] base::sink(type = "output", split = FALSE) [18:02:25.185] base::close(...future.stdout) [18:02:25.185] }, add = TRUE) [18:02:25.185] } [18:02:25.185] ...future.frame <- base::sys.nframe() [18:02:25.185] ...future.conditions <- base::list() [18:02:25.185] ...future.rng <- base::globalenv()$.Random.seed [18:02:25.185] if (FALSE) { [18:02:25.185] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:25.185] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:25.185] } [18:02:25.185] ...future.result <- base::tryCatch({ [18:02:25.185] base::withCallingHandlers({ [18:02:25.185] ...future.value <- base::withVisible(base::local({ [18:02:25.185] ...future.makeSendCondition <- local({ [18:02:25.185] sendCondition <- NULL [18:02:25.185] function(frame = 1L) { [18:02:25.185] if (is.function(sendCondition)) [18:02:25.185] return(sendCondition) [18:02:25.185] ns <- getNamespace("parallel") [18:02:25.185] if (exists("sendData", mode = "function", [18:02:25.185] envir = ns)) { [18:02:25.185] parallel_sendData <- get("sendData", mode = "function", [18:02:25.185] envir = ns) [18:02:25.185] envir <- sys.frame(frame) [18:02:25.185] master <- NULL [18:02:25.185] while (!identical(envir, .GlobalEnv) && [18:02:25.185] !identical(envir, emptyenv())) { [18:02:25.185] if (exists("master", mode = "list", envir = envir, [18:02:25.185] inherits = FALSE)) { [18:02:25.185] master <- get("master", mode = "list", [18:02:25.185] envir = envir, inherits = FALSE) [18:02:25.185] if (inherits(master, c("SOCKnode", [18:02:25.185] "SOCK0node"))) { [18:02:25.185] sendCondition <<- function(cond) { [18:02:25.185] data <- list(type = "VALUE", value = cond, [18:02:25.185] success = TRUE) [18:02:25.185] parallel_sendData(master, data) [18:02:25.185] } [18:02:25.185] return(sendCondition) [18:02:25.185] } [18:02:25.185] } [18:02:25.185] frame <- frame + 1L [18:02:25.185] envir <- sys.frame(frame) [18:02:25.185] } [18:02:25.185] } [18:02:25.185] sendCondition <<- function(cond) NULL [18:02:25.185] } [18:02:25.185] }) [18:02:25.185] withCallingHandlers({ [18:02:25.185] { [18:02:25.185] a <- 1L [18:02:25.185] plan_a <- unclass(future::plan("list")) [18:02:25.185] nested_a <- nested[-1] [18:02:25.185] stopifnot(length(nested_a) == 1L, length(plan_a) == [18:02:25.185] 1L, inherits(plan_a[[1]], "future"), inherits(future::plan("next"), [18:02:25.185] strategy2)) [18:02:25.185] for (kk in seq_along(plan_a)) attr(plan_a[[kk]], [18:02:25.185] "init") <- NULL [18:02:25.185] for (kk in seq_along(nested_a)) attr(nested_a[[kk]], [18:02:25.185] "init") <- NULL [18:02:25.185] stopifnot(all.equal(plan_a, nested_a)) [18:02:25.185] y %<-% { [18:02:25.185] b <- 2L [18:02:25.185] plan_b <- future::plan("list") [18:02:25.185] nested_b <- nested_a[-1] [18:02:25.185] stopifnot(length(nested_b) == 0L, length(plan_b) == [18:02:25.185] 1L, inherits(plan_b[[1]], "future"), [18:02:25.185] inherits(future::plan("next"), "sequential")) [18:02:25.185] list(a = a, nested_a = nested_a, plan_a = plan_a, [18:02:25.185] b = b, nested_b = nested_b, plan_b = plan_b) [18:02:25.185] } [18:02:25.185] y [18:02:25.185] } [18:02:25.185] }, immediateCondition = function(cond) { [18:02:25.185] sendCondition <- ...future.makeSendCondition() [18:02:25.185] sendCondition(cond) [18:02:25.185] muffleCondition <- function (cond, pattern = "^muffle") [18:02:25.185] { [18:02:25.185] inherits <- base::inherits [18:02:25.185] invokeRestart <- base::invokeRestart [18:02:25.185] is.null <- base::is.null [18:02:25.185] muffled <- FALSE [18:02:25.185] if (inherits(cond, "message")) { [18:02:25.185] muffled <- grepl(pattern, "muffleMessage") [18:02:25.185] if (muffled) [18:02:25.185] invokeRestart("muffleMessage") [18:02:25.185] } [18:02:25.185] else if (inherits(cond, "warning")) { [18:02:25.185] muffled <- grepl(pattern, "muffleWarning") [18:02:25.185] if (muffled) [18:02:25.185] invokeRestart("muffleWarning") [18:02:25.185] } [18:02:25.185] else if (inherits(cond, "condition")) { [18:02:25.185] if (!is.null(pattern)) { [18:02:25.185] computeRestarts <- base::computeRestarts [18:02:25.185] grepl <- base::grepl [18:02:25.185] restarts <- computeRestarts(cond) [18:02:25.185] for (restart in restarts) { [18:02:25.185] name <- restart$name [18:02:25.185] if (is.null(name)) [18:02:25.185] next [18:02:25.185] if (!grepl(pattern, name)) [18:02:25.185] next [18:02:25.185] invokeRestart(restart) [18:02:25.185] muffled <- TRUE [18:02:25.185] break [18:02:25.185] } [18:02:25.185] } [18:02:25.185] } [18:02:25.185] invisible(muffled) [18:02:25.185] } [18:02:25.185] muffleCondition(cond) [18:02:25.185] }) [18:02:25.185] })) [18:02:25.185] future::FutureResult(value = ...future.value$value, [18:02:25.185] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:25.185] ...future.rng), globalenv = if (FALSE) [18:02:25.185] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:25.185] ...future.globalenv.names)) [18:02:25.185] else NULL, started = ...future.startTime, version = "1.8") [18:02:25.185] }, condition = base::local({ [18:02:25.185] c <- base::c [18:02:25.185] inherits <- base::inherits [18:02:25.185] invokeRestart <- base::invokeRestart [18:02:25.185] length <- base::length [18:02:25.185] list <- base::list [18:02:25.185] seq.int <- base::seq.int [18:02:25.185] signalCondition <- base::signalCondition [18:02:25.185] sys.calls <- base::sys.calls [18:02:25.185] `[[` <- base::`[[` [18:02:25.185] `+` <- base::`+` [18:02:25.185] `<<-` <- base::`<<-` [18:02:25.185] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:25.185] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:25.185] 3L)] [18:02:25.185] } [18:02:25.185] function(cond) { [18:02:25.185] is_error <- inherits(cond, "error") [18:02:25.185] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:25.185] NULL) [18:02:25.185] if (is_error) { [18:02:25.185] sessionInformation <- function() { [18:02:25.185] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:25.185] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:25.185] search = base::search(), system = base::Sys.info()) [18:02:25.185] } [18:02:25.185] ...future.conditions[[length(...future.conditions) + [18:02:25.185] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:25.185] cond$call), session = sessionInformation(), [18:02:25.185] timestamp = base::Sys.time(), signaled = 0L) [18:02:25.185] signalCondition(cond) [18:02:25.185] } [18:02:25.185] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:25.185] "immediateCondition"))) { [18:02:25.185] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:25.185] ...future.conditions[[length(...future.conditions) + [18:02:25.185] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:25.185] if (TRUE && !signal) { [18:02:25.185] muffleCondition <- function (cond, pattern = "^muffle") [18:02:25.185] { [18:02:25.185] inherits <- base::inherits [18:02:25.185] invokeRestart <- base::invokeRestart [18:02:25.185] is.null <- base::is.null [18:02:25.185] muffled <- FALSE [18:02:25.185] if (inherits(cond, "message")) { [18:02:25.185] muffled <- grepl(pattern, "muffleMessage") [18:02:25.185] if (muffled) [18:02:25.185] invokeRestart("muffleMessage") [18:02:25.185] } [18:02:25.185] else if (inherits(cond, "warning")) { [18:02:25.185] muffled <- grepl(pattern, "muffleWarning") [18:02:25.185] if (muffled) [18:02:25.185] invokeRestart("muffleWarning") [18:02:25.185] } [18:02:25.185] else if (inherits(cond, "condition")) { [18:02:25.185] if (!is.null(pattern)) { [18:02:25.185] computeRestarts <- base::computeRestarts [18:02:25.185] grepl <- base::grepl [18:02:25.185] restarts <- computeRestarts(cond) [18:02:25.185] for (restart in restarts) { [18:02:25.185] name <- restart$name [18:02:25.185] if (is.null(name)) [18:02:25.185] next [18:02:25.185] if (!grepl(pattern, name)) [18:02:25.185] next [18:02:25.185] invokeRestart(restart) [18:02:25.185] muffled <- TRUE [18:02:25.185] break [18:02:25.185] } [18:02:25.185] } [18:02:25.185] } [18:02:25.185] invisible(muffled) [18:02:25.185] } [18:02:25.185] muffleCondition(cond, pattern = "^muffle") [18:02:25.185] } [18:02:25.185] } [18:02:25.185] else { [18:02:25.185] if (TRUE) { [18:02:25.185] muffleCondition <- function (cond, pattern = "^muffle") [18:02:25.185] { [18:02:25.185] inherits <- base::inherits [18:02:25.185] invokeRestart <- base::invokeRestart [18:02:25.185] is.null <- base::is.null [18:02:25.185] muffled <- FALSE [18:02:25.185] if (inherits(cond, "message")) { [18:02:25.185] muffled <- grepl(pattern, "muffleMessage") [18:02:25.185] if (muffled) [18:02:25.185] invokeRestart("muffleMessage") [18:02:25.185] } [18:02:25.185] else if (inherits(cond, "warning")) { [18:02:25.185] muffled <- grepl(pattern, "muffleWarning") [18:02:25.185] if (muffled) [18:02:25.185] invokeRestart("muffleWarning") [18:02:25.185] } [18:02:25.185] else if (inherits(cond, "condition")) { [18:02:25.185] if (!is.null(pattern)) { [18:02:25.185] computeRestarts <- base::computeRestarts [18:02:25.185] grepl <- base::grepl [18:02:25.185] restarts <- computeRestarts(cond) [18:02:25.185] for (restart in restarts) { [18:02:25.185] name <- restart$name [18:02:25.185] if (is.null(name)) [18:02:25.185] next [18:02:25.185] if (!grepl(pattern, name)) [18:02:25.185] next [18:02:25.185] invokeRestart(restart) [18:02:25.185] muffled <- TRUE [18:02:25.185] break [18:02:25.185] } [18:02:25.185] } [18:02:25.185] } [18:02:25.185] invisible(muffled) [18:02:25.185] } [18:02:25.185] muffleCondition(cond, pattern = "^muffle") [18:02:25.185] } [18:02:25.185] } [18:02:25.185] } [18:02:25.185] })) [18:02:25.185] }, error = function(ex) { [18:02:25.185] base::structure(base::list(value = NULL, visible = NULL, [18:02:25.185] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:25.185] ...future.rng), started = ...future.startTime, [18:02:25.185] finished = Sys.time(), session_uuid = NA_character_, [18:02:25.185] version = "1.8"), class = "FutureResult") [18:02:25.185] }, finally = { [18:02:25.185] if (!identical(...future.workdir, getwd())) [18:02:25.185] setwd(...future.workdir) [18:02:25.185] { [18:02:25.185] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:25.185] ...future.oldOptions$nwarnings <- NULL [18:02:25.185] } [18:02:25.185] base::options(...future.oldOptions) [18:02:25.185] if (.Platform$OS.type == "windows") { [18:02:25.185] old_names <- names(...future.oldEnvVars) [18:02:25.185] envs <- base::Sys.getenv() [18:02:25.185] names <- names(envs) [18:02:25.185] common <- intersect(names, old_names) [18:02:25.185] added <- setdiff(names, old_names) [18:02:25.185] removed <- setdiff(old_names, names) [18:02:25.185] changed <- common[...future.oldEnvVars[common] != [18:02:25.185] envs[common]] [18:02:25.185] NAMES <- toupper(changed) [18:02:25.185] args <- list() [18:02:25.185] for (kk in seq_along(NAMES)) { [18:02:25.185] name <- changed[[kk]] [18:02:25.185] NAME <- NAMES[[kk]] [18:02:25.185] if (name != NAME && is.element(NAME, old_names)) [18:02:25.185] next [18:02:25.185] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:25.185] } [18:02:25.185] NAMES <- toupper(added) [18:02:25.185] for (kk in seq_along(NAMES)) { [18:02:25.185] name <- added[[kk]] [18:02:25.185] NAME <- NAMES[[kk]] [18:02:25.185] if (name != NAME && is.element(NAME, old_names)) [18:02:25.185] next [18:02:25.185] args[[name]] <- "" [18:02:25.185] } [18:02:25.185] NAMES <- toupper(removed) [18:02:25.185] for (kk in seq_along(NAMES)) { [18:02:25.185] name <- removed[[kk]] [18:02:25.185] NAME <- NAMES[[kk]] [18:02:25.185] if (name != NAME && is.element(NAME, old_names)) [18:02:25.185] next [18:02:25.185] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:25.185] } [18:02:25.185] if (length(args) > 0) [18:02:25.185] base::do.call(base::Sys.setenv, args = args) [18:02:25.185] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:25.185] } [18:02:25.185] else { [18:02:25.185] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:25.185] } [18:02:25.185] { [18:02:25.185] if (base::length(...future.futureOptionsAdded) > [18:02:25.185] 0L) { [18:02:25.185] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:25.185] base::names(opts) <- ...future.futureOptionsAdded [18:02:25.185] base::options(opts) [18:02:25.185] } [18:02:25.185] { [18:02:25.185] { [18:02:25.185] base::options(mc.cores = ...future.mc.cores.old) [18:02:25.185] NULL [18:02:25.185] } [18:02:25.185] options(future.plan = NULL) [18:02:25.185] if (is.na(NA_character_)) [18:02:25.185] Sys.unsetenv("R_FUTURE_PLAN") [18:02:25.185] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:25.185] future::plan(list(a = function (..., workers = availableCores(), [18:02:25.185] lazy = FALSE, rscript_libs = .libPaths(), [18:02:25.185] envir = parent.frame()) [18:02:25.185] { [18:02:25.185] if (is.function(workers)) [18:02:25.185] workers <- workers() [18:02:25.185] workers <- structure(as.integer(workers), [18:02:25.185] class = class(workers)) [18:02:25.185] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:25.185] workers >= 1) [18:02:25.185] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:25.185] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:25.185] } [18:02:25.185] future <- MultisessionFuture(..., workers = workers, [18:02:25.185] lazy = lazy, rscript_libs = rscript_libs, [18:02:25.185] envir = envir) [18:02:25.185] if (!future$lazy) [18:02:25.185] future <- run(future) [18:02:25.185] invisible(future) [18:02:25.185] }, b = function (..., workers = availableCores(), [18:02:25.185] lazy = FALSE, rscript_libs = .libPaths(), [18:02:25.185] envir = parent.frame()) [18:02:25.185] { [18:02:25.185] if (is.function(workers)) [18:02:25.185] workers <- workers() [18:02:25.185] workers <- structure(as.integer(workers), [18:02:25.185] class = class(workers)) [18:02:25.185] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:25.185] workers >= 1) [18:02:25.185] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:25.185] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:25.185] } [18:02:25.185] future <- MultisessionFuture(..., workers = workers, [18:02:25.185] lazy = lazy, rscript_libs = rscript_libs, [18:02:25.185] envir = envir) [18:02:25.185] if (!future$lazy) [18:02:25.185] future <- run(future) [18:02:25.185] invisible(future) [18:02:25.185] }), .cleanup = FALSE, .init = FALSE) [18:02:25.185] } [18:02:25.185] } [18:02:25.185] } [18:02:25.185] }) [18:02:25.185] if (TRUE) { [18:02:25.185] base::sink(type = "output", split = FALSE) [18:02:25.185] if (TRUE) { [18:02:25.185] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:25.185] } [18:02:25.185] else { [18:02:25.185] ...future.result["stdout"] <- base::list(NULL) [18:02:25.185] } [18:02:25.185] base::close(...future.stdout) [18:02:25.185] ...future.stdout <- NULL [18:02:25.185] } [18:02:25.185] ...future.result$conditions <- ...future.conditions [18:02:25.185] ...future.result$finished <- base::Sys.time() [18:02:25.185] ...future.result [18:02:25.185] } [18:02:25.192] Exporting 2 global objects (88.27 KiB) to cluster node #1 ... [18:02:25.192] Exporting 'nested' (88.15 KiB) to cluster node #1 ... [18:02:25.193] Exporting 'nested' (88.15 KiB) to cluster node #1 ... DONE [18:02:25.195] Exporting 'strategy2' (120 bytes) to cluster node #1 ... [18:02:25.195] Exporting 'strategy2' (120 bytes) to cluster node #1 ... DONE [18:02:25.196] Exporting 2 global objects (88.27 KiB) to cluster node #1 ... DONE [18:02:25.196] MultisessionFuture started [18:02:25.196] - Launch lazy future ... done [18:02:25.197] run() for 'MultisessionFuture' ... done [18:02:25.197] result() for ClusterFuture ... [18:02:25.197] receiveMessageFromWorker() for ClusterFuture ... [18:02:25.197] - Validating connection of MultisessionFuture [18:02:25.253] - received message: FutureResult [18:02:25.254] - Received FutureResult [18:02:25.254] - Erased future from FutureRegistry [18:02:25.254] result() for ClusterFuture ... [18:02:25.254] - result already collected: FutureResult [18:02:25.255] result() for ClusterFuture ... done [18:02:25.255] receiveMessageFromWorker() for ClusterFuture ... done [18:02:25.255] result() for ClusterFuture ... done [18:02:25.255] result() for ClusterFuture ... [18:02:25.255] - result already collected: FutureResult [18:02:25.256] result() for ClusterFuture ... done List of 6 $ a : int 1 $ nested_a:List of 1 ..$ b:function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) .. ..- attr(*, "class")= chr [1:5] "multisession" "cluster" "multiprocess" "future" ... .. ..- attr(*, "untweakable")= chr "persistent" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ plan_a :List of 1 ..$ b:function (..., workers = availableCores(), lazy = FALSE, rscript_libs = .libPaths(), envir = parent.frame()) .. ..- attr(*, "class")= chr [1:5] "multisession" "cluster" "multiprocess" "future" ... .. ..- attr(*, "untweakable")= chr "persistent" .. ..- attr(*, "call")= language plan(list(a = strategy1, b = strategy2)) $ b : int 2 $ nested_b: Named list() $ plan_b :List of 1 ..$ :function (..., envir = parent.frame()) .. ..- attr(*, "class")= chr [1:4] "sequential" "uniprocess" "future" "function" ..- attr(*, "class")= chr [1:2] "FutureStrategyList" "list" [18:02:25.265] getGlobalsAndPackages() ... [18:02:25.265] Searching for globals... [18:02:25.267] - globals found: [7] '{', 'value', 'future', 'subset', 'data', '==', 'a' [18:02:25.267] Searching for globals ... DONE [18:02:25.267] Resolving globals: FALSE [18:02:25.268] The total size of the 1 globals is 128 bytes (128 bytes) [18:02:25.269] The total size of the 1 globals exported for future expression ('{; value(future(subset(data, a == 2))); }') is 128 bytes.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). There is one global: 'data' (128 bytes of class 'list') [18:02:25.269] - globals: [1] 'data' [18:02:25.269] - packages: [1] 'future' [18:02:25.270] getGlobalsAndPackages() ... DONE [18:02:25.270] run() for 'Future' ... [18:02:25.270] - state: 'created' [18:02:25.271] - Future backend: 'FutureStrategy', 'multisession', 'cluster', 'multiprocess', 'future', 'function' [18:02:25.286] - Future class: 'MultisessionFuture', 'ClusterFuture', 'MultiprocessFuture', 'Future', 'environment' [18:02:25.286] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... [18:02:25.286] - Field: 'node' [18:02:25.287] - Field: 'label' [18:02:25.287] - Field: 'local' [18:02:25.287] - Field: 'owner' [18:02:25.287] - Field: 'envir' [18:02:25.288] - Field: 'workers' [18:02:25.288] - Field: 'packages' [18:02:25.288] - Field: 'gc' [18:02:25.288] - Field: 'conditions' [18:02:25.289] - Field: 'persistent' [18:02:25.289] - Field: 'expr' [18:02:25.289] - Field: 'uuid' [18:02:25.289] - Field: 'seed' [18:02:25.290] - Field: 'version' [18:02:25.290] - Field: 'result' [18:02:25.290] - Field: 'asynchronous' [18:02:25.290] - Field: 'calls' [18:02:25.291] - Field: 'globals' [18:02:25.291] - Field: 'stdout' [18:02:25.291] - Field: 'earlySignal' [18:02:25.291] - Field: 'lazy' [18:02:25.292] - Field: 'state' [18:02:25.292] - Copy elements of temporary 'MultisessionFuture' to final 'Future' object ... done [18:02:25.292] - Launch lazy future ... [18:02:25.293] Packages needed by the future expression (n = 1): 'future' [18:02:25.293] Packages needed by future strategies (n = 1): 'future' [18:02:25.294] { [18:02:25.294] { [18:02:25.294] { [18:02:25.294] ...future.startTime <- base::Sys.time() [18:02:25.294] { [18:02:25.294] { [18:02:25.294] { [18:02:25.294] { [18:02:25.294] { [18:02:25.294] base::local({ [18:02:25.294] has_future <- base::requireNamespace("future", [18:02:25.294] quietly = TRUE) [18:02:25.294] if (has_future) { [18:02:25.294] ns <- base::getNamespace("future") [18:02:25.294] version <- ns[[".package"]][["version"]] [18:02:25.294] if (is.null(version)) [18:02:25.294] version <- utils::packageVersion("future") [18:02:25.294] } [18:02:25.294] else { [18:02:25.294] version <- NULL [18:02:25.294] } [18:02:25.294] if (!has_future || version < "1.8.0") { [18:02:25.294] info <- base::c(r_version = base::gsub("R version ", [18:02:25.294] "", base::R.version$version.string), [18:02:25.294] platform = base::sprintf("%s (%s-bit)", [18:02:25.294] base::R.version$platform, 8 * [18:02:25.294] base::.Machine$sizeof.pointer), [18:02:25.294] os = base::paste(base::Sys.info()[base::c("sysname", [18:02:25.294] "release", "version")], collapse = " "), [18:02:25.294] hostname = base::Sys.info()[["nodename"]]) [18:02:25.294] info <- base::sprintf("%s: %s", base::names(info), [18:02:25.294] info) [18:02:25.294] info <- base::paste(info, collapse = "; ") [18:02:25.294] if (!has_future) { [18:02:25.294] msg <- base::sprintf("Package 'future' is not installed on worker (%s)", [18:02:25.294] info) [18:02:25.294] } [18:02:25.294] else { [18:02:25.294] msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", [18:02:25.294] info, version) [18:02:25.294] } [18:02:25.294] base::stop(msg) [18:02:25.294] } [18:02:25.294] }) [18:02:25.294] } [18:02:25.294] ...future.mc.cores.old <- base::getOption("mc.cores") [18:02:25.294] base::options(mc.cores = 1L) [18:02:25.294] } [18:02:25.294] base::local({ [18:02:25.294] for (pkg in "future") { [18:02:25.294] base::loadNamespace(pkg) [18:02:25.294] base::library(pkg, character.only = TRUE) [18:02:25.294] } [18:02:25.294] }) [18:02:25.294] } [18:02:25.294] options(future.plan = NULL) [18:02:25.294] Sys.unsetenv("R_FUTURE_PLAN") [18:02:25.294] future::plan(list(b = function (..., workers = availableCores(), [18:02:25.294] lazy = FALSE, rscript_libs = .libPaths(), [18:02:25.294] envir = parent.frame()) [18:02:25.294] { [18:02:25.294] if (is.function(workers)) [18:02:25.294] workers <- workers() [18:02:25.294] workers <- structure(as.integer(workers), [18:02:25.294] class = class(workers)) [18:02:25.294] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:25.294] workers >= 1) [18:02:25.294] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:25.294] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:25.294] } [18:02:25.294] future <- MultisessionFuture(..., workers = workers, [18:02:25.294] lazy = lazy, rscript_libs = rscript_libs, [18:02:25.294] envir = envir) [18:02:25.294] if (!future$lazy) [18:02:25.294] future <- run(future) [18:02:25.294] invisible(future) [18:02:25.294] }), .cleanup = FALSE, .init = FALSE) [18:02:25.294] } [18:02:25.294] ...future.workdir <- getwd() [18:02:25.294] } [18:02:25.294] ...future.oldOptions <- base::as.list(base::.Options) [18:02:25.294] ...future.oldEnvVars <- base::Sys.getenv() [18:02:25.294] } [18:02:25.294] base::options(future.startup.script = FALSE, future.globals.onMissing = NULL, [18:02:25.294] future.globals.maxSize = NULL, future.globals.method = NULL, [18:02:25.294] future.globals.onMissing = NULL, future.globals.onReference = NULL, [18:02:25.294] future.globals.resolve = NULL, future.resolve.recursive = NULL, [18:02:25.294] future.rng.onMisuse = NULL, future.rng.onMisuse.keepFuture = NULL, [18:02:25.294] future.stdout.windows.reencode = NULL, width = 80L) [18:02:25.294] ...future.futureOptionsAdded <- base::setdiff(base::names(base::.Options), [18:02:25.294] base::names(...future.oldOptions)) [18:02:25.294] } [18:02:25.294] if (FALSE) { [18:02:25.294] } [18:02:25.294] else { [18:02:25.294] if (TRUE) { [18:02:25.294] ...future.stdout <- base::rawConnection(base::raw(0L), [18:02:25.294] open = "w") [18:02:25.294] } [18:02:25.294] else { [18:02:25.294] ...future.stdout <- base::file(base::switch(.Platform$OS.type, [18:02:25.294] windows = "NUL", "/dev/null"), open = "w") [18:02:25.294] } [18:02:25.294] base::sink(...future.stdout, type = "output", split = FALSE) [18:02:25.294] base::on.exit(if (!base::is.null(...future.stdout)) { [18:02:25.294] base::sink(type = "output", split = FALSE) [18:02:25.294] base::close(...future.stdout) [18:02:25.294] }, add = TRUE) [18:02:25.294] } [18:02:25.294] ...future.frame <- base::sys.nframe() [18:02:25.294] ...future.conditions <- base::list() [18:02:25.294] ...future.rng <- base::globalenv()$.Random.seed [18:02:25.294] if (FALSE) { [18:02:25.294] ...future.globalenv.names <- c(base::names(base::.GlobalEnv), [18:02:25.294] "...future.value", "...future.globalenv.names", ".Random.seed") [18:02:25.294] } [18:02:25.294] ...future.result <- base::tryCatch({ [18:02:25.294] base::withCallingHandlers({ [18:02:25.294] ...future.value <- base::withVisible(base::local({ [18:02:25.294] ...future.makeSendCondition <- local({ [18:02:25.294] sendCondition <- NULL [18:02:25.294] function(frame = 1L) { [18:02:25.294] if (is.function(sendCondition)) [18:02:25.294] return(sendCondition) [18:02:25.294] ns <- getNamespace("parallel") [18:02:25.294] if (exists("sendData", mode = "function", [18:02:25.294] envir = ns)) { [18:02:25.294] parallel_sendData <- get("sendData", mode = "function", [18:02:25.294] envir = ns) [18:02:25.294] envir <- sys.frame(frame) [18:02:25.294] master <- NULL [18:02:25.294] while (!identical(envir, .GlobalEnv) && [18:02:25.294] !identical(envir, emptyenv())) { [18:02:25.294] if (exists("master", mode = "list", envir = envir, [18:02:25.294] inherits = FALSE)) { [18:02:25.294] master <- get("master", mode = "list", [18:02:25.294] envir = envir, inherits = FALSE) [18:02:25.294] if (inherits(master, c("SOCKnode", [18:02:25.294] "SOCK0node"))) { [18:02:25.294] sendCondition <<- function(cond) { [18:02:25.294] data <- list(type = "VALUE", value = cond, [18:02:25.294] success = TRUE) [18:02:25.294] parallel_sendData(master, data) [18:02:25.294] } [18:02:25.294] return(sendCondition) [18:02:25.294] } [18:02:25.294] } [18:02:25.294] frame <- frame + 1L [18:02:25.294] envir <- sys.frame(frame) [18:02:25.294] } [18:02:25.294] } [18:02:25.294] sendCondition <<- function(cond) NULL [18:02:25.294] } [18:02:25.294] }) [18:02:25.294] withCallingHandlers({ [18:02:25.294] { [18:02:25.294] value(future(subset(data, a == 2))) [18:02:25.294] } [18:02:25.294] }, immediateCondition = function(cond) { [18:02:25.294] sendCondition <- ...future.makeSendCondition() [18:02:25.294] sendCondition(cond) [18:02:25.294] muffleCondition <- function (cond, pattern = "^muffle") [18:02:25.294] { [18:02:25.294] inherits <- base::inherits [18:02:25.294] invokeRestart <- base::invokeRestart [18:02:25.294] is.null <- base::is.null [18:02:25.294] muffled <- FALSE [18:02:25.294] if (inherits(cond, "message")) { [18:02:25.294] muffled <- grepl(pattern, "muffleMessage") [18:02:25.294] if (muffled) [18:02:25.294] invokeRestart("muffleMessage") [18:02:25.294] } [18:02:25.294] else if (inherits(cond, "warning")) { [18:02:25.294] muffled <- grepl(pattern, "muffleWarning") [18:02:25.294] if (muffled) [18:02:25.294] invokeRestart("muffleWarning") [18:02:25.294] } [18:02:25.294] else if (inherits(cond, "condition")) { [18:02:25.294] if (!is.null(pattern)) { [18:02:25.294] computeRestarts <- base::computeRestarts [18:02:25.294] grepl <- base::grepl [18:02:25.294] restarts <- computeRestarts(cond) [18:02:25.294] for (restart in restarts) { [18:02:25.294] name <- restart$name [18:02:25.294] if (is.null(name)) [18:02:25.294] next [18:02:25.294] if (!grepl(pattern, name)) [18:02:25.294] next [18:02:25.294] invokeRestart(restart) [18:02:25.294] muffled <- TRUE [18:02:25.294] break [18:02:25.294] } [18:02:25.294] } [18:02:25.294] } [18:02:25.294] invisible(muffled) [18:02:25.294] } [18:02:25.294] muffleCondition(cond) [18:02:25.294] }) [18:02:25.294] })) [18:02:25.294] future::FutureResult(value = ...future.value$value, [18:02:25.294] visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, [18:02:25.294] ...future.rng), globalenv = if (FALSE) [18:02:25.294] list(added = base::setdiff(base::names(base::.GlobalEnv), [18:02:25.294] ...future.globalenv.names)) [18:02:25.294] else NULL, started = ...future.startTime, version = "1.8") [18:02:25.294] }, condition = base::local({ [18:02:25.294] c <- base::c [18:02:25.294] inherits <- base::inherits [18:02:25.294] invokeRestart <- base::invokeRestart [18:02:25.294] length <- base::length [18:02:25.294] list <- base::list [18:02:25.294] seq.int <- base::seq.int [18:02:25.294] signalCondition <- base::signalCondition [18:02:25.294] sys.calls <- base::sys.calls [18:02:25.294] `[[` <- base::`[[` [18:02:25.294] `+` <- base::`+` [18:02:25.294] `<<-` <- base::`<<-` [18:02:25.294] sysCalls <- function(calls = sys.calls(), from = 1L) { [18:02:25.294] calls[seq.int(from = from + 12L, to = length(calls) - [18:02:25.294] 3L)] [18:02:25.294] } [18:02:25.294] function(cond) { [18:02:25.294] is_error <- inherits(cond, "error") [18:02:25.294] ignore <- !is_error && !is.null(NULL) && inherits(cond, [18:02:25.294] NULL) [18:02:25.294] if (is_error) { [18:02:25.294] sessionInformation <- function() { [18:02:25.294] list(r = base::R.Version(), locale = base::Sys.getlocale(), [18:02:25.294] rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), [18:02:25.294] search = base::search(), system = base::Sys.info()) [18:02:25.294] } [18:02:25.294] ...future.conditions[[length(...future.conditions) + [18:02:25.294] 1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), [18:02:25.294] cond$call), session = sessionInformation(), [18:02:25.294] timestamp = base::Sys.time(), signaled = 0L) [18:02:25.294] signalCondition(cond) [18:02:25.294] } [18:02:25.294] else if (!ignore && TRUE && inherits(cond, c("condition", [18:02:25.294] "immediateCondition"))) { [18:02:25.294] signal <- TRUE && inherits(cond, "immediateCondition") [18:02:25.294] ...future.conditions[[length(...future.conditions) + [18:02:25.294] 1L]] <<- list(condition = cond, signaled = base::as.integer(signal)) [18:02:25.294] if (TRUE && !signal) { [18:02:25.294] muffleCondition <- function (cond, pattern = "^muffle") [18:02:25.294] { [18:02:25.294] inherits <- base::inherits [18:02:25.294] invokeRestart <- base::invokeRestart [18:02:25.294] is.null <- base::is.null [18:02:25.294] muffled <- FALSE [18:02:25.294] if (inherits(cond, "message")) { [18:02:25.294] muffled <- grepl(pattern, "muffleMessage") [18:02:25.294] if (muffled) [18:02:25.294] invokeRestart("muffleMessage") [18:02:25.294] } [18:02:25.294] else if (inherits(cond, "warning")) { [18:02:25.294] muffled <- grepl(pattern, "muffleWarning") [18:02:25.294] if (muffled) [18:02:25.294] invokeRestart("muffleWarning") [18:02:25.294] } [18:02:25.294] else if (inherits(cond, "condition")) { [18:02:25.294] if (!is.null(pattern)) { [18:02:25.294] computeRestarts <- base::computeRestarts [18:02:25.294] grepl <- base::grepl [18:02:25.294] restarts <- computeRestarts(cond) [18:02:25.294] for (restart in restarts) { [18:02:25.294] name <- restart$name [18:02:25.294] if (is.null(name)) [18:02:25.294] next [18:02:25.294] if (!grepl(pattern, name)) [18:02:25.294] next [18:02:25.294] invokeRestart(restart) [18:02:25.294] muffled <- TRUE [18:02:25.294] break [18:02:25.294] } [18:02:25.294] } [18:02:25.294] } [18:02:25.294] invisible(muffled) [18:02:25.294] } [18:02:25.294] muffleCondition(cond, pattern = "^muffle") [18:02:25.294] } [18:02:25.294] } [18:02:25.294] else { [18:02:25.294] if (TRUE) { [18:02:25.294] muffleCondition <- function (cond, pattern = "^muffle") [18:02:25.294] { [18:02:25.294] inherits <- base::inherits [18:02:25.294] invokeRestart <- base::invokeRestart [18:02:25.294] is.null <- base::is.null [18:02:25.294] muffled <- FALSE [18:02:25.294] if (inherits(cond, "message")) { [18:02:25.294] muffled <- grepl(pattern, "muffleMessage") [18:02:25.294] if (muffled) [18:02:25.294] invokeRestart("muffleMessage") [18:02:25.294] } [18:02:25.294] else if (inherits(cond, "warning")) { [18:02:25.294] muffled <- grepl(pattern, "muffleWarning") [18:02:25.294] if (muffled) [18:02:25.294] invokeRestart("muffleWarning") [18:02:25.294] } [18:02:25.294] else if (inherits(cond, "condition")) { [18:02:25.294] if (!is.null(pattern)) { [18:02:25.294] computeRestarts <- base::computeRestarts [18:02:25.294] grepl <- base::grepl [18:02:25.294] restarts <- computeRestarts(cond) [18:02:25.294] for (restart in restarts) { [18:02:25.294] name <- restart$name [18:02:25.294] if (is.null(name)) [18:02:25.294] next [18:02:25.294] if (!grepl(pattern, name)) [18:02:25.294] next [18:02:25.294] invokeRestart(restart) [18:02:25.294] muffled <- TRUE [18:02:25.294] break [18:02:25.294] } [18:02:25.294] } [18:02:25.294] } [18:02:25.294] invisible(muffled) [18:02:25.294] } [18:02:25.294] muffleCondition(cond, pattern = "^muffle") [18:02:25.294] } [18:02:25.294] } [18:02:25.294] } [18:02:25.294] })) [18:02:25.294] }, error = function(ex) { [18:02:25.294] base::structure(base::list(value = NULL, visible = NULL, [18:02:25.294] conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, [18:02:25.294] ...future.rng), started = ...future.startTime, [18:02:25.294] finished = Sys.time(), session_uuid = NA_character_, [18:02:25.294] version = "1.8"), class = "FutureResult") [18:02:25.294] }, finally = { [18:02:25.294] if (!identical(...future.workdir, getwd())) [18:02:25.294] setwd(...future.workdir) [18:02:25.294] { [18:02:25.294] if (identical(getOption("nwarnings"), ...future.oldOptions$nwarnings)) { [18:02:25.294] ...future.oldOptions$nwarnings <- NULL [18:02:25.294] } [18:02:25.294] base::options(...future.oldOptions) [18:02:25.294] if (.Platform$OS.type == "windows") { [18:02:25.294] old_names <- names(...future.oldEnvVars) [18:02:25.294] envs <- base::Sys.getenv() [18:02:25.294] names <- names(envs) [18:02:25.294] common <- intersect(names, old_names) [18:02:25.294] added <- setdiff(names, old_names) [18:02:25.294] removed <- setdiff(old_names, names) [18:02:25.294] changed <- common[...future.oldEnvVars[common] != [18:02:25.294] envs[common]] [18:02:25.294] NAMES <- toupper(changed) [18:02:25.294] args <- list() [18:02:25.294] for (kk in seq_along(NAMES)) { [18:02:25.294] name <- changed[[kk]] [18:02:25.294] NAME <- NAMES[[kk]] [18:02:25.294] if (name != NAME && is.element(NAME, old_names)) [18:02:25.294] next [18:02:25.294] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:25.294] } [18:02:25.294] NAMES <- toupper(added) [18:02:25.294] for (kk in seq_along(NAMES)) { [18:02:25.294] name <- added[[kk]] [18:02:25.294] NAME <- NAMES[[kk]] [18:02:25.294] if (name != NAME && is.element(NAME, old_names)) [18:02:25.294] next [18:02:25.294] args[[name]] <- "" [18:02:25.294] } [18:02:25.294] NAMES <- toupper(removed) [18:02:25.294] for (kk in seq_along(NAMES)) { [18:02:25.294] name <- removed[[kk]] [18:02:25.294] NAME <- NAMES[[kk]] [18:02:25.294] if (name != NAME && is.element(NAME, old_names)) [18:02:25.294] next [18:02:25.294] args[[name]] <- ...future.oldEnvVars[[name]] [18:02:25.294] } [18:02:25.294] if (length(args) > 0) [18:02:25.294] base::do.call(base::Sys.setenv, args = args) [18:02:25.294] args <- names <- old_names <- NAMES <- envs <- common <- added <- removed <- NULL [18:02:25.294] } [18:02:25.294] else { [18:02:25.294] base::do.call(base::Sys.setenv, args = base::as.list(...future.oldEnvVars)) [18:02:25.294] } [18:02:25.294] { [18:02:25.294] if (base::length(...future.futureOptionsAdded) > [18:02:25.294] 0L) { [18:02:25.294] opts <- base::vector("list", length = base::length(...future.futureOptionsAdded)) [18:02:25.294] base::names(opts) <- ...future.futureOptionsAdded [18:02:25.294] base::options(opts) [18:02:25.294] } [18:02:25.294] { [18:02:25.294] { [18:02:25.294] base::options(mc.cores = ...future.mc.cores.old) [18:02:25.294] NULL [18:02:25.294] } [18:02:25.294] options(future.plan = NULL) [18:02:25.294] if (is.na(NA_character_)) [18:02:25.294] Sys.unsetenv("R_FUTURE_PLAN") [18:02:25.294] else Sys.setenv(R_FUTURE_PLAN = NA_character_) [18:02:25.294] future::plan(list(a = function (..., workers = availableCores(), [18:02:25.294] lazy = FALSE, rscript_libs = .libPaths(), [18:02:25.294] envir = parent.frame()) [18:02:25.294] { [18:02:25.294] if (is.function(workers)) [18:02:25.294] workers <- workers() [18:02:25.294] workers <- structure(as.integer(workers), [18:02:25.294] class = class(workers)) [18:02:25.294] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:25.294] workers >= 1) [18:02:25.294] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:25.294] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:25.294] } [18:02:25.294] future <- MultisessionFuture(..., workers = workers, [18:02:25.294] lazy = lazy, rscript_libs = rscript_libs, [18:02:25.294] envir = envir) [18:02:25.294] if (!future$lazy) [18:02:25.294] future <- run(future) [18:02:25.294] invisible(future) [18:02:25.294] }, b = function (..., workers = availableCores(), [18:02:25.294] lazy = FALSE, rscript_libs = .libPaths(), [18:02:25.294] envir = parent.frame()) [18:02:25.294] { [18:02:25.294] if (is.function(workers)) [18:02:25.294] workers <- workers() [18:02:25.294] workers <- structure(as.integer(workers), [18:02:25.294] class = class(workers)) [18:02:25.294] stop_if_not(length(workers) == 1, is.finite(workers), [18:02:25.294] workers >= 1) [18:02:25.294] if (workers == 1L && !inherits(workers, "AsIs")) { [18:02:25.294] return(sequential(..., lazy = TRUE, envir = envir)) [18:02:25.294] } [18:02:25.294] future <- MultisessionFuture(..., workers = workers, [18:02:25.294] lazy = lazy, rscript_libs = rscript_libs, [18:02:25.294] envir = envir) [18:02:25.294] if (!future$lazy) [18:02:25.294] future <- run(future) [18:02:25.294] invisible(future) [18:02:25.294] }), .cleanup = FALSE, .init = FALSE) [18:02:25.294] } [18:02:25.294] } [18:02:25.294] } [18:02:25.294] }) [18:02:25.294] if (TRUE) { [18:02:25.294] base::sink(type = "output", split = FALSE) [18:02:25.294] if (TRUE) { [18:02:25.294] ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout)) [18:02:25.294] } [18:02:25.294] else { [18:02:25.294] ...future.result["stdout"] <- base::list(NULL) [18:02:25.294] } [18:02:25.294] base::close(...future.stdout) [18:02:25.294] ...future.stdout <- NULL [18:02:25.294] } [18:02:25.294] ...future.result$conditions <- ...future.conditions [18:02:25.294] ...future.result$finished <- base::Sys.time() [18:02:25.294] ...future.result [18:02:25.294] } [18:02:25.301] Exporting 1 global objects (128 bytes) to cluster node #1 ... [18:02:25.302] Exporting 'data' (128 bytes) to cluster node #1 ... [18:02:25.302] Exporting 'data' (128 bytes) to cluster node #1 ... DONE [18:02:25.302] Exporting 1 global objects (128 bytes) to cluster node #1 ... DONE [18:02:25.303] MultisessionFuture started [18:02:25.303] - Launch lazy future ... done [18:02:25.303] run() for 'MultisessionFuture' ... done [18:02:25.303] result() for ClusterFuture ... [18:02:25.304] receiveMessageFromWorker() for ClusterFuture ... [18:02:25.304] - Validating connection of MultisessionFuture [18:02:25.331] - received message: FutureResult [18:02:25.332] - Received FutureResult [18:02:25.332] - Erased future from FutureRegistry [18:02:25.332] result() for ClusterFuture ... [18:02:25.332] - result already collected: FutureResult [18:02:25.332] result() for ClusterFuture ... done [18:02:25.332] receiveMessageFromWorker() for ClusterFuture ... done [18:02:25.333] result() for ClusterFuture ... done [18:02:25.333] result() for ClusterFuture ... [18:02:25.333] - result already collected: FutureResult [18:02:25.333] result() for ClusterFuture ... done - plan(list('multisession', 'multisession')) ... DONE > > message("*** Nested futures ... DONE") *** Nested futures ... DONE > > source("incl/end.R") [18:02:25.334] plan(): Setting new future strategy stack: [18:02:25.334] List of future strategies: [18:02:25.334] 1. FutureStrategy: [18:02:25.334] - args: function (..., envir = parent.frame()) [18:02:25.334] - tweaked: FALSE [18:02:25.334] - call: future::plan(oplan) [18:02:25.335] 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 1.10 0.15 2.85