From htl10 at users.sourceforge.net  Thu Apr  7 08:51:44 2011
From: htl10 at users.sourceforge.net (Hin-Tak Leung)
Date: Thu, 07 Apr 2011 07:51:44 +0100
Subject: [Rd] core Matrix package segfaulted on R CMD check --use-gct
In-Reply-To: <AANLkTi=Tjjq9JtuzYp8x4Pp=gtg2eGT7C6RoaXehmX_W@mail.gmail.com>
References: <255683.81856.qm@web29515.mail.ird.yahoo.com>	<AANLkTimDJbJ-u3wXOyvPB0EePf98AZ-R5duKVr+Guh-v@mail.gmail.com>	<19856.40809.236979.731769@stat.math.ethz.ch>	<4D91B5CC.1040500@users.sourceforge.net>	<AANLkTimuxb199-32D+043u9fNp7VsDjf5QD2qX3_Zjof@mail.gmail.com>
	<AANLkTi=Tjjq9JtuzYp8x4Pp=gtg2eGT7C6RoaXehmX_W@mail.gmail.com>
Message-ID: <4D9D5F00.9040200@users.sourceforge.net>

Douglas Bates wrote:
> I isolated the problem and tested then committed a fix. I am going to
> ask Martin to upload the new release as I have gotten out of sync with
> some of his recent changes and he will, I hope, reconcile the branches
> and trunk.  If you need the fixed version immediately, say for
> testing, the changes are in the file Matrix/src/chm_common.c  You can
> visit the SVN archive for the project,
> https://r-forge.r-project.org/scm/?group_id=61, click on the link to
> Browse Subversion Repository and go to pkg/Matrix/src/chm_common.c
> 
> I made the mistake that I chastised others for making, performing an
> operation on the result of a call to install and another value that
> may have required allocation of memory.  The first time install is
> called on a particular string it allocates and SEXPREC, which may
> cause a garbage collection.

Matrix-for-R-2.13 at 2659 (0.999375-49) has the problem at a different place:
 > pkgname <- "Matrix"
 > source(file.path(R.home("share"), "R", "examples-header.R"))
 > gctorture(TRUE)
 > options(warn = 1)
 > options(error=dump.frames)
 > library('Matrix')
Loading required package: lattice
Error in regexpr("package:", envName, fixed = TRUE) :
   unprotected object (0x2fe5818) encountered (was INTSXP)
Error: package/namespace load failed for 'Matrix'

That aside - with R 2.13 only about a week to go, which version of Matrix will 
it ship?

Either way, since this problem causes dependent packages to crash on load, I 
have made some local changes to load Matrix only on demand and not on library 
initialization, since only one routine needs it. I thought I'd add a warning as 
well, but if R crashes, the warning may not come out in time so there is little 
incentive of emitting a warning which may not be seen.



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