R Under development (unstable) (2026-07-04 r90207) -- "Unsuffered Consequences" Copyright (C) 2026 The R Foundation for Statistical Computing Platform: x86_64-pc-linux-gnu R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > if (lme4:::testLevel() > 1 || .Platform$OS.type!="windows") withAutoprint({ + + ## generalized linear mixed model + stopifnot(suppressPackageStartupMessages(require(lme4))) + options(show.signif.stars = FALSE) + + source(system.file("test-tools-1.R", package = "Matrix"), keep.source = FALSE) + ## + ##' Check that coefficient +- "2" * SD contains true value + ##' + ##' @title Check that confidence interval for coefficients contains true value + ##' @param fm fitted model, e.g., from lm(), lmer(), glmer(), .. + ##' @param true.coef numeric vector of true (fixed effect) coefficients + ##' @param conf.level confidence level for confidence interval + ##' @param sd.factor the "2", i.e. default 1.96 factor for the confidence interval + ##' @return TRUE or a string of "error" + ##' @author Martin Maechler + chkFixed <- function(fm, true.coef, conf.level = 0.95, + sd.factor = qnorm((1+conf.level)/2)) + { + stopifnot(is.matrix(cf <- coefficients(summary(fm))), ncol(cf) >= 2) + cc <- cf[,1] + sd <- cf[,2] + if(any(out1 <- true.coef < cc - sd.factor*sd)) + return(sprintf("true coefficient[j], j=%s, is smaller than lower confidence limit", + paste(which(out1), collapse=", "))) + if(any(out2 <- true.coef > cc + sd.factor*sd)) + return(sprintf("true coefficient[j], j=%s, is larger than upper confidence limit", + paste(which(out2), collapse=", "))) + ## else, return + TRUE + } + + + ## TODO: (1) move these to ./glmer-ex.R [DONE] + ## ---- (2) "rationalize" with ../man/cbpp.Rd + #m1e <- glmer1(cbind(incidence, size - incidence) ~ period + (1 | herd), + # family = binomial, data = cbpp, doFit = FALSE) + ## now + #bobyqa(m1e, control = list(iprint = 2L)) + + m1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), + family = binomial, data = cbpp) + m1. <- update(m1, start = getME(m1, c("theta", "fixef"))) + dm1 <- drop1(m1) + stopifnot(all.equal(drop1(m1.), dm1, tol = 1e-10))# Lnx(F28) 64b: 4e-12 + ## response as a vector of probabilities and usage of argument "weights" + m1p <- glmer(incidence / size ~ period + (1 | herd), weights = size, + family = binomial, data = cbpp) + ## Confirm that these are equivalent: + stopifnot(all.equal(fixef(m1), fixef(m1p)), + all.equal(ranef(m1), ranef(m1p)), + TRUE) + ## for(m in c(m1, m1p)) { + ## cat("-------\\n\\nCall: ", + ## paste(format(getCall(m)), collapse="\\n"), "\\n") + ## print(logLik(m)); cat("AIC:", AIC(m), "\\n") ; cat("BIC:", BIC(m),"\\n") + ## } + stopifnot(all.equal(logLik(m1), logLik(m1p)), + all.equal(AIC(m1), AIC(m1p)), + all.equal(BIC(m1), BIC(m1p))) + + + ## changed tolPwrss to 1e-7 to match other default + m1b <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), + family = binomial, data = cbpp, verbose = 2L, + control = + glmerControl(optimizer="bobyqa", tolPwrss=1e-7, + optCtrl=list(rhobeg=0.2, rhoend=2e-7))) + + ## using nAGQ=9L provides a better evaluation of the deviance + m.9 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), + family = binomial, data = cbpp, nAGQ = 9) + + ## check with nAGQ = 25 + m2 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), + family = binomial, data = cbpp, nAGQ = 25) + + ## loosened tolerance on parameters + stopifnot(is((cm2 <- coef(m2)), "coef.mer"), + dim(cm2$herd) == c(15,4), + all.equal(fixef(m2), + ### lme4a [from an Ubuntu 11.10 amd64 system] + c(-1.39922533406847, -0.991407294757321, + -1.12782184600404, -1.57946627431248), + ##c(-1.3766013, -1.0058773, + ## -1.1430128, -1.5922817), + tolerance = 5.e-4, + check.attributes=FALSE), + all.equal(c(-2*logLik(m2)), 100.010030538022, tolerance=1e-9), + all.equal(deviance(m2), 73.373, tolerance=1e-5) + ## with bobyqa first (AGQ=0), then + ##all.equal(deviance(m2), 101.119749563, tolerance=1e-9) + ) + + ## 32-bit Ubuntu 10.04: + coef_m1_lme4.0 <- structure(c(-1.39853505102576, + -0.992334712470269, -1.12867541092127, + -1.58037389566025), + .Names = c("(Intercept)", "period2", "period3", + "period4")) + + ## library(glmmADMB) + ## mg <- glmmadmb(cbind(incidence, size - incidence) ~ period + (1 | herd), + ## family = "binomial", data = cbpp) + coef_m1_glmmadmb <- structure(c(-1.39853810064827, -0.99233330126975, -1.12867317840779, + -1.58031150854503), .Names = c("(Intercept)", "period2", "period3", + "period4")) + + ## library(glmmML) + ## mm <- glmmML(cbind(incidence, size - incidence) ~ period, + ## cluster=herd, + ## family = "binomial", data = cbpp) + coef_m1_glmmML <- structure(c(-1.39853234657711, -0.992336901732793, -1.12867036466201, + -1.58030977686564), .Names = c("(Intercept)", "period2", "period3", + "period4")) + + ## lme4[r 1636], 64-bit ubuntu 11.10: + ## c(-1.3788385, -1.0589543, + ## -1.1936382, -1.6306271), + + stopifnot(is((cm1 <- coef(m1b)), "coef.mer"), + dim(cm1$herd) == c(15,4), + all.equal(fixef(m1b),fixef(m1),tolerance=4e-5), + is.all.equal4(fixef(m1b), + coef_m1_glmmadmb, + coef_m1_lme4.0, + coef_m1_glmmML, + tol = 5e-4) + ) + + + ## Deviance for the new algorithm is lower, eventually we should change the previous test + ##stopifnot(deviance(m1) <= deviance(m1e)) + + showProc.time() # + + if (require('MASS', quietly = TRUE)) { + bacteria$wk2 <- bacteria$week > 2 + contrasts(bacteria$trt) <- + structure(contr.sdif(3), + dimnames = list(NULL, c("diag", "encourage"))) + print(fm5 <- glmer(y ~ trt + wk2 + (1|ID), + data=bacteria, family=binomial)) + showProc.time() # + + stopifnot( + all.equal(logLik(fm5), + ## was -96.127838 + structure(-96.13069, nobs = 220L, nall = 220L, + df = 5L, REML = FALSE, + class = "logLik"), + tolerance = 5e-4, check.attributes = FALSE) + , + all.equal(fixef(fm5), + ## was 2.834218798 -1.367099481 + c("(Intercept)"= 2.831609490, "trtdiag"= -1.366722631, + ## now 0.5842291915, -1.599148773 + "trtencourage"=0.5840147802, "wk2TRUE"=-1.598591346), + tolerance = 1e-4 ) + ) + } + + ## Failure to specify a random effects term - used to give an obscure message + ## Ensure *NON*-translated message; works on Linux,... : + if(.Platform$OS.type == "unix") { + Sys.setlocale("LC_MESSAGES", "C") + tc <- tryCatch( + m2 <- glmer(incidence / size ~ period, weights = size, + family = binomial, data = cbpp) + , error = function(.) .) + stopifnot(inherits(tc, "error"), + identical(tc$message, + "No random effects terms specified in formula")) + } + + + ## glmer - Modeling overdispersion as "mixture" aka + ## ----- - *ONE* random effect *PER OBSERVATION" -- example inspired by Ben Bolker: + + ##' + ##' + ##'
+ ##' @title + ##' @param ng number of groups + ##' @param nr number of "runs", i.e., observations per groups + ##' @param sd standard deviations of group and "Individual" random effects, + ##' (\sigma_f, \sigma_I) + ##' @param b true beta (fixed effects) + ##' @return a data frame (to be used in glmer()) with columns + ##' (x, f, obs, eta0, eta, mu, y), where y ~ Pois(lambda(x)), + ##' log(lambda(x_i)) = b_1 + b_2 * x + G_{f(i)} + I_i + ##' and G_k ~ N(0, \sigma_f); I_i ~ N(0, \sigma_I) + ##' @author Ben Bolker and Martin Maechler + rPoisGLMMi <- function(ng, nr, sd=c(f = 1, ind = 0.5), b=c(1,2)) + { + stopifnot(nr >= 1, ng >= 1, + is.numeric(sd), names(sd) %in% c("f","ind"), sd >= 0) + ntot <- nr*ng + b.reff <- rnorm(ng, sd= sd[["f"]]) + b.rind <- rnorm(ntot,sd= sd[["ind"]]) + x <- runif(ntot) + within(data.frame(x, + f = factor(rep(LETTERS[1:ng], each=nr)), + obs = 1:ntot, + eta0 = cbind(1, x) %*% b), + { + eta <- eta0 + b.reff[f] + b.rind[obs] + mu <- exp(eta) + y <- rpois(ntot, lambda=mu) + }) + } + + set.seed(1) + dd <- rPoisGLMMi(12, 20) + m0 <- glmer(y~x + (1|f), family="poisson", data=dd) + m1 <- glmer(y~x + (1|f) + (1|obs), family="poisson", data=dd) + stopifnot(isTRUE(chkFixed(m0, true.coef = c(1,2))), + isTRUE(chkFixed(m1, true.coef = c(1,2)))) + (a01 <- anova(m0, m1)) + + stopifnot(all.equal(a01$Chisq[2], 554.334056, tolerance=1e-5), + all.equal(a01$logLik, c(-1073.77193, -796.604902), tolerance=1e-6), + a01$ npar == 3:4, + na.omit(a01$ Df) == 1) + + if(lme4:::testLevel() > 1) { + nsim <- 10 + set.seed(2) + system.time( + simR <- lapply(1:nsim, function(i) { + cat(i,"", if(i %% 20 == 0)"\n") + dd <- rPoisGLMMi(10 + rpois(1, lambda=3), + 16 + rpois(1, lambda=5)) + m0 <- glmer(y~x + (1|f), family="poisson", data=dd) + m1 <- glmer(y~x + (1|f) + (1|obs), family="poisson", data=dd) + a01 <- anova(m0, m1) + stopifnot(a01$ npar == 3:4, + na.omit(a01$ Df) == 1) + list(chk0 = chkFixed(m0, true.coef = c(1,2)), + chk1 = chkFixed(m1, true.coef = c(1,2)), + chisq= a01$Chisq[2], + lLik = a01$logLik) + })) + + ## m0 is the wrong model, so we don't expect much here: + table(unlist(lapply(simR, `[[`, "chk0"))) + + + ## If the fixed effect estimates were unbiased and the standard errors correct, + ## and N(0,sigma^2) instead of t_{nu} good enough for the fixed effects, + ## the confidence interval should contain the true coef in ~95 out of 100: + table(unlist(lapply(simR, `[[`, "chk1"))) + + ## The tests are all highly significantly in favor of m1 : + summary(chi2s <- sapply(simR, `[[`, "chisq")) + ## Min. 1st Qu. Median Mean 3rd Qu. Max. + ## 158.9 439.0 611.4 698.2 864.3 2268.0 + stopifnot(chi2s > qchisq(0.9999, df = 1)) + } + + showProc.time() + }) ## skip if windows and testLevel<1 > stopifnot(suppressPackageStartupMessages(require(lme4))) > options(show.signif.stars = FALSE) > source(system.file("test-tools-1.R", package = "Matrix"), keep.source = FALSE) Loading required package: tools > chkFixed <- function(fm, true.coef, conf.level = 0.95, sd.factor = qnorm((1 + + conf.level)/2)) { + stopifnot(is.matrix(cf <- coefficients(summary(fm))), ncol(cf) >= 2) + cc <- cf[, 1] + sd <- cf[, 2] + if (any(out1 <- true.coef < cc - sd.factor * sd)) + return(sprintf("true coefficient[j], j=%s, is smaller than lower confidence limit", + paste(which(out1), collapse = ", "))) + if (any(out2 <- true.coef > cc + sd.factor * sd)) + return(sprintf("true coefficient[j], j=%s, is larger than upper confidence limit", + paste(which(out2), collapse = ", "))) + TRUE + } > m1 <- glmer(cbind(incidence, size - incidence) ~ period + (1 | herd), + family = binomial, data = cbpp) ================================================================= ==3902716==ERROR: AddressSanitizer: heap-use-after-free on address 0x7d9adc3a40b0 at pc 0x7bdac59d0d9d bp 0x7ffcda059a50 sp 0x7ffcda059a48 READ of size 8 at 0x7d9adc3a40b0 thread T0 #0 0x7bdac59d0d9c in Eigen::internal::product_evaluator, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1>, 8, Eigen::DiagonalShape, Eigen::DenseShape, double, double>::coeff(long, long) const /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/ProductEvaluators.h:925 #1 0x7bdac59d0d9c in Eigen::internal::generic_dense_assignment_kernel, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> >, Eigen::internal::assign_op, 0>::assignCoeff(long, long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:654 #2 0x7bdac59d0d9c in Eigen::internal::generic_dense_assignment_kernel, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> >, Eigen::internal::assign_op, 0>::assignCoeffByOuterInner(long, long) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:668 #3 0x7bdac59d0d9c in Eigen::internal::dense_assignment_loop, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> >, Eigen::internal::assign_op, 0>, 0, 0>::run(Eigen::internal::generic_dense_assignment_kernel, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> >, Eigen::internal::assign_op, 0>&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:347 #4 0x7bdac59d0d9c in void Eigen::internal::call_dense_assignment_loop, 0, Eigen::Stride<0, 0> >, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::assign_op >(Eigen::Map, 0, Eigen::Stride<0, 0> >&, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> const&, Eigen::internal::assign_op const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:785 #5 0x7bdac59d0d9c in Eigen::internal::Assignment, 0, Eigen::Stride<0, 0> >, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::assign_op, Eigen::internal::Dense2Dense, void>::run(Eigen::Map, 0, Eigen::Stride<0, 0> >&, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> const&, Eigen::internal::assign_op const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:954 #6 0x7bdac59d0d9c in void Eigen::internal::call_assignment_no_alias, 0, Eigen::Stride<0, 0> >, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::assign_op >(Eigen::Map, 0, Eigen::Stride<0, 0> >&, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> const&, Eigen::internal::assign_op const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:890 #7 0x7bdac59d0d9c in void Eigen::internal::call_assignment, 0, Eigen::Stride<0, 0> >, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::assign_op >(Eigen::Map, 0, Eigen::Stride<0, 0> >&, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> const&, Eigen::internal::assign_op const&, Eigen::internal::enable_if, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1>, Eigen::internal::evaluator_traits, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> >::Shape>::value, void*>::type) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:858 #8 0x7bdac59d0d9c in void Eigen::internal::call_assignment, 0, Eigen::Stride<0, 0> >, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> >(Eigen::Map, 0, Eigen::Stride<0, 0> >&, Eigen::Product, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:836 #9 0x7bdac59d0d9c in Eigen::Map, 0, Eigen::Stride<0, 0> >& Eigen::MatrixBase, 0, Eigen::Stride<0, 0> > >::operator=, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> >(Eigen::DenseBase, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1> > const&) /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/Assign.h:66 #10 0x7bdac59d0d9c in lme4::merPredD::updateXwts(Eigen::Array const&) /data/gannet/ripley/R/packages/tests-gcc-SAN/lme4/src/predModule.cpp:221 #11 0x7bdac5846416 in internal_glmerWrkIter /data/gannet/ripley/R/packages/tests-gcc-SAN/lme4/src/external.cpp:274 #12 0x7bdac5846416 in pwrssUpdate /data/gannet/ripley/R/packages/tests-gcc-SAN/lme4/src/external.cpp:330 #13 0x7bdac585e3d4 in glmerLaplace /data/gannet/ripley/R/packages/tests-gcc-SAN/lme4/src/external.cpp:386 #14 0x00000075005e in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:770 #15 0x0000008ed70a in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8700 #16 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #17 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #18 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #19 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #20 0x000000863098 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #21 0x000000863098 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278 #22 0x000000894a2e in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585 #23 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #24 0x00000087729b in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3001 #25 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #26 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #27 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #28 0x00000088038b in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #29 0x0000008eb805 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8121 #30 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #31 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #32 0x000000930ad1 in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976 #33 0x00000086405c in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1185 #34 0x0000008952f4 in Rf_evalList /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3683 #35 0x00000086388c in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1249 #36 0x000000894a2e in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585 #37 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #38 0x0000008952f4 in Rf_evalList /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3683 #39 0x00000086388c in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1249 #40 0x0000008952f4 in Rf_evalList /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3683 #41 0x00000086388c in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1249 #42 0x000000930ad1 in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976 #43 0x000000863f37 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1191 #44 0x0000008d6d02 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150 #45 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #46 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #47 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #48 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #49 0x000000863098 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #50 0x000000863098 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278 #51 0x00000087729b in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3001 #52 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #53 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #54 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #55 0x00000088038b in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #56 0x0000008eb805 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8121 #57 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #58 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #59 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #60 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #61 0x000000863098 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #62 0x000000863098 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278 #63 0x0000006237b5 in do_docall /data/gannet/ripley/R/svn/R-devel/src/main/coerce.c:2788 #64 0x0000008d6d02 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150 #65 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #66 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #67 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #68 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #69 0x000000863098 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #70 0x000000863098 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278 #71 0x000000894a2e in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585 #72 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #73 0x00000089d693 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3993 #74 0x0000008d6d02 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150 #75 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #76 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #77 0x000000930ad1 in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976 #78 0x00000086405c in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1185 #79 0x00000089f4c3 in do_withVisible /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4018 #80 0x000000a9e436 in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1424 #81 0x0000008e3f11 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8170 #82 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #83 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #84 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #85 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #86 0x000000863098 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #87 0x000000863098 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278 #88 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #89 0x000000a0b688 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:264 #90 0x000000a0b688 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317 #91 0x000000a1a97a in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1235 #92 0x000000a1aa12 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1242 #93 0x00000041306f in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29 #94 0x7fdadf812574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #95 0x7fdadf812627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #96 0x000000413a14 in _start (/data/gannet/ripley/R/gcc-SAN3/bin/exec/R+0x413a14) (BuildId: f060bf4ee83b802127121439cefaeb137652c0ab) 0x7d9adc3a40b0 is located 48 bytes inside of 1840-byte region [0x7d9adc3a4080,0x7d9adc3a47b0) freed by thread T0 here: #0 0x7fdae0ee5beb in free.part.0 (/lib64/libasan.so.8+0xe5beb) (BuildId: d3cb6206dff19da52969c009f4cd93611901c478) #1 0x000000a1bf9f in ReleaseLargeFreeVectors /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:1167 #2 0x000000a49e0d in RunGenCollect /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:1951 #3 0x000000a7244d in R_gc_internal /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:3237 #4 0x000000a9428b in Rf_allocSExp /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:2448 #5 0x0000007a6ee9 in Rf_allocSExp /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:2443 #6 0x0000007a6ee9 in duplicate1 /data/gannet/ripley/R/svn/R-devel/src/main/duplicate.c:304 #7 0x00000085aea7 in Rf_duplicate /data/gannet/ripley/R/svn/R-devel/src/main/duplicate.c:141 #8 0x00000085aea7 in R_withCallingErrorHandler /data/gannet/ripley/R/svn/R-devel/src/main/errors.c:2592 #9 0x7fdadc54e73f in R_evalHandleError /data/gannet/ripley/R/svn/R-devel/src/library/methods/src/methods_list_dispatch.c:93 #10 0x7fdadc54e73f in R_dispatchGeneric /data/gannet/ripley/R/svn/R-devel/src/library/methods/src/methods_list_dispatch.c:1109 #11 0x000000ab5d56 in do_standardGeneric /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:1348 #12 0x0000008f0311 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8085 #13 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #14 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #15 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #16 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #17 0x000000ab91dc in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #18 0x000000ab91dc in R_possible_dispatch /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:1687 #19 0x000000899880 in Rf_DispatchOrEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4191 #20 0x000000d0bd6b in R_DispatchOrEvalSP /data/gannet/ripley/R/svn/R-devel/src/main/subassign.c:1564 #21 0x000000d6ba7f in do_subset3 /data/gannet/ripley/R/svn/R-devel/src/main/subset.c:1264 #22 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #23 0x000000862f2e in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1219 #24 0x00000087729b in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3001 #25 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #26 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #27 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #28 0x00000088038b in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #29 0x0000008eb805 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8121 #30 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #31 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #32 0x000000930ad1 in forcePromise.part.0.lto_priv.0 /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976 #33 0x00000086405c in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1185 previously allocated by thread T0 here: #0 0x7fdae0ee6f2b in malloc (/lib64/libasan.so.8+0xe6f2b) (BuildId: d3cb6206dff19da52969c009f4cd93611901c478) #1 0x000000a7a3e0 in Rf_allocVector3 /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:2894 #2 0x0000005077b3 in Rf_allocVector /data/gannet/ripley/R/svn/R-devel/src/include/Rinlinedfuns.h:609 #3 0x0000005077b3 in Rf_allocMatrix /data/gannet/ripley/R/svn/R-devel/src/main/array.c:236 #4 0x7bdace14b36e in modelmatrix /data/gannet/ripley/R/svn/R-devel/src/library/stats/src/model.c:676 #5 0x00000073b52a in do_External /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:573 #6 0x0000008d6d02 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150 #7 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #8 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #9 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #10 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #11 0x000000a9f646 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #12 0x000000a9f646 in applyMethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:120 #13 0x000000aa3480 in dispatchMethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:473 #14 0x000000aa56c0 in Rf_usemethod.isra.0 /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:523 #15 0x000000aa6026 in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:579 #16 0x0000008e3f11 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8170 #17 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #18 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #19 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #20 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #21 0x000000863098 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #22 0x000000863098 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278 #23 0x00000089c5a1 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3975 #24 0x0000008d6d02 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150 #25 0x0000008c3f63 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533 #26 0x0000008629ea in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167 #27 0x00000087ad2a in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398 #28 0x00000087ecdd in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314 #29 0x000000863098 in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333 #30 0x000000863098 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278 #31 0x000000894a2e in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585 #32 0x0000008634c6 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230 #33 0x00000089d693 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3993 SUMMARY: AddressSanitizer: heap-use-after-free /data/gannet/ripley/R/test-dev/RcppEigen/include/Eigen/src/Core/ProductEvaluators.h:925 in Eigen::internal::product_evaluator, 0, Eigen::Stride<0, 0> > const>, Eigen::Map, 0, Eigen::Stride<0, 0> >, 1>, 8, Eigen::DiagonalShape, Eigen::DenseShape, double, double>::coeff(long, long) const Shadow bytes around the buggy address: 0x7d9adc3a3e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7d9adc3a3e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7d9adc3a3f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7d9adc3a3f80: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa 0x7d9adc3a4000: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa =>0x7d9adc3a4080: fd fd fd fd fd fd[fd]fd fd fd fd fd fd fd fd fd 0x7d9adc3a4100: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d9adc3a4180: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d9adc3a4200: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d9adc3a4280: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d9adc3a4300: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb ==3902716==ABORTING