On one of the CRAN checks for the last patch submission, Uwe Ligges noted that building the fully-bayesian vignette segfaults. It looks like it happens on rebuilding the vignette, and it might be an RcppParallel issue. Error log is below. Uwe said we might wish to resolve this before our next submission, though it is up on CRAN now.
*** caught segfault ***
address (nil), cause 'unknown'
An irrecoverable exception occurred. R is aborting now ...
* checking for unstated dependencies in vignettes ... OK
* checking package vignettes in ‘inst/doc’ ... OK
* checking re-building of vignette outputs ... [180s/227s] ERROR
Error(s) in re-building vignettes:
--- re-building ‘rubias-fully-bayesian.Rmd’ using rmarkdown
*** caught segfault ***
address 0x7d41257b2144, cause 'memory not mapped'
Traceback:
1: RcppParallel::defaultNumThreads()
2: RcppParallel::setThreadOptions(numThreads = RcppParallel::defaultNumThreads())
3: eval(expr, envir, enclos)
4: eval(expr, envir, enclos)
5: eval_with_user_handlers(expr, envir, enclos, user_handlers)
6: withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers))
7: withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler)
8: handle(ev <- withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler))
9: timing_fn(handle(ev <- withCallingHandlers(withVisible(eval_with_user_handlers(expr, envir, enclos, user_handlers)), warning = wHandler, error = eHandler, message = mHandler)))
10: evaluate_call(expr, parsed$src[[i]], envir = envir, enclos = enclos, debug = debug, last = i == length(out), use_try = stop_on_error != 2L, keep_warning = keep_warning, keep_message = keep_message, log_echo = log_echo, log_warning = log_warning, output_handler = output_handler, include_timing = include_timing)
11: evaluate::evaluate(...)
12: evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options))
13: in_dir(input_dir(), expr)
14: in_input_dir(evaluate(code, envir = env, new_device = FALSE, keep_warning = if (is.numeric(options$warning)) TRUE else options$warning, keep_message = if (is.numeric(options$message)) TRUE else options$message, stop_on_error = if (is.numeric(options$error)) options$error else { if (options$error && options$include) 0L else 2L }, output_handler = knit_handlers(options$render, options)))
15: eng_r(options)
16: block_exec(params)
17: call_block(x)
18: process_group.block(group)
19: process_group(group)
20: withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) if (xfun::pkg_available("rlang", "1.0.0")) rlang::entrace(e))
21: withCallingHandlers(expr, error = function(e) { loc = paste0(current_lines(), label, sprintf(" (%s)", knit_concord$get("infile"))) message(one_string(handler(e, loc)))})
22: handle_error(withCallingHandlers(if (tangle) process_tangle(group) else process_group(group), error = function(e) if (xfun::pkg_available("rlang", "1.0.0")) rlang::entrace(e)), function(e, loc) { setwd(wd) write_utf8(res, output %n% stdout()) paste0("\nQuitting from lines ", loc) }, if (labels[i] != "") sprintf(" [%s]", labels[i]))
23: process_file(text, output)
24: knitr::knit(knit_input, knit_output, envir = envir, quiet = quiet)
25: rmarkdown::render(file, encoding = encoding, quiet = quiet, envir = globalenv(), output_dir = getwd(), ...)
26: vweave_rmarkdown(...)
27: engine$weave(file, quiet = quiet, encoding = enc)
28: doTryCatch(return(expr), name, parentenv, handler)
29: tryCatchOne(expr, names, parentenv, handlers[[1L]])
30: tryCatchList(expr, classes, parentenv, handlers)
31: tryCatch({ engine$weave(file, quiet = quiet, encoding = enc) setwd(startdir) output <- find_vignette_product(name, by = "weave", engine = engine) if (!have.makefile && vignette_is_tex(output)) { texi2pdf(file = output, clean = FALSE, quiet = quiet) output <- find_vignette_product(name, by = "texi2pdf", engine = engine) }}, error = function(e) { OK <<- FALSE message(gettextf("Error: processing vignette '%s' failed with diagnostics:\n%s", file, conditionMessage(e)))})
32: tools:::.buildOneVignette("rubias-fully-bayesian.Rmd", "/data/gannet/ripley/R/packages/tests-Intel/rubias.Rcheck/vign_test/rubias", TRUE, FALSE, "rubias-fully-bayesian", "UTF-8", "/tmp/RtmpFpmQyS/working_dir/RtmpKvfmCA/file139e3453071947.rds")
An irrecoverable exception occurred. R is aborting now ...
--- re-building ‘rubias-overview.Rmd’ using rmarkdown
--- finished re-building ‘rubias-overview.Rmd’
--- re-building ‘rubias-underlying-data-structures.Rmd’ using rmarkdown
--- finished re-building ‘rubias-underlying-data-structures.Rmd’
SUMMARY: processing the following file failed:
‘rubias-fully-bayesian.Rmd’
Error: Vignette re-building failed.
Execution halted
On one of the CRAN checks for the last patch submission, Uwe Ligges noted that building the fully-bayesian vignette segfaults. It looks like it happens on rebuilding the vignette, and it might be an RcppParallel issue. Error log is below. Uwe said we might wish to resolve this before our next submission, though it is up on CRAN now.