[R-pkg-devel] Segfaults on R-devel

Ben Bolker bbo|ker @end|ng |rom gm@||@com
Tue Jul 9 00:59:51 CEST 2024


   I'm pretty sure this is from this R-devel commit:

https://github.com/r-devel/r-svn/commit/92c1d5de23c93576f55062e26d446feface07250

  This turns on stricter boundary checking, specifically see 
https://github.com/lme4/lme4/issues/794#issuecomment-2154948145

   Arguably, accessing an element of a zero-length vector is at least 
undefined behaviour, so you shouldn't be doing it ...



On 2024-07-08 6:46 p.m., Claborne, Daniel via R-package-devel wrote:
> Seemingly starting with the most recent builds of R-devel, I�ve been getting segfaults related to a piece of cpp code that indexes a zero-size NumericVector.  Essentially the same as this dummy example:
> 
> ```
> library(Rcpp)
> 
> sourceCpp(
>    code = '
>    #include<Rcpp.h>
>    using namespace Rcpp;
> 
>    // [[Rcpp::export]]
>    NumericVector zeroindex() {
>      NumericVector zerosize(0);
> 
>      Rcout << zerosize[0] << std::endl;
> 
>      return zerosize;
>    }
>    '
> )
> 
> zeroindex()
> ```
> 
> On R-release and on previous builds, this returns something like:
> 
> ```
> 6.92674e-310
> numeric(0)
> ```
> 
> But on current R-devel containers:
> 
> ```
> 
>   *** caught segfault ***
> 
> address 0x1, cause 'memory not mapped'
> 
> 
> 
> Traceback:
> 
>   1: .Call(<pointer: 0x7fa9369c7930>)
> 
>   2: zeroindex()
> 
> 
> 
> Possible actions:
> 
> 1: abort (with core dump, if enabled)
> 
> 2: normal R exit
> 
> 3: exit R without saving workspace
> 
> 4: exit R saving workspace
> ```
> 
> It was easy enough to write a catch for the zero-size vector, however I�m wondering why the discrepancy between R-devel and previous versions?
> 
> Best,
> -DMC
> 
> 	[[alternative HTML version deleted]]
> 
> 
> ______________________________________________
> R-package-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-package-devel

-- 
Dr. Benjamin Bolker
Professor, Mathematics & Statistics and Biology, McMaster University
Director, School of Computational Science and Engineering
(Acting) Graduate chair, Mathematics & Statistics
 > E-mail is sent at my convenience; I don't expect replies outside of 
working hours.



More information about the R-package-devel mailing list