[R-pkg-team] Bug#972074: [Help] r-cran-bayestestr: autopkgtest regression

Dirk Eddelbuettel edd at debian.org
Thu Nov 19 13:53:06 GMT 2020


On 19 November 2020 at 14:37, Andreas Tille wrote:
| Control: tags -1 help
| 
| Hi, since version 0.7.0 (uploaded by Dylan Aïssi in CC) the autopkgtest
| of r-cran-bayestestr fails with the error mentioned in the bug log.  It
| has slightly changed with the version I pushed to Git.  It is now:
| 
| 
| > library(bayestestR)
| > 
| > if (length(strsplit(packageDescription("bayestestR")$Version, "\\.")[[1]]) > 3) {
| +   Sys.setenv("RunAllbayestestRTests" = "yes")
| + } else {
| +   Sys.setenv("RunAllbayestestRTests" = "no")                                                                                                                                           o
| + }                                                                                                                                                                                      n
| >                                                                                                                                                                                        s
| > test_check("bayestestR")
| 
|  *** caught segfault ***                                                                                                                                                                  
| address 0x7f9f3d27b008, cause 'invalid permissions'                                                                                                                                      n
| 
| Traceback:
|  1: dyn.load(file, DLLpath = DLLpath, ...)
|  2: library.dynam(lib, package, package.lib)
|  3: loadNamespace(package, lib.loc)
|  4: doTryCatch(return(expr), name, parentenv, handler)
|  5: tryCatchOne(expr, names, parentenv, handlers[[1L]])
|  6: tryCatchList(expr, classes, parentenv, handlers)
|  7: tryCatch({    attr(package, "LibPath") <- which.lib.loc    ns <- loadNamespace(package, lib.loc)    env <- attachNamespace(ns, pos = pos, deps, exclude, include.only)}, error = function(e) {    P <- if (!is.null(cc <- conditionCall(e)))         paste(" in", deparse(cc)[1L])    else ""    msg <- gettextf("package or namespace load failed for %s%s:\n %s",         sQuote(package), P, conditionMessage(e))    if (logical.return)         message(paste("Error:", msg), domain = NA)    else stop(msg, call. = FALSE, domain = NA)})
|  8: library(package, lib.loc = lib.loc, character.only = TRUE, logical.return = TRUE,     warn.conflicts = warn.conflicts, quietly = quietly, mask.ok = mask.ok,     exclude = exclude, include.only = include.only, attach.required = attach.required)
|  9: doTryCatch(return(expr), name, parentenv, handler)
| 10: tryCatchOne(expr, names, parentenv, handlers[[1L]])
| 11: tryCatchList(expr, classes, parentenv, handlers)
| 12: tryCatch(library(package, lib.loc = lib.loc, character.only = TRUE,     logical.return = TRUE, warn.conflicts = warn.conflicts, quietly = quietly,     mask.ok = mask.ok, exclude = exclude, include.only = include.only,     attach.required = attach.required), error = function(e) e)
| 13: require("rstanarm")
| 14: eval(code, test_env)
| 15: eval(code, test_env)
| 16: withCallingHandlers({    eval(code, test_env)    if (!handled && !is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning,     message = handle_message, error = handle_error)
| 17: doTryCatch(return(expr), name, parentenv, handler)
| 18: tryCatchOne(expr, names, parentenv, handlers[[1L]])
| 19: tryCatchList(expr, names[-nh], parentenv, handlers[-nh])
| 20: doTryCatch(return(expr), name, parentenv, handler)                                                                                                                                   o
| 21: tryCatchOne(tryCatchList(expr, names[-nh], parentenv, handlers[-nh]),     names[nh], parentenv, handlers[[nh]])                                                                      n
| 22: tryCatchList(expr, classes, parentenv, handlers)                                                                                                                                     s
| 23: tryCatch(withCallingHandlers({    eval(code, test_env)    if (!handled && !is.null(test)) {        skip_empty()    }}, expectation = handle_expectation, skip = handle_skip, warning = handle_warning,     message = handle_message, error = handle_error), error = handle_fatal,     skip = function(e) {    })
| 24: test_code(NULL, exprs, env)                                                                                                                                                           
| 25: source_file(path, child_env(env), wrap = wrap)                                                                                                                                       n
| 26: FUN(X[[i]], ...)
| 27: lapply(test_paths, test_one_file, env = env, wrap = wrap)
| 28: force(code)
| 29: doWithOneRestart(return(expr), restart)
| 30: withOneRestart(expr, restarts[[1L]])
| 31: withRestarts(testthat_abort_reporter = function() NULL, force(code))
| 32: with_reporter(reporters$multi, lapply(test_paths, test_one_file,     env = env, wrap = wrap))
| 33: test_files(test_dir = test_dir, test_package = test_package,     test_paths = test_paths, load_helpers = load_helpers, reporter = reporter,     env = env, stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning,     wrap = wrap, load_package = load_package)
| 34: test_files(test_dir = path, test_paths = test_paths, test_package = package,     reporter = reporter, load_helpers = load_helpers, env = env,     stop_on_failure = stop_on_failure, stop_on_warning = stop_on_warning,     wrap = wrap, load_package = load_package, parallel = parallel)
| 35: test_dir("testthat", package = package, reporter = reporter,     ..., load_package = "installed")
| 36: test_check("bayestestR")
| An irrecoverable exception occurred. R is aborting now ...
| Segmentation fault
| autopkgtest [10:57:07]: test run-unit-test: -----------------------]
| autopkgtest [10:57:07]: test run-unit-test:  - - - - - - - - - - results - - - - - - - - - -
| run-unit-test        FAIL non-zero exit status 139
| autopkgtest [10:57:07]: @@@@@@@@@@@@@@@@@@@@ summary
| run-unit-test        FAIL non-zero exit status 139
| 
| 
| I do not have the slightest idea what this might mean.

ABI/API slippage in the stack. An interface changed but a package didn't recompile.

| If nobody has any clue we should probably ask upstream about this.

That risks making you look foolish as upstream is (once again) 100% clean at
CRAN which is (to a first approximation) the only measure a CRAN author cares
about.  Copied and pasted from the results page [1] and lightly edited for
column alignment:


CRAN Package Check Results for Package bayestestR
Last updated on 2020-11-19 13:50:51 CET.

Flavor	Version	Tinstall		Tcheck	Ttotal	Status	Flags
r-devel-linux-x86_64-debian-clang	0.7.5	12.67	406.54	419.21	OK	
r-devel-linux-x86_64-debian-gcc		0.7.5	8.37	295.67	304.04	OK	
r-devel-linux-x86_64-fedora-clang	0.7.5			498.86	OK	
r-devel-linux-x86_64-fedora-gcc		0.7.5			487.49	OK	
r-devel-windows-ix86+x86_64		0.7.5	16.00	636.00	652.00	OK	
r-patched-linux-x86_64			0.7.5	12.72	388.61	401.33	OK	
r-patched-solaris-x86			0.7.5			725.40	OK	
r-release-linux-x86_64			0.7.5	12.04	390.98	403.02	OK	
r-release-macos-x86_64			0.7.5				OK	
r-release-windows-ix86+x86_64		0.7.5	13.00	652.00	665.00	OK	
r-oldrel-macos-x86_64			0.7.5				OK	
r-oldrel-windows-ix86+x86_64		0.7.5	11.00	500.00	511.00	OK


'OK' on every platform is as clean as it gets. It is an ambitious package
with a lot of Suggests. If you insist on loading all Suggests (which are,
after all, optional) then you simply have to make sure they are all
current. CRAN does that.  If you want to autotest you need to as well.

Dirk

[1] https://cran.r-project.org/web/checks/check_results_bayestestR.html


-- 
https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



More information about the R-pkg-team mailing list