[Rd] core Matrix package segfaulted on R CMD check --use-gct
Douglas Bates
bates at stat.wisc.edu
Wed Mar 30 22:03:34 CEST 2011
On Tue, Mar 29, 2011 at 2:17 PM, Douglas Bates <bates at stat.wisc.edu> wrote:
> On Tue, Mar 29, 2011 at 5:34 AM, Hin-Tak Leung
> <htl10 at users.sourceforge.net> wrote:
>> Martin Maechler wrote:
>>>>>>>>
>>>>>>>> Douglas Bates <bates at stat.wisc.edu>
>>>>>>>> on Mon, 28 Mar 2011 09:24:39 -0500 writes:
>>>
>>> > Can you provide the output from sessionInfo()
>>>
>>> > so we can know the platform? Also, did you configure R
>>> > with --enable-strict-barrier or set the C compilation flag
>>> > -DTESTING_WRITE_BARRIER? I think that run-time error
>>> > message can only be thrown under those circumstances (not
>>> > that it isn't an error, it's just not checked for in other
>>> > circumstances).
>>>
>>> interesting.
>>>
>>> In the mean time, I *did* run --- for several hours! ---
>>> your code example below,
>>> and it did *not* segfault for me (64-bit, Linux Fedora 13).
>>>
>>> Martin
>>
>> 64-bit fedora 14. For building R svn (and checking soon-to-be-released R
>> packages, rather than daily R-related work), I also have these, and indeed
>> have "--enable-strict-barrier":
>>
>> export DEFS='-DUSE_TYPE_CHECKING_STRICT -DR_MEMORY_PROFILING' \
>> ./configure --enable-memory-profiling --enable-strict-barrier
>> --enable-byte-compiled-packages --with-valgrind-instrumentation=2
>>
>>> sessionInfo()
>> R version 2.14.0 Under development (unstable) (--)
>> Platform: x86_64-unknown-linux-gnu (64-bit)
>>
>> locale:
>> [1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
>> [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
>> [5] LC_MONETARY=C LC_MESSAGES=en_GB.UTF-8
>> [7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
>> [9] LC_ADDRESS=C LC_TELEPHONE=C
>> [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C
>>
>> attached base packages:
>> [1] stats graphics grDevices utils datasets methods base
>
> Thanks for the information. I can replicate the problem on a Red Hat
> EL 5 64-bit system and will start to debug now.
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.
>>>>>>>> Douglas Bates <bates at stat.wisc.edu>
>>>>>>>> on Mon, 28 Mar 2011 09:24:39 -0500 writes:
>>>
>>> > Can you provide the output from
>>> > sessionInfo()
>>>
>>> > so we can know the platform? Also, did you configure R with
>>> > --enable-strict-barrier or set the C compilation flag
>>> > -DTESTING_WRITE_BARRIER? I think that run-time error message can
>>> only
>>> > be thrown under those circumstances (not that it isn't an error, it's
>>> > just not checked for in other circumstances).
>>>
>>> > On Sat, Mar 26, 2011 at 5:21 PM, Hin-Tak Leung
>>> <hintak_leung at yahoo.co.uk> wrote:
>>> >> Current core/Recommended Matrix package (0.999375-48) has been
>>> segfaulting against R 2.13-alpha/2.14-trunk for the last week or so (since
>>> R-2.13 was branched, when I started trying) when "run with R CMD check
>>> --use-gct":
>>> >> >> --------------
>>> >>> pkgname <- "Matrix"
>>> >>> source(file.path(R.home("share"), "R", "examples-header.R"))
>>> >>> gctorture(TRUE)
>>> >>> options(warn = 1)
>>> >>> library('Matrix')
>>> >> Loading required package: lattice
>>> >> Error : .onLoad failed in loadNamespace() for 'Matrix', details:
>>> >> call: fun(...)
>>> >> error: unprotected object (0x2768b18) encountered (was REALSXP)
>>> >> Error: package/namespace load failed for 'Matrix'
>>> >> Execution halted
>>> >> ---------------
>>> >> >> I traced to this because "R CMD check --use-gct snpStats"
>>> (both 1.1.13 and 1.1.12) segfaults with the same message, and before that,
>>> the snpMatrix 1.15.8.4 which includes some of David's newly written ld() (
>>> which depends on Matrix.)
>>> >> >> If the Matrix package segfaults, David's new ld() isn't
>>> useable.
>>> >> >>
>>
>
More information about the R-devel
mailing list