Skip to content

Computation continues after interruption of parallelised future workers in R #1086

@jfsalzmann

Description

@jfsalzmann

Describe the bug
I noticed that when doing parallel sampling from multiple (possibly different) STAN models within future workers and cancelling the execution of the main R script (the R parent process - in my case, using Ctrl+C in CLI mode), the STAN models and the children R processes will continue running as ghost processes. Appearently, something in the signal chain does not work. My guess is that although the signalling chain works well on the future side (this doesn't occur when no STAN model is running), the children R processes cannot stop as long as its children processes (= STAN process) are not stopped. I may be wrong though and this might be a bug in the future or foreach package, too.

To Reproduce

library(cmdstanr)
library(foreach)
library(doFuture)
plan(multisession,workers = 2)

foreach(i=1:2, .options.future = list(seed = TRUE), .inorder = F) %dofuture% {
    // Add code for starting the sampling of a (fairly long-running) STAN model
    // .. e.g. different(ly parameterised) models or data depending on i
}

Expected behavior
Same as when running STAN models directly: Interrupting the R script execution should immediately interrupt the sampling process.

Operating system
Ubuntu 22.04 LTS

CmdStanR version number
0.9.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions