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) ================================================================= ==535996==ERROR: AddressSanitizer: heap-use-after-free on address 0x7d12853a40b0 at pc 0x7b52712ce93c bp 0x7ffd0357fd10 sp 0x7ffd0357fd08 READ of size 16 at 0x7d12853a40b0 thread T0 #0 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/ProductEvaluators.h:925:46 #1 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:654:58 #2 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:668:5 #3 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:347:16 #4 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:785:3 #5 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:954:5 #6 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:890:3 #7 0x7b52712ce93b 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>>::value, void*>::type) /data/gannet/ripley/R/test-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:858:3 #8 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/AssignEvaluator.h:836:3 #9 0x7b52712ce93b 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-clang/RcppEigen/include/Eigen/src/Core/Assign.h:66:3 #10 0x7b52712ce93b in Eigen::Map, 0, Eigen::Stride<0, 0>>& Eigen::Map, 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-clang/RcppEigen/include/Eigen/src/Core/Map.h:162:5 #11 0x7b52712ce93b in lme4::merPredD::updateXwts(Eigen::Array const&) /data/gannet/ripley/R/packages/tests-clang-ASAN/lme4/src/predModule.cpp:221:30 #12 0x7b527125ccd2 in internal_glmerWrkIter(lme4::merPredD*, lme4::glmResp*, bool) /data/gannet/ripley/R/packages/tests-clang-ASAN/lme4/src/external.cpp:274:13 #13 0x7b527125ccd2 in pwrssUpdate(lme4::glmResp*, lme4::merPredD*, bool, double, int, int) /data/gannet/ripley/R/packages/tests-clang-ASAN/lme4/src/external.cpp:330:20 #14 0x7b527125bbc8 in glmerLaplace /data/gannet/ripley/R/packages/tests-clang-ASAN/lme4/src/external.cpp:386:9 #15 0x55d055484b06 in R_doDotCall /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:770:11 #16 0x55d055548d2d in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8700:21 #17 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #18 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #19 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #20 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #21 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #22 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #23 0x55d055588bc5 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585:8 #24 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #25 0x55d055586269 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3001:10 #26 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #27 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #28 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #29 0x55d055550eba in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #30 0x55d055550eba in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8121:16 #31 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #32 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #33 0x55d05553160a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976:13 #34 0x55d05552f4f5 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1185:6 #35 0x55d0555319a2 in Rf_evalList /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3683:12 #36 0x55d05552f9d1 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1249:20 #37 0x55d055588bc5 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585:8 #38 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #39 0x55d0555319a2 in Rf_evalList /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3683:12 #40 0x55d05552f9d1 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1249:20 #41 0x55d0555319a2 in Rf_evalList /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3683:12 #42 0x55d05552f9d1 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1249:20 #43 0x55d05553160a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976:13 #44 0x55d05552f2b7 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1191:2 #45 0x55d05553d77a in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150:14 #46 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #47 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #48 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #49 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #50 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #51 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #52 0x55d055586269 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3001:10 #53 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #54 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #55 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #56 0x55d055550eba in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #57 0x55d055550eba in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8121:16 #58 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #59 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #60 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #61 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #62 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #63 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #64 0x55d0553e5abc in do_docall /data/gannet/ripley/R/svn/R-devel/src/main/coerce.c:2788:12 #65 0x55d05553d77a in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150:14 #66 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #67 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #68 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #69 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #70 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #71 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #72 0x55d055588bc5 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585:8 #73 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #74 0x55d05558dfba in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3993:9 #75 0x55d05553d77a in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150:14 #76 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #77 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #78 0x55d05553160a in forcePromise /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:976:13 #79 0x55d05552f4f5 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1185:6 #80 0x55d05558e883 in do_withVisible /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4018:9 #81 0x55d0556374b9 in do_internal /data/gannet/ripley/R/svn/R-devel/src/main/names.c:1424:11 #82 0x55d055542f93 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8170:15 #83 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #84 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #85 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #86 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #87 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #88 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #89 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #90 0x55d055600be1 in Rf_ReplIteration /data/gannet/ripley/R/svn/R-devel/src/main/main.c:264:23 #91 0x55d055603410 in R_ReplConsole /data/gannet/ripley/R/svn/R-devel/src/main/main.c:317:11 #92 0x55d055603410 in run_Rmainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1235:5 #93 0x55d0556034a2 in Rf_mainloop /data/gannet/ripley/R/svn/R-devel/src/main/main.c:1242:5 #94 0x55d055304d3c in main /data/gannet/ripley/R/svn/R-devel/src/main/Rmain.c:29:5 #95 0x7f5288911574 in __libc_start_call_main (/lib64/libc.so.6+0x3574) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #96 0x7f5288911627 in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x3627) (BuildId: 92b5376d35bb29c098175948cf3e7cbcae3aeae1) #97 0x55d05521c7d4 in _start (/data/gannet/ripley/R/clang-ASAN/bin/exec/R+0x17d4) 0x7d12853a40b0 is located 48 bytes inside of 1840-byte region [0x7d12853a4080,0x7d12853a47b0) freed by thread T0 here: #0 0x55d0552c1916 in free /home/runner/work/llvm-project/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:51:3 #1 0x55d05561e31b in ReleaseLargeFreeVectors /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:1167:7 #2 0x55d05561e31b in RunGenCollect /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:1951:5 #3 0x55d05561118b in R_gc_internal /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:3237:19 #4 0x55d055626fc5 in CONS_NR /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:2519:2 #5 0x55d055541cfa in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8059:21 #6 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #7 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #8 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #9 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #10 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #11 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #12 0x55d0555819cb in do_if /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2709:20 #13 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #14 0x55d055586269 in do_begin /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3001:10 #15 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 #16 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #17 0x55d05558160a in R_execMethod /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2567:11 #18 0x7f52857e9f40 in R_dispatchGeneric /data/gannet/ripley/R/svn/R-devel/src/library/methods/src/methods_list_dispatch.c:1154:19 #19 0x55d055646853 in do_standardGeneric /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:1348:13 #20 0x55d05554ba1f in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8085:12 #21 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #22 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #23 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #24 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #25 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #26 0x55d055647e97 in R_possible_dispatch /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:1687:10 #27 0x55d05558fd49 in Rf_DispatchOrEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:4191:14 #28 0x55d055763a0a in R_DispatchOrEvalSP /data/gannet/ripley/R/svn/R-devel/src/main/subset.c:671:16 #29 0x55d055770b2f in do_subset3 /data/gannet/ripley/R/svn/R-devel/src/main/subset.c:1264:8 #30 0x55d05552f840 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1230:12 previously allocated by thread T0 here: #0 0x55d0552c1bb4 in malloc /home/runner/work/llvm-project/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:67:3 #1 0x55d05560bc7c in Rf_allocVector3 /data/gannet/ripley/R/svn/R-devel/src/main/memory.c:2894:7 #2 0x55d05536432b in Rf_allocVector /data/gannet/ripley/R/svn/R-devel/src/include/Rinlinedfuns.h:609:12 #3 0x55d05536432b in Rf_allocMatrix /data/gannet/ripley/R/svn/R-devel/src/main/array.c:236:17 #4 0x7b5277e9c0ce in modelmatrix /data/gannet/ripley/R/svn/R-devel/src/library/stats/src/model.c:676:17 #5 0x55d055479365 in do_External /data/gannet/ripley/R/svn/R-devel/src/main/dotcode.c:573:11 #6 0x55d05553d77a in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150:14 #7 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #8 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #9 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #10 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #11 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #12 0x55d05563de14 in dispatchMethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:473:16 #13 0x55d05563ca98 in Rf_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:523:9 #14 0x55d05563f073 in do_usemethod /data/gannet/ripley/R/svn/R-devel/src/main/objects.c:579:9 #15 0x55d055542f93 in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8170:15 #16 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #17 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #18 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #19 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #20 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #21 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #22 0x55d05558d653 in do_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3975:13 #23 0x55d05553d77a in bcEval_loop /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:8150:14 #24 0x55d055530d74 in bcEval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:7533:16 #25 0x55d05552f301 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1167:8 #26 0x55d055577a9c in R_execClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2398:39 #27 0x55d055576c58 in applyClosure_core /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2314:16 #28 0x55d0555323be in Rf_applyClosure /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:2333:16 #29 0x55d05552fd28 in Rf_eval /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:1278:12 #30 0x55d055588bc5 in do_set /data/gannet/ripley/R/svn/R-devel/src/main/eval.c:3585:8 SUMMARY: AddressSanitizer: heap-use-after-free /data/gannet/ripley/R/test-clang/RcppEigen/include/Eigen/src/Core/ProductEvaluators.h:925:46 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: 0x7d12853a3e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7d12853a3e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7d12853a3f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x7d12853a3f80: 00 00 00 00 00 00 00 00 00 00 00 fa fa fa fa fa 0x7d12853a4000: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa =>0x7d12853a4080: fd fd fd fd fd fd[fd]fd fd fd fd fd fd fd fd fd 0x7d12853a4100: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d12853a4180: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d12853a4200: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d12853a4280: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd 0x7d12853a4300: 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 ==535996==ABORTING