Running ‘000.sessionDetails.R’ [0s/1s]
  Running ‘ClusterRegistry.R’ [3s/9s]
  Running ‘Future-class.R’ [2s/5s]
  Running ‘FutureError.R’ [1s/1s]
  Running ‘FutureGlobals.R’ [1s/1s]
  Running ‘FutureRegistry.R’ [1s/1s]
  Running ‘as.cluster.R’ [1s/3s]
  Running ‘availableCores.R’ [1s/1s]
  Running ‘availableWorkers.R’ [1s/1s]
  Running ‘backtrace.R’ [1s/2s]
  Running ‘cluster-missing-future-pkg.R’ [1s/3s]
  Running ‘cluster.R’ [7s/30s]
  Running ‘constant.R’ [1s/1s]
  Running ‘demo.R’ [10s/14s]
  Running ‘dotdotdot.R’ [2s/5s]
  Running ‘early-signaling.R’ [2s/11s]
  Running ‘future,labels.R’ [1s/1s]
  Running ‘future.R’ [1s/1s]
  Running ‘futureAssign.R’ [2s/6s]
  Running ‘futureAssign_OP.R’ [3s/7s]
  Running ‘futureAssign_OP_with_environment.R’ [1s/1s]
  Running ‘futureAssign_OP_with_listenv.R’ [1s/1s]
  Running ‘futureCall.R’ [4s/10s]
  Running ‘futureOf.R’ [1s/1s]
  Running ‘futureOf_with_environment.R’ [1s/1s]
  Running ‘futureOf_with_listenv.R’ [1s/1s]
  Running ‘futures.R’ [19s/45s]
  Running ‘globals,NSE.R’ [1s/1s]
  Running ‘globals,formulas.R’ [4s/9s]
  Running ‘globals,manual.R’ [2s/3s]
  Running ‘globals,resolve.R’ [1s/5s]
  Running ‘globals,subassignment.R’ [3s/7s]
  Running ‘globals,toolarge.R’ [1s/4s]
  Running ‘globals,tricky.R’ [8s/14s]
  Running ‘globals,tricky_recursive.R’ [1s/1s]
  Running ‘globalsOf,tweaks.R’ [1s/1s]
  Running ‘immediateCondition.R’ [1s/2s]
  Running ‘invalid-owner.R’ [2s/5s]
  Running ‘makeClusterPSOCK.R’ [1s/2s]
  Running ‘mandelbrot.R’ [1s/1s]
  Running ‘mpi.R’ [1s/1s]
  Running ‘multicore,multithreading.R’ [1s/1s]
  Running ‘multicore.R’ [1s/2s]
  Running ‘multiprocess.R’ [2s/3s]
  Running ‘multisession.R’ [4s/13s]
  Running ‘nbrOfWorkers.R’ [2s/7s]
  Running ‘nested_futures,mc.cores.R’ [5s/24s]
  Running ‘nested_futures.R’ [1s/1s]
  Running ‘non-exportable,connections.R’ [1s/4s]
  Running ‘objectSize.R’ [1s/1s]
  Running ‘plan.R’ [2s/4s]
  Running ‘relaying.R’ [1s/2s]
  Running ‘remote.R’ [1s/4s]
  Running ‘requestCore.R’ [1s/3s]
  Running ‘requestNode.R’ [2s/10s]
  Running ‘reserved-keyword-functions.R’ [1s/1s]
  Running ‘resolve.R’ [2s/5s]
  Running ‘resolved-non-blocking-test.R’ [3s/34s]
  Running ‘rng.R’ [12s/19s]
  Running ‘sequential.R’ [1s/1s]
  Running ‘sessionDetails.R’ [1s/1s]
  Running ‘startup.R’ [2s/7s]
  Running ‘stdout.R’ [2s/6s]
  Running ‘transparent.R’ [1s/1s]
  Running ‘tweak.R’ [1s/1s]
  Running ‘utils.R’ [1s/2s]
  Running ‘uuid.R’ [1s/1s]
  Running ‘whichIndex.R’ [1s/1s]
Running the tests in ‘tests/nbrOfWorkers.R’ failed.
Complete output:
  > source("incl/start.R")
  [07:37:23.758] plan(): Setting new future strategy stack:
  [07:37:23.759] List of future strategies:
  [07:37:23.759] 1. sequential:
  [07:37:23.759]    - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, local = TRUE, earlySignal = FALSE, label = NULL, ...)
  [07:37:23.759]    - tweaked: FALSE
  [07:37:23.759]    - call: future::plan("sequential")
  [07:37:23.761] plan(): nbrOfWorkers() = 1
  > 
  > message("*** nbrOfWorkers() ...")
  *** nbrOfWorkers() ...
  > 
  > strategies <- c("sequential", "transparent")
  > for (strategy in strategies) {
  +   message("Type of future: ", strategy)
  + 
  +   evaluator <- get(strategy, mode = "function")
  +   n <- nbrOfWorkers(evaluator)
  +   message(sprintf("nbrOfWorkers: %d", n))
  +   stopifnot(n == 1L)
  + 
  +   plan(strategy)
  +   n <- nbrOfWorkers()
  +   message(sprintf("nbrOfWorkers: %d", n))
  +   stopifnot(n == 1L)
  + } ## for (strategy ...)
  Type of future: sequential
  nbrOfWorkers: 1
  [07:37:23.836] plan(): Setting new future strategy stack:
  [07:37:23.836] List of future strategies:
  [07:37:23.836] 1. sequential:
  [07:37:23.836]    - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, local = TRUE, earlySignal = FALSE, label = NULL, ...)
  [07:37:23.836]    - tweaked: FALSE
  [07:37:23.836]    - call: plan(strategy)
  [07:37:23.935] plan(): nbrOfWorkers() = 1
  nbrOfWorkers: 1
  Type of future: transparent
  nbrOfWorkers: 1
  [07:37:23.936] plan(): Setting new future strategy stack:
  [07:37:23.937] List of future strategies:
  [07:37:23.937] 1. transparent:
  [07:37:23.937]    - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = FALSE, local = FALSE, earlySignal = TRUE, label = NULL, ...)
  [07:37:23.937]    - tweaked: FALSE
  [07:37:23.937]    - call: plan(strategy)
  [07:37:23.938] plan(): nbrOfWorkers() = 1
  nbrOfWorkers: 1
  > 
  > 
  > strategies <- c("cluster", "multiprocess", "multisession", "multicore")
  > strategies <- intersect(strategies, supportedStrategies())
  > cores <- availableCores()
  > message("Number of available cores: ", cores)
  Number of available cores: 2
  > workers <- availableWorkers()
  > nworkers <- length(workers)
  > message(sprintf("Available workers: [n = %d] %s", nworkers, hpaste(sQuote(workers))))
  Available workers: [n = 2] 'localhost', 'localhost'
  > 
  > allButOneCore <- function() max(1L, future::availableCores() - 1L)
  > allButOneWorker <- function() {
  +   w <- future::availableWorkers()
  +   if (length(w) > 1) w[-1] else w
  + }
  > 
  > for (strategy in strategies) {
  +   ## Speed up CRAN checks: Skip on CRAN Windows 32-bit
  +   if (!fullTest && isWin32) next
  + 
  +   message("Type of future: ", strategy)
  + 
  +   evaluator <- get(strategy, mode = "function")
  +   n <- nbrOfWorkers(evaluator)
  +   message(sprintf("nbrOfWorkers: %d", n))
  +   stopifnot(n == nworkers)
  + 
  +   plan(strategy)
  +   n <- nbrOfWorkers()
  +   message(sprintf("nbrOfWorkers: %d", n))
  +   stopifnot(n == nworkers)
  + 
  +   plan(strategy, workers = allButOneCore)
  +   n <- nbrOfWorkers()
  +   message(sprintf("nbrOfWorkers: %d", n))
  +   stopifnot(n == max(1L, nworkers - 1L))
  + } ## for (strategy ...)
  > 
  > 
  > message("Type of future: cluster")
  Type of future: cluster
  > workers <- rep("localhost", times = 2L)
  > plan(cluster, workers = workers)
  [07:37:23.991] plan(): Setting new future strategy stack:
  [07:37:23.991] List of future strategies:
  [07:37:23.991] 1. cluster:
  [07:37:23.991]    - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, persistent = FALSE, workers = c("localhost", "localhost"), user = NULL, revtunnel = TRUE, homogeneous = TRUE, gc = FALSE, earlySignal = FALSE, label = NULL, ...)
  [07:37:23.991]    - tweaked: TRUE
  [07:37:23.991]    - call: plan(cluster, workers = workers)
  [07:37:23.993] plan(): plan_init() of 'tweaked', 'cluster', 'multiprocess', 'future', 'function' ...
  [07:37:23.993] cluster:
  [07:37:23.993] - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, persistent = FALSE, workers = c("localhost", "localhost"), user = NULL, revtunnel = TRUE, homogeneous = TRUE, gc = FALSE, earlySignal = FALSE, label = NULL, ...)
  [07:37:23.993] - tweaked: TRUE
  [07:37:23.993] - call: plan(cluster, workers = workers)
  [07:37:23.996] getGlobalsAndPackages() ...
  [07:37:23.997] Not searching for globals
  [07:37:23.997] - globals: [0] <none>
  [07:37:23.998] getGlobalsAndPackages() ... DONE
  [local output] Workers: [n = 2] 'localhost', 'localhost'
  [local output] Base port: 28958
  [local output] Creating node 1 of 2 ...
  [local output] - setting up node
  Testing if worker's PID can be inferred: ''/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d56684d63.pid")), silent = TRUE)' -e "file.exists('/tmp/RtmpjKWCNR/future.parent=1437.59d56684d63.pid')"'
  - Possible to infer worker's PID: TRUE
  [local output] Starting worker #1 on 'localhost': '/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e '#label=future/tests/nbrOfWorkers.R:gimli:hornik:1437' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d56684d63.pid")), silent = TRUE)' -e 'workRSOCK <- tryCatch(parallel:::.slaveRSOCK, error=function(e) parallel:::.workRSOCK); workRSOCK()' MASTER=localhost PORT=28958 OUT=/dev/null TIMEOUT=120 XDR=TRUE
  [local output] - Exit code of system() call: 0
  [local output] Waiting for worker #1 on 'localhost' to connect back
  [local output] Connection with worker #1 on 'localhost' established
  [local output] - collecting session information
  [local output] Creating node 1 of 2 ... done
  [local output] Creating node 2 of 2 ...
  [local output] - setting up node
  Testing if worker's PID can be inferred: ''/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d4d46a2f5.pid")), silent = TRUE)' -e "file.exists('/tmp/RtmpjKWCNR/future.parent=1437.59d4d46a2f5.pid')"'
  - Possible to infer worker's PID: TRUE
  [local output] Starting worker #2 on 'localhost': '/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e '#label=future/tests/nbrOfWorkers.R:gimli:hornik:1437' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d4d46a2f5.pid")), silent = TRUE)' -e 'workRSOCK <- tryCatch(parallel:::.slaveRSOCK, error=function(e) parallel:::.workRSOCK); workRSOCK()' MASTER=localhost PORT=28958 OUT=/dev/null TIMEOUT=120 XDR=TRUE
  [local output] - Exit code of system() call: 0
  [local output] Waiting for worker #2 on 'localhost' to connect back
  [local output] Connection with worker #2 on 'localhost' established
  [local output] - collecting session information
  [local output] Creating node 2 of 2 ... done
  [07:37:26.456] Packages needed by the future expression (n = 0): <none>
  [07:37:26.457] Packages needed by future strategies (n = 0): <none>
  [07:37:26.464] {
  [07:37:26.464]     {
  [07:37:26.464]         ...future.startTime <- base::Sys.time()
  [07:37:26.464]         ...future.oldOptions <- base::options(future.startup.script = FALSE, 
  [07:37:26.464]             future.globals.onMissing = NULL, future.globals.maxSize = NULL, 
  [07:37:26.464]             future.globals.method = NULL, future.globals.onMissing = NULL, 
  [07:37:26.464]             future.globals.onReference = NULL, future.globals.resolve = NULL, 
  [07:37:26.464]             future.resolve.recursive = NULL, width = 80L)
  [07:37:26.464]         {
  [07:37:26.464]             {
  [07:37:26.464]                 base::local({
  [07:37:26.464]                   has_future <- base::requireNamespace("future", 
  [07:37:26.464]                     quietly = TRUE)
  [07:37:26.464]                   version <- if (has_future) 
  [07:37:26.464]                     utils::packageVersion("future")
  [07:37:26.464]                   else NULL
  [07:37:26.464]                   if (!has_future || version < "1.8.0") {
  [07:37:26.464]                     info <- base::c(r_version = base::gsub("R version ", 
  [07:37:26.464]                       "", base::R.version$version.string), platform = base::sprintf("%s (%s-bit)", 
  [07:37:26.464]                       base::R.version$platform, 8 * base::.Machine$sizeof.pointer), 
  [07:37:26.464]                       os = base::paste(base::Sys.info()[base::c("sysname", 
  [07:37:26.464]                         "release", "version")], collapse = " "), 
  [07:37:26.464]                       hostname = base::Sys.info()[["nodename"]])
  [07:37:26.464]                     info <- base::sprintf("%s: %s", base::names(info), 
  [07:37:26.464]                       info)
  [07:37:26.464]                     info <- base::paste(info, collapse = "; ")
  [07:37:26.464]                     if (!has_future) {
  [07:37:26.464]                       msg <- base::sprintf("Package 'future' is not installed on worker (%s)", 
  [07:37:26.464]                         info)
  [07:37:26.464]                     }
  [07:37:26.464]                     else {
  [07:37:26.464]                       msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", 
  [07:37:26.464]                         info, version)
  [07:37:26.464]                     }
  [07:37:26.464]                     base::stop(msg)
  [07:37:26.464]                   }
  [07:37:26.464]                 })
  [07:37:26.464]             }
  [07:37:26.464]             future::plan("default", .cleanup = FALSE, .init = FALSE)
  [07:37:26.464]         }
  [07:37:26.464]     }
  [07:37:26.464]     if (base::is.na(TRUE)) {
  [07:37:26.464]     }
  [07:37:26.464]     else {
  [07:37:26.464]         if (TRUE) {
  [07:37:26.464]             ...future.stdout <- base::rawConnection(base::raw(0L), 
  [07:37:26.464]                 open = "w")
  [07:37:26.464]         }
  [07:37:26.464]         else {
  [07:37:26.464]             ...future.stdout <- base::file(base::switch(.Platform$OS.type, 
  [07:37:26.464]                 windows = "NUL", "/dev/null"), open = "w")
  [07:37:26.464]         }
  [07:37:26.464]         base::sink(...future.stdout, type = "output", split = FALSE)
  [07:37:26.464]         base::on.exit(if (!base::is.null(...future.stdout)) {
  [07:37:26.464]             base::sink(type = "output", split = FALSE)
  [07:37:26.464]             base::close(...future.stdout)
  [07:37:26.464]         }, add = TRUE)
  [07:37:26.464]     }
  [07:37:26.464]     ...future.frame <- base::sys.nframe()
  [07:37:26.464]     ...future.conditions <- base::list()
  [07:37:26.464]     ...future.rng <- base::globalenv()$.Random.seed
  [07:37:26.464]     ...future.result <- base::tryCatch({
  [07:37:26.464]         base::withCallingHandlers({
  [07:37:26.464]             ...future.value <- base::withVisible(base::local({
  [07:37:26.464]                 ...future.sendCondition <- local({
  [07:37:26.464]                   sendCondition <- NULL
  [07:37:26.464]                   function(frame = 1L) {
  [07:37:26.464]                     if (is.function(sendCondition)) 
  [07:37:26.464]                       return(sendCondition)
  [07:37:26.464]                     ns <- getNamespace("parallel")
  [07:37:26.464]                     if (exists("sendData", mode = "function", 
  [07:37:26.464]                       envir = ns)) {
  [07:37:26.464]                       parallel_sendData <- get("sendData", mode = "function", 
  [07:37:26.464]                         envir = ns)
  [07:37:26.464]                       envir <- sys.frame(frame)
  [07:37:26.464]                       master <- NULL
  [07:37:26.464]                       while (!identical(envir, .GlobalEnv) && 
  [07:37:26.464]                         !identical(envir, emptyenv())) {
  [07:37:26.464]                         if (exists("master", mode = "list", envir = envir, 
  [07:37:26.464]                           inherits = FALSE)) {
  [07:37:26.464]                           master <- get("master", mode = "list", 
  [07:37:26.464]                             envir = envir, inherits = FALSE)
  [07:37:26.464]                           if (inherits(master, "SOCKnode")) {
  [07:37:26.464]                             sendCondition <<- function(cond) {
  [07:37:26.464]                               data <- list(type = "VALUE", value = cond, 
  [07:37:26.464]                                 success = TRUE)
  [07:37:26.464]                               parallel_sendData(master, data)
  [07:37:26.464]                             }
  [07:37:26.464]                             return(sendCondition)
  [07:37:26.464]                           }
  [07:37:26.464]                         }
  [07:37:26.464]                         frame <- frame + 1L
  [07:37:26.464]                         envir <- sys.frame(frame)
  [07:37:26.464]                       }
  [07:37:26.464]                     }
  [07:37:26.464]                     sendCondition <<- function(cond) NULL
  [07:37:26.464]                   }
  [07:37:26.464]                 })
  [07:37:26.464]                 withCallingHandlers({
  [07:37:26.464]                   NA
  [07:37:26.464]                 }, immediateCondition = function(cond) {
  [07:37:26.464]                   sendCondition <- ...future.sendCondition()
  [07:37:26.464]                   sendCondition(cond)
  [07:37:26.464]                   muffleCondition <- function (cond) 
  [07:37:26.464]                   {
  [07:37:26.464]                     inherits <- base::inherits
  [07:37:26.464]                     invokeRestart <- base::invokeRestart
  [07:37:26.464]                     muffled <- FALSE
  [07:37:26.464]                     if (inherits(cond, "message")) {
  [07:37:26.464]                       invokeRestart("muffleMessage")
  [07:37:26.464]                       muffled <- TRUE
  [07:37:26.464]                     }
  [07:37:26.464]                     else if (inherits(cond, "warning")) {
  [07:37:26.464]                       invokeRestart("muffleWarning")
  [07:37:26.464]                       muffled <- TRUE
  [07:37:26.464]                     }
  [07:37:26.464]                     else if (inherits(cond, "condition")) {
  [07:37:26.464]                       computeRestarts <- base::computeRestarts
  [07:37:26.464]                       grepl <- base::grepl
  [07:37:26.464]                       is.null <- base::is.null
  [07:37:26.464]                       restarts <- computeRestarts(cond)
  [07:37:26.464]                       for (restart in restarts) {
  [07:37:26.464]                         name <- restart$name
  [07:37:26.464]                         if (is.null(name)) 
  [07:37:26.464]                           next
  [07:37:26.464]                         if (!grepl("^muffle", name)) 
  [07:37:26.464]                           next
  [07:37:26.464]                         invokeRestart(restart)
  [07:37:26.464]                         muffled <- TRUE
  [07:37:26.464]                         break
  [07:37:26.464]                       }
  [07:37:26.464]                     }
  [07:37:26.464]                     invisible(muffled)
  [07:37:26.464]                   }
  [07:37:26.464]                   muffleCondition(cond)
  [07:37:26.464]                 })
  [07:37:26.464]             }))
  [07:37:26.464]             future::FutureResult(value = ...future.value$value, 
  [07:37:26.464]                 visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, 
  [07:37:26.464]                   ...future.rng), started = ...future.startTime, 
  [07:37:26.464]                 version = "1.8")
  [07:37:26.464]         }, condition = base::local({
  [07:37:26.464]             c <- base::c
  [07:37:26.464]             inherits <- base::inherits
  [07:37:26.464]             invokeRestart <- base::invokeRestart
  [07:37:26.464]             length <- base::length
  [07:37:26.464]             list <- base::list
  [07:37:26.464]             seq.int <- base::seq.int
  [07:37:26.464]             signalCondition <- base::signalCondition
  [07:37:26.464]             sys.calls <- base::sys.calls
  [07:37:26.464]             Sys.time <- base::Sys.time
  [07:37:26.464]             `[[` <- base::`[[`
  [07:37:26.464]             `+` <- base::`+`
  [07:37:26.464]             `<<-` <- base::`<<-`
  [07:37:26.464]             sysCalls <- function(calls = sys.calls(), from = 1L) {
  [07:37:26.464]                 calls[seq.int(from = from + 12L, to = length(calls) - 
  [07:37:26.464]                   3L)]
  [07:37:26.464]             }
  [07:37:26.464]             function(cond) {
  [07:37:26.464]                 if (inherits(cond, "error")) {
  [07:37:26.464]                   sessionInformation <- function() {
  [07:37:26.464]                     list(r = base::R.Version(), locale = base::Sys.getlocale(), 
  [07:37:26.464]                       rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), 
  [07:37:26.464]                       search = base::search(), system = base::Sys.info())
  [07:37:26.464]                   }
  [07:37:26.464]                   ...future.conditions[[length(...future.conditions) + 
  [07:37:26.464]                     1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), 
  [07:37:26.464]                     cond$call), session = sessionInformation(), 
  [07:37:26.464]                     timestamp = Sys.time(), signaled = 0L)
  [07:37:26.464]                   signalCondition(cond)
  [07:37:26.464]                 }
  [07:37:26.464]                 else if (inherits(cond, c("condition", "immediateCondition"
  [07:37:26.464]                 ))) {
  [07:37:26.464]                   signal <- TRUE && inherits(cond, "immediateCondition")
  [07:37:26.464]                   ...future.conditions[[length(...future.conditions) + 
  [07:37:26.464]                     1L]] <<- list(condition = cond, signaled = base::as.integer(signal))
  [07:37:26.464]                   if (!signal) {
  [07:37:26.464]                     muffleCondition <- function (cond) 
  [07:37:26.464]                     {
  [07:37:26.464]                       inherits <- base::inherits
  [07:37:26.464]                       invokeRestart <- base::invokeRestart
  [07:37:26.464]                       muffled <- FALSE
  [07:37:26.464]                       if (inherits(cond, "message")) {
  [07:37:26.464]                         invokeRestart("muffleMessage")
  [07:37:26.464]                         muffled <- TRUE
  [07:37:26.464]                       }
  [07:37:26.464]                       else if (inherits(cond, "warning")) {
  [07:37:26.464]                         invokeRestart("muffleWarning")
  [07:37:26.464]                         muffled <- TRUE
  [07:37:26.464]                       }
  [07:37:26.464]                       else if (inherits(cond, "condition")) {
  [07:37:26.464]                         computeRestarts <- base::computeRestarts
  [07:37:26.464]                         grepl <- base::grepl
  [07:37:26.464]                         is.null <- base::is.null
  [07:37:26.464]                         restarts <- computeRestarts(cond)
  [07:37:26.464]                         for (restart in restarts) {
  [07:37:26.464]                           name <- restart$name
  [07:37:26.464]                           if (is.null(name)) 
  [07:37:26.464]                             next
  [07:37:26.464]                           if (!grepl("^muffle", name)) 
  [07:37:26.464]                             next
  [07:37:26.464]                           invokeRestart(restart)
  [07:37:26.464]                           muffled <- TRUE
  [07:37:26.464]                           break
  [07:37:26.464]                         }
  [07:37:26.464]                       }
  [07:37:26.464]                       invisible(muffled)
  [07:37:26.464]                     }
  [07:37:26.464]                     muffleCondition(cond)
  [07:37:26.464]                   }
  [07:37:26.464]                 }
  [07:37:26.464]             }
  [07:37:26.464]         }))
  [07:37:26.464]     }, error = function(ex) {
  [07:37:26.464]         base::structure(base::list(value = NULL, visible = NULL, 
  [07:37:26.464]             conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, 
  [07:37:26.464]                 ...future.rng), version = "1.8"), class = "FutureResult")
  [07:37:26.464]     }, finally = {
  [07:37:26.464]         {
  [07:37:26.464]             NULL
  [07:37:26.464]             future::plan(list(function (expr, envir = parent.frame(), 
  [07:37:26.464]                 substitute = TRUE, lazy = FALSE, seed = NULL, 
  [07:37:26.464]                 globals = TRUE, persistent = FALSE, workers = c("localhost", 
  [07:37:26.464]                 "localhost"), user = NULL, revtunnel = TRUE, 
  [07:37:26.464]                 homogeneous = TRUE, gc = FALSE, earlySignal = FALSE, 
  [07:37:26.464]                 label = NULL, ...) 
  [07:37:26.464]             {
  [07:37:26.464]                 if (substitute) 
  [07:37:26.464]                   expr <- substitute(expr)
  [07:37:26.464]                 future <- ClusterFuture(expr = expr, envir = envir, 
  [07:37:26.464]                   substitute = FALSE, lazy = lazy, seed = seed, 
  [07:37:26.464]                   globals = globals, persistent = persistent, 
  [07:37:26.464]                   workers = workers, user = user, revtunnel = revtunnel, 
  [07:37:26.464]                   homogeneous = homogeneous, gc = gc, earlySignal = earlySignal, 
  [07:37:26.464]                   label = label, ...)
  [07:37:26.464]                 if (!future$lazy) 
  [07:37:26.464]                   future <- run(future)
  [07:37:26.464]                 invisible(future)
  [07:37:26.464]             }), .cleanup = FALSE, .init = FALSE)
  [07:37:26.464]         }
  [07:37:26.464]         base::options(...future.oldOptions)
  [07:37:26.464]     })
  [07:37:26.464]     Sys.time
  [07:37:26.464]     if (base::is.na(TRUE)) {
  [07:37:26.464]     }
  [07:37:26.464]     else {
  [07:37:26.464]         base::sink(type = "output", split = FALSE)
  [07:37:26.464]         if (TRUE) {
  [07:37:26.464]             ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout))
  [07:37:26.464]         }
  [07:37:26.464]         else {
  [07:37:26.464]             ...future.result["stdout"] <- base::list(NULL)
  [07:37:26.464]         }
  [07:37:26.464]         base::close(...future.stdout)
  [07:37:26.464]         ...future.stdout <- NULL
  [07:37:26.464]     }
  [07:37:26.464]     ...future.result$conditions <- ...future.conditions
  [07:37:26.464]     ...future.result
  [07:37:26.464] }
  [07:37:26.472] ClusterFuture started
  [07:37:26.473] result() for ClusterFuture ...
  [07:37:26.474] receiveMessageFromWorker() for ClusterFuture ...
  [07:37:26.475] - Validating connection of ClusterFuture
  [07:37:26.631] - received message: FutureResult
  [07:37:26.631] - Received FutureResult
  [07:37:26.640] - Erased future from FutureRegistry
  [07:37:26.641] result() for ClusterFuture ...
  [07:37:26.659] - result already collected: FutureResult
  [07:37:26.660] result() for ClusterFuture ... done
  [07:37:26.660] receiveMessageFromWorker() for ClusterFuture ... done
  [07:37:26.661] result() for ClusterFuture ... done
  [07:37:26.661] result() for ClusterFuture ...
  [07:37:26.661] - result already collected: FutureResult
  [07:37:26.662] result() for ClusterFuture ... done
  [07:37:26.662] plan(): plan_init() of 'tweaked', 'cluster', 'multiprocess', 'future', 'function' ... DONE
  [07:37:26.663] plan(): nbrOfWorkers() = 2
  > n <- nbrOfWorkers()
  > message(sprintf("nbrOfWorkers: %d", n))
  nbrOfWorkers: 2
  > stopifnot(n == length(workers))
  > plan(cluster, workers = allButOneWorker)
  [07:37:26.664] plan(): Setting new future strategy stack:
  [07:37:26.665] List of future strategies:
  [07:37:26.665] 1. cluster:
  [07:37:26.665]    - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, persistent = FALSE, workers = "<function ()  >", user = NULL, revtunnel = TRUE, homogeneous = TRUE, gc = FALSE, earlySignal = FALSE, label = NULL, ...)
  [07:37:26.665]    - tweaked: TRUE
  [07:37:26.665]    - call: plan(cluster, workers = allButOneWorker)
  [07:37:26.689] plan(): plan_init() of 'tweaked', 'cluster', 'multiprocess', 'future', 'function' ...
  [07:37:26.690] cluster:
  [07:37:26.690] - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, persistent = FALSE, workers = "<function ()  >", user = NULL, revtunnel = TRUE, homogeneous = TRUE, gc = FALSE, earlySignal = FALSE, label = NULL, ...)
  [07:37:26.690] - tweaked: TRUE
  [07:37:26.690] - call: plan(cluster, workers = allButOneWorker)
  [07:37:26.692] getGlobalsAndPackages() ...
  [07:37:26.692] Not searching for globals
  [07:37:26.693] - globals: [0] <none>
  [07:37:26.693] getGlobalsAndPackages() ... DONE
  [local output] Workers: [n = 1] 'localhost'
  [local output] Base port: 21337
  [local output] Creating node 1 of 1 ...
  [local output] - setting up node
  Testing if worker's PID can be inferred: ''/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d10703855.pid")), silent = TRUE)' -e "file.exists('/tmp/RtmpjKWCNR/future.parent=1437.59d10703855.pid')"'
  - Possible to infer worker's PID: TRUE
  [local output] Starting worker #1 on 'localhost': '/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e '#label=future/tests/nbrOfWorkers.R:gimli:hornik:1437' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d10703855.pid")), silent = TRUE)' -e 'workRSOCK <- tryCatch(parallel:::.slaveRSOCK, error=function(e) parallel:::.workRSOCK); workRSOCK()' MASTER=localhost PORT=21337 OUT=/dev/null TIMEOUT=120 XDR=TRUE
  [local output] - Exit code of system() call: 0
  [local output] Waiting for worker #1 on 'localhost' to connect back
  [local output] Connection with worker #1 on 'localhost' established
  [local output] - collecting session information
  [local output] Creating node 1 of 1 ... done
  [07:37:28.009] Packages needed by the future expression (n = 0): <none>
  [07:37:28.009] Packages needed by future strategies (n = 0): <none>
  [07:37:28.016] {
  [07:37:28.016]     {
  [07:37:28.016]         ...future.startTime <- base::Sys.time()
  [07:37:28.016]         ...future.oldOptions <- base::options(future.startup.script = FALSE, 
  [07:37:28.016]             future.globals.onMissing = NULL, future.globals.maxSize = NULL, 
  [07:37:28.016]             future.globals.method = NULL, future.globals.onMissing = NULL, 
  [07:37:28.016]             future.globals.onReference = NULL, future.globals.resolve = NULL, 
  [07:37:28.016]             future.resolve.recursive = NULL, width = 80L)
  [07:37:28.016]         {
  [07:37:28.016]             {
  [07:37:28.016]                 base::local({
  [07:37:28.016]                   has_future <- base::requireNamespace("future", 
  [07:37:28.016]                     quietly = TRUE)
  [07:37:28.016]                   version <- if (has_future) 
  [07:37:28.016]                     utils::packageVersion("future")
  [07:37:28.016]                   else NULL
  [07:37:28.016]                   if (!has_future || version < "1.8.0") {
  [07:37:28.016]                     info <- base::c(r_version = base::gsub("R version ", 
  [07:37:28.016]                       "", base::R.version$version.string), platform = base::sprintf("%s (%s-bit)", 
  [07:37:28.016]                       base::R.version$platform, 8 * base::.Machine$sizeof.pointer), 
  [07:37:28.016]                       os = base::paste(base::Sys.info()[base::c("sysname", 
  [07:37:28.016]                         "release", "version")], collapse = " "), 
  [07:37:28.016]                       hostname = base::Sys.info()[["nodename"]])
  [07:37:28.016]                     info <- base::sprintf("%s: %s", base::names(info), 
  [07:37:28.016]                       info)
  [07:37:28.016]                     info <- base::paste(info, collapse = "; ")
  [07:37:28.016]                     if (!has_future) {
  [07:37:28.016]                       msg <- base::sprintf("Package 'future' is not installed on worker (%s)", 
  [07:37:28.016]                         info)
  [07:37:28.016]                     }
  [07:37:28.016]                     else {
  [07:37:28.016]                       msg <- base::sprintf("Package 'future' on worker (%s) must be of version >= 1.8.0: %s", 
  [07:37:28.016]                         info, version)
  [07:37:28.016]                     }
  [07:37:28.016]                     base::stop(msg)
  [07:37:28.016]                   }
  [07:37:28.016]                 })
  [07:37:28.016]             }
  [07:37:28.016]             future::plan("default", .cleanup = FALSE, .init = FALSE)
  [07:37:28.016]         }
  [07:37:28.016]     }
  [07:37:28.016]     if (base::is.na(TRUE)) {
  [07:37:28.016]     }
  [07:37:28.016]     else {
  [07:37:28.016]         if (TRUE) {
  [07:37:28.016]             ...future.stdout <- base::rawConnection(base::raw(0L), 
  [07:37:28.016]                 open = "w")
  [07:37:28.016]         }
  [07:37:28.016]         else {
  [07:37:28.016]             ...future.stdout <- base::file(base::switch(.Platform$OS.type, 
  [07:37:28.016]                 windows = "NUL", "/dev/null"), open = "w")
  [07:37:28.016]         }
  [07:37:28.016]         base::sink(...future.stdout, type = "output", split = FALSE)
  [07:37:28.016]         base::on.exit(if (!base::is.null(...future.stdout)) {
  [07:37:28.016]             base::sink(type = "output", split = FALSE)
  [07:37:28.016]             base::close(...future.stdout)
  [07:37:28.016]         }, add = TRUE)
  [07:37:28.016]     }
  [07:37:28.016]     ...future.frame <- base::sys.nframe()
  [07:37:28.016]     ...future.conditions <- base::list()
  [07:37:28.016]     ...future.rng <- base::globalenv()$.Random.seed
  [07:37:28.016]     ...future.result <- base::tryCatch({
  [07:37:28.016]         base::withCallingHandlers({
  [07:37:28.016]             ...future.value <- base::withVisible(base::local({
  [07:37:28.016]                 ...future.sendCondition <- local({
  [07:37:28.016]                   sendCondition <- NULL
  [07:37:28.016]                   function(frame = 1L) {
  [07:37:28.016]                     if (is.function(sendCondition)) 
  [07:37:28.016]                       return(sendCondition)
  [07:37:28.016]                     ns <- getNamespace("parallel")
  [07:37:28.016]                     if (exists("sendData", mode = "function", 
  [07:37:28.016]                       envir = ns)) {
  [07:37:28.016]                       parallel_sendData <- get("sendData", mode = "function", 
  [07:37:28.016]                         envir = ns)
  [07:37:28.016]                       envir <- sys.frame(frame)
  [07:37:28.016]                       master <- NULL
  [07:37:28.016]                       while (!identical(envir, .GlobalEnv) && 
  [07:37:28.016]                         !identical(envir, emptyenv())) {
  [07:37:28.016]                         if (exists("master", mode = "list", envir = envir, 
  [07:37:28.016]                           inherits = FALSE)) {
  [07:37:28.016]                           master <- get("master", mode = "list", 
  [07:37:28.016]                             envir = envir, inherits = FALSE)
  [07:37:28.016]                           if (inherits(master, "SOCKnode")) {
  [07:37:28.016]                             sendCondition <<- function(cond) {
  [07:37:28.016]                               data <- list(type = "VALUE", value = cond, 
  [07:37:28.016]                                 success = TRUE)
  [07:37:28.016]                               parallel_sendData(master, data)
  [07:37:28.016]                             }
  [07:37:28.016]                             return(sendCondition)
  [07:37:28.016]                           }
  [07:37:28.016]                         }
  [07:37:28.016]                         frame <- frame + 1L
  [07:37:28.016]                         envir <- sys.frame(frame)
  [07:37:28.016]                       }
  [07:37:28.016]                     }
  [07:37:28.016]                     sendCondition <<- function(cond) NULL
  [07:37:28.016]                   }
  [07:37:28.016]                 })
  [07:37:28.016]                 withCallingHandlers({
  [07:37:28.016]                   NA
  [07:37:28.016]                 }, immediateCondition = function(cond) {
  [07:37:28.016]                   sendCondition <- ...future.sendCondition()
  [07:37:28.016]                   sendCondition(cond)
  [07:37:28.016]                   muffleCondition <- function (cond) 
  [07:37:28.016]                   {
  [07:37:28.016]                     inherits <- base::inherits
  [07:37:28.016]                     invokeRestart <- base::invokeRestart
  [07:37:28.016]                     muffled <- FALSE
  [07:37:28.016]                     if (inherits(cond, "message")) {
  [07:37:28.016]                       invokeRestart("muffleMessage")
  [07:37:28.016]                       muffled <- TRUE
  [07:37:28.016]                     }
  [07:37:28.016]                     else if (inherits(cond, "warning")) {
  [07:37:28.016]                       invokeRestart("muffleWarning")
  [07:37:28.016]                       muffled <- TRUE
  [07:37:28.016]                     }
  [07:37:28.016]                     else if (inherits(cond, "condition")) {
  [07:37:28.016]                       computeRestarts <- base::computeRestarts
  [07:37:28.016]                       grepl <- base::grepl
  [07:37:28.016]                       is.null <- base::is.null
  [07:37:28.016]                       restarts <- computeRestarts(cond)
  [07:37:28.016]                       for (restart in restarts) {
  [07:37:28.016]                         name <- restart$name
  [07:37:28.016]                         if (is.null(name)) 
  [07:37:28.016]                           next
  [07:37:28.016]                         if (!grepl("^muffle", name)) 
  [07:37:28.016]                           next
  [07:37:28.016]                         invokeRestart(restart)
  [07:37:28.016]                         muffled <- TRUE
  [07:37:28.016]                         break
  [07:37:28.016]                       }
  [07:37:28.016]                     }
  [07:37:28.016]                     invisible(muffled)
  [07:37:28.016]                   }
  [07:37:28.016]                   muffleCondition(cond)
  [07:37:28.016]                 })
  [07:37:28.016]             }))
  [07:37:28.016]             future::FutureResult(value = ...future.value$value, 
  [07:37:28.016]                 visible = ...future.value$visible, rng = !identical(base::globalenv()$.Random.seed, 
  [07:37:28.016]                   ...future.rng), started = ...future.startTime, 
  [07:37:28.016]                 version = "1.8")
  [07:37:28.016]         }, condition = base::local({
  [07:37:28.016]             c <- base::c
  [07:37:28.016]             inherits <- base::inherits
  [07:37:28.016]             invokeRestart <- base::invokeRestart
  [07:37:28.016]             length <- base::length
  [07:37:28.016]             list <- base::list
  [07:37:28.016]             seq.int <- base::seq.int
  [07:37:28.016]             signalCondition <- base::signalCondition
  [07:37:28.016]             sys.calls <- base::sys.calls
  [07:37:28.016]             Sys.time <- base::Sys.time
  [07:37:28.016]             `[[` <- base::`[[`
  [07:37:28.016]             `+` <- base::`+`
  [07:37:28.016]             `<<-` <- base::`<<-`
  [07:37:28.016]             sysCalls <- function(calls = sys.calls(), from = 1L) {
  [07:37:28.016]                 calls[seq.int(from = from + 12L, to = length(calls) - 
  [07:37:28.016]                   3L)]
  [07:37:28.016]             }
  [07:37:28.016]             function(cond) {
  [07:37:28.016]                 if (inherits(cond, "error")) {
  [07:37:28.016]                   sessionInformation <- function() {
  [07:37:28.016]                     list(r = base::R.Version(), locale = base::Sys.getlocale(), 
  [07:37:28.016]                       rngkind = base::RNGkind(), namespaces = base::loadedNamespaces(), 
  [07:37:28.016]                       search = base::search(), system = base::Sys.info())
  [07:37:28.016]                   }
  [07:37:28.016]                   ...future.conditions[[length(...future.conditions) + 
  [07:37:28.016]                     1L]] <<- list(condition = cond, calls = c(sysCalls(from = ...future.frame), 
  [07:37:28.016]                     cond$call), session = sessionInformation(), 
  [07:37:28.016]                     timestamp = Sys.time(), signaled = 0L)
  [07:37:28.016]                   signalCondition(cond)
  [07:37:28.016]                 }
  [07:37:28.016]                 else if (inherits(cond, c("condition", "immediateCondition"
  [07:37:28.016]                 ))) {
  [07:37:28.016]                   signal <- TRUE && inherits(cond, "immediateCondition")
  [07:37:28.016]                   ...future.conditions[[length(...future.conditions) + 
  [07:37:28.016]                     1L]] <<- list(condition = cond, signaled = base::as.integer(signal))
  [07:37:28.016]                   if (!signal) {
  [07:37:28.016]                     muffleCondition <- function (cond) 
  [07:37:28.016]                     {
  [07:37:28.016]                       inherits <- base::inherits
  [07:37:28.016]                       invokeRestart <- base::invokeRestart
  [07:37:28.016]                       muffled <- FALSE
  [07:37:28.016]                       if (inherits(cond, "message")) {
  [07:37:28.016]                         invokeRestart("muffleMessage")
  [07:37:28.016]                         muffled <- TRUE
  [07:37:28.016]                       }
  [07:37:28.016]                       else if (inherits(cond, "warning")) {
  [07:37:28.016]                         invokeRestart("muffleWarning")
  [07:37:28.016]                         muffled <- TRUE
  [07:37:28.016]                       }
  [07:37:28.016]                       else if (inherits(cond, "condition")) {
  [07:37:28.016]                         computeRestarts <- base::computeRestarts
  [07:37:28.016]                         grepl <- base::grepl
  [07:37:28.016]                         is.null <- base::is.null
  [07:37:28.016]                         restarts <- computeRestarts(cond)
  [07:37:28.016]                         for (restart in restarts) {
  [07:37:28.016]                           name <- restart$name
  [07:37:28.016]                           if (is.null(name)) 
  [07:37:28.016]                             next
  [07:37:28.016]                           if (!grepl("^muffle", name)) 
  [07:37:28.016]                             next
  [07:37:28.016]                           invokeRestart(restart)
  [07:37:28.016]                           muffled <- TRUE
  [07:37:28.016]                           break
  [07:37:28.016]                         }
  [07:37:28.016]                       }
  [07:37:28.016]                       invisible(muffled)
  [07:37:28.016]                     }
  [07:37:28.016]                     muffleCondition(cond)
  [07:37:28.016]                   }
  [07:37:28.016]                 }
  [07:37:28.016]             }
  [07:37:28.016]         }))
  [07:37:28.016]     }, error = function(ex) {
  [07:37:28.016]         base::structure(base::list(value = NULL, visible = NULL, 
  [07:37:28.016]             conditions = ...future.conditions, rng = !identical(base::globalenv()$.Random.seed, 
  [07:37:28.016]                 ...future.rng), version = "1.8"), class = "FutureResult")
  [07:37:28.016]     }, finally = {
  [07:37:28.016]         {
  [07:37:28.016]             NULL
  [07:37:28.016]             future::plan(list(function (expr, envir = parent.frame(), 
  [07:37:28.016]                 substitute = TRUE, lazy = FALSE, seed = NULL, 
  [07:37:28.016]                 globals = TRUE, persistent = FALSE, workers = function () 
  [07:37:28.016]                 {
  [07:37:28.016]                   w <- future::availableWorkers()
  [07:37:28.016]                   if (length(w) > 1) 
  [07:37:28.016]                     w[-1]
  [07:37:28.016]                   else w
  [07:37:28.016]                 }, user = NULL, revtunnel = TRUE, homogeneous = TRUE, 
  [07:37:28.016]                 gc = FALSE, earlySignal = FALSE, label = NULL, 
  [07:37:28.016]                 ...) 
  [07:37:28.016]             {
  [07:37:28.016]                 if (substitute) 
  [07:37:28.016]                   expr <- substitute(expr)
  [07:37:28.016]                 future <- ClusterFuture(expr = expr, envir = envir, 
  [07:37:28.016]                   substitute = FALSE, lazy = lazy, seed = seed, 
  [07:37:28.016]                   globals = globals, persistent = persistent, 
  [07:37:28.016]                   workers = workers, user = user, revtunnel = revtunnel, 
  [07:37:28.016]                   homogeneous = homogeneous, gc = gc, earlySignal = earlySignal, 
  [07:37:28.016]                   label = label, ...)
  [07:37:28.016]                 if (!future$lazy) 
  [07:37:28.016]                   future <- run(future)
  [07:37:28.016]                 invisible(future)
  [07:37:28.016]             }), .cleanup = FALSE, .init = FALSE)
  [07:37:28.016]         }
  [07:37:28.016]         base::options(...future.oldOptions)
  [07:37:28.016]     })
  [07:37:28.016]     Sys.time
  [07:37:28.016]     if (base::is.na(TRUE)) {
  [07:37:28.016]     }
  [07:37:28.016]     else {
  [07:37:28.016]         base::sink(type = "output", split = FALSE)
  [07:37:28.016]         if (TRUE) {
  [07:37:28.016]             ...future.result$stdout <- base::rawToChar(base::rawConnectionValue(...future.stdout))
  [07:37:28.016]         }
  [07:37:28.016]         else {
  [07:37:28.016]             ...future.result["stdout"] <- base::list(NULL)
  [07:37:28.016]         }
  [07:37:28.016]         base::close(...future.stdout)
  [07:37:28.016]         ...future.stdout <- NULL
  [07:37:28.016]     }
  [07:37:28.016]     ...future.result$conditions <- ...future.conditions
  [07:37:28.016]     ...future.result
  [07:37:28.016] }
  [07:37:28.034] ClusterFuture started
  [07:37:28.035] result() for ClusterFuture ...
  [07:37:28.035] receiveMessageFromWorker() for ClusterFuture ...
  [07:37:28.036] - Validating connection of ClusterFuture
  [07:37:28.221] - received message: FutureResult
  [07:37:28.222] - Received FutureResult
  [07:37:28.222] - Erased future from FutureRegistry
  [07:37:28.223] result() for ClusterFuture ...
  [07:37:28.223] - result already collected: FutureResult
  [07:37:28.223] result() for ClusterFuture ... done
  [07:37:28.224] receiveMessageFromWorker() for ClusterFuture ... done
  [07:37:28.224] result() for ClusterFuture ... done
  [07:37:28.225] result() for ClusterFuture ...
  [07:37:28.225] - result already collected: FutureResult
  [07:37:28.225] result() for ClusterFuture ... done
  [07:37:28.226] plan(): plan_init() of 'tweaked', 'cluster', 'multiprocess', 'future', 'function' ... DONE
  [07:37:28.241] plan(): nbrOfWorkers() = 1
  > n <- nbrOfWorkers()
  > message(sprintf("nbrOfWorkers: %d", n))
  nbrOfWorkers: 1
  > stopifnot(n == max(1L, nworkers - 1L))
  > 
  > message("Type of future: remote")
  Type of future: remote
  > workers <- rep("localhost", times = 2L)
  > plan(remote, workers = workers)
  [07:37:28.245] plan(): Setting new future strategy stack:
  [07:37:28.245] List of future strategies:
  [07:37:28.245] 1. remote:
  [07:37:28.245]    - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, persistent = TRUE, workers = c("localhost", "localhost"), user = NULL, revtunnel = TRUE, gc = FALSE, earlySignal = FALSE, myip = NULL, label = NULL, ...)
  [07:37:28.245]    - tweaked: TRUE
  [07:37:28.245]    - call: plan(remote, workers = workers)
  [07:37:28.259] plan(): plan_init() of 'tweaked', 'remote', 'cluster', 'multiprocess', 'future', 'function' ...
  [07:37:28.259] remote:
  [07:37:28.259] - args: function (expr, envir = parent.frame(), substitute = TRUE, lazy = FALSE, seed = NULL, globals = TRUE, persistent = TRUE, workers = c("localhost", "localhost"), user = NULL, revtunnel = TRUE, gc = FALSE, earlySignal = FALSE, myip = NULL, label = NULL, ...)
  [07:37:28.259] - tweaked: TRUE
  [07:37:28.259] - call: plan(remote, workers = workers)
  [07:37:28.261] getGlobalsAndPackages() ...
  [07:37:28.261] Not searching for globals
  [07:37:28.261] - globals: [0] <none>
  [07:37:28.262] getGlobalsAndPackages() ... DONE
  [local output] Workers: [n = 2] 'localhost', 'localhost'
  [local output] Base port: 33054
  [local output] Creating node 1 of 2 ...
  [local output] - setting up node
  Testing if worker's PID can be inferred: ''/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d43aad7a0.pid")), silent = TRUE)' -e "file.exists('/tmp/RtmpjKWCNR/future.parent=1437.59d43aad7a0.pid')"'
  - Possible to infer worker's PID: TRUE
  [local output] Starting worker #1 on 'localhost': '/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e '#label=future/tests/nbrOfWorkers.R:gimli:hornik:1437' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d43aad7a0.pid")), silent = TRUE)' -e 'workRSOCK <- tryCatch(parallel:::.slaveRSOCK, error=function(e) parallel:::.workRSOCK); workRSOCK()' MASTER=127.0.0.1 PORT=33054 OUT=/dev/null TIMEOUT=120 XDR=TRUE
  [local output] - Exit code of system() call: 0
  [local output] Waiting for worker #1 on 'localhost' to connect back
  [local output] Detected a warning from socketConnection(): 'port 33054 cannot be opened'
  Warning in socketConnection("localhost", port = port, server = TRUE, blocking = TRUE,  :
    port 33054 cannot be opened
  Killing worker process (PID 4846) if still alive
  [07:37:30.306] Attempting to find a working pid_exists_*() function ...
  Call: tools::pskill(1437, signal = 0L)
  [1] TRUE
  Call: tools::pskill(1437, signal = 0L)
  [1] TRUE
  [07:37:30.307] - success
  [07:37:30.307] Attempting to find a working pid_exists_*() function ... done
  Worker (PID 4846) was successfully killed: TRUE
  Error in socketConnection("localhost", port = port, server = TRUE, blocking = TRUE,  : 
    Failed to launch and connect to R worker on local machine 'localhost' from local machine 'gimli'.
   * The error produced by socketConnection() was: 'cannot open the connection'
   * In addition, socketConnection() produced 1 warning(s):
     - Warning #1: 'port 33054 cannot be opened' (which suggests that this port is either already occupied by another process or blocked by the firewall on your local machine)
   * The localhost socket connection that failed to connect to the R worker used port 33054 using a communication timeout of 120 seconds and a connection timeout of 120 seconds.
   * Worker launch call: '/home/hornik/tmp/R.check/r-release-gcc/Work/build/bin/Rscript' --default-packages=datasets,utils,grDevices,graphics,stats,methods -e '#label=future/tests/nbrOfWorkers.R:gimli:hornik:1437' -e 'try(suppressWarnings(cat(Sys.getpid(),file="/tmp/RtmpjKWCNR/future.parent=1437.59d43aad7a0.pid")), silent = TRUE)' -e 'workRSOCK <- tryCatch(parallel:::.slaveRSOCK, error=function(e) parallel:::.workRSOCK); workRSOCK()' MASTER=127.0.0.1 PORT=33054 OUT=/dev/null TIMEOUT=120 XDR=TRUE.
   * Worker (PID 4846) was successfully killed: TRUE
   * Troubleshooting suggestions:
     - Suggestion #1: Set 'outfile=NULL' to see output from worker.
  Calls: plan ... tryCatchList -> tryCatchOne -> <Anonymous> -> <Anonymous>
  Execution halted