From luke-tierney at uiowa.edu  Fri Apr  8 20:48:49 2011
From: luke-tierney at uiowa.edu (luke-tierney at uiowa.edu)
Date: Fri, 8 Apr 2011 13:48:49 -0500
Subject: [Rd] core Matrix package segfaulted on R CMD check --use-gct
In-Reply-To: <191025.59368.qm@web29508.mail.ird.yahoo.com>
References: <191025.59368.qm@web29508.mail.ird.yahoo.com>
Message-ID: <alpine.DEB.2.00.1104081339440.1770@luke-inspiron>

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


[Rd] core Matrix package segfaulted on R CMD check --use-gct
luke-tierney at uiowa.edu