[Rd] core Matrix package segfaulted on R CMD check --use-gct

Martin Maechler maechler at stat.math.ethz.ch
Fri Apr 8 23:09:34 CEST 2011


Fantastic.  Thanks a lot, Luke!

 .... I can close the thread just to say the final    "it wasn't
Matrix after all!"
;-)


On Fri, Apr 8, 2011 at 20:48,  <luke-tierney at uiowa.edu> wrote:
> Fixed in R-devel by 55385 and R-2-113-branch by 55386.
>
> The problem was a call to install() in the C srouce code without
> protecting another value before the install call. This particular
> issue was very unlikely to cause a problem outside of a gctorture
> context, but in that context with the memory checking enabled by the
> strict barrier it will get caught.
>
> Quick notes in case someone else needs to track this sort of thing
> down: When gctorture is used in conjuction with the memory checks
> enabled by the strict barrier it is very likely that an error will be
> detected and signaled very close to where the problem in the C code
> actually is, which is why I tried an example using only regexpr when
> the error was being signaled there. Once a reproducable example is
> found, setting a breakpoint in memory.c:CHK on the line that signals
> the error gives a stack trace of the C calls involved, and in this
> case the culprit was pretty easy to find at that point.
>
> luke
>
> On Fri, 8 Apr 2011, Hin-Tak Leung wrote:
>
>> --- On Fri, 8/4/11, peter dalgaard <pdalgd at gmail.com> wrote:
>>
>>> On Apr 7, 2011, at 23:57 , Hin-Tak Leung wrote:
>>>
>>> > > Oh, I am tracking both R and Matrix via git-svn and
>>> retrieves all revisions to all branches daily (or at least,
>>> regularly). I.e. R svn head.  2.13.0 only forked off
>>> recently and most of the trunk<->2.13.0rc differences
>>> are so far mostly documentation-related. I could switch to
>>> track R 2.13.x branch if you insist.
>>> >
>>> Please do. It's the branch that is supposed to stabilize
>>> during prerelease times.
>>>
>>> Also, please check the prerelease tarballs, errors in "make
>>> dist" are not caught when building from svn.
>>
>> Just so that there is no doubt, here is the recipe with the latest rc tar
>> ball, cutting-and-pasting from my command history:
>>
>> wget -m
>> http://cran.r-project.org/src/base-prerelease/R-rc_2011-04-07_r55373.tar.gz
>> cd /tmp
>> tar -zxpvf
>> ~/cran.r-project.org/src/base-prerelease/R-rc_2011-04-07_r55373.tar.gz
>> cd R-rc/
>> export DEFS='-DUSE_TYPE_CHECKING_STRICT -DR_MEMORY_PROFILING' ;
>> ./configure  --enable-memory-profiling --enable-strict-barrier
>> --enable-byte-compiled-packages --with-valgrind-instrumentation=2  ; make
>> cd src/library/
>> cd Recommended/
>> ../../../bin/R CMD check --use-gct Matrix_0.999375-49.tar.gz
>>
>> ------------------------------
>> ...
>> Running examples in ‘Matrix-Ex.R’ failed
>> The error occurred in:
>>
>>
>> R version 2.13.0 RC (2011-04-07 r55373)
>> Copyright (C) 2011 The R Foundation for Statistical Computing
>> ISBN 3-900051-07-0
>> Platform: x86_64-unknown-linux-gnu (64-bit)
>> ...
>>>
>>> pkgname <- "Matrix"
>>> source(file.path(R.home("share"), "R", "examples-header.R"))
>>> gctorture(TRUE)
>>> options(warn = 1)
>>> library('Matrix')
>>
>> Loading required package: lattice
>> Error in regexpr("package:", envName, fixed = TRUE) :
>>  unprotected object (0x3be2ba8) encountered (was INTSXP)
>> Error: package/namespace load failed for 'Matrix'
>> Execution halted
>> -------------------------
>>
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
> --
> Luke Tierney
> Statistics and Actuarial Science
> Ralph E. Wareham Professor of Mathematical Sciences
> University of Iowa                  Phone:             319-335-3386
> Department of Statistics and        Fax:               319-335-3017
>   Actuarial Science
> 241 Schaeffer Hall                  email:      luke at stat.uiowa.edu
> Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu



More information about the R-devel mailing list