I encountered a very bizarre error warning while running my code in a loop to do simulations. My code worked normally without error for some time before this suddenly happened.
Here is my R code:
stan.fit.mod4 <- stan(
file = "Orchid Stan Code NegBinNoInt v3c.stan", # Stan program
data = list(Y = dat_poi_int_list[[j]],
N = nrow(dat_poi_int_list[[j]]),
S = ncol(dat_poi_int_list[[j]]),
prior_only = F), # named list of data
chains = 4, # number of Markov chains
warmup = 1000, # number of warmup iterations per chain
iter = 3000, # total number of iterations per chain
cores = 4, # number of cores (could use one per chain)
control = list(adapt_delta=0.99,max_treedepth=12),
init = "0"
# refresh = 0 # no progress shown
)
Error in checkForRemoteErrors(val) :
4 nodes produced errors; first error: unable to load shared object ‘C:/Users/NELSJO~1/AppData/Local/Temp/RtmpeU0891/file3e0849571322.dll’:
LoadLibrary failure: Operation did not complete successfully because the file contains a virus or potentially unwanted software.
Any ideas on how to fix this issue or what has caused it?
Hi Nels, that’s very strange, thanks for letting us know. I definitely don’t think there’s a virus (or at least it didn’t come from RStan if you actually do have a virus), so I don’t know why you’re getting this message. According to https://ugetfix.com/ask/how-to-fix-operation-did-not-complete-successfully/:
There are three possible reasons you are seeing the Operation did not complete successfully error:
-The executable you just downloaded is actually infected with malware;
-Windows Defender or other security software is set to a maximum protection mode;
-It is a false-positive scan result from the AV vendor;
although I don’t know how reliable that site it.
One thing you can try is switching from using the stan() function to using stan_modlel() and sampling(), which does the same thing but splits it into a compile step and a sampling step. This is especially relevant when running RStan in a loop because of issues like this: Error in dyn.load(libLFile) - #2 by jonah. It’s possible that something related to that error is also at play here although I’m not 100% sure.
So if you’re running RStan in a loop I would use stan_model() once to compile your model outside the loop, and then inside the loop you can use sampling() repeatedly. For example:
mod <- stan_model(file)
for (j in 1:J) {
fit <- sampling(mod, data, chains, ...) # etc.
}
Thanks, Jonah. Your advice has seemed to resolve the issue (and speeds up my simulations!). I am going to leave this open for a few days just in case it happens again.