[Rd] Resizing a named vector crashes R with gctorture(TRUE) (PR#13837)
Hervé Pagès
hpages at fhcrc.org
Thu Jul 16 03:10:31 CEST 2009
murdoch at stats.uwo.ca wrote:
> On 15/07/2009 8:30 PM, murdoch at stats.uwo.ca wrote:
>> On 15/07/2009 8:08 PM, Hervé Pagès wrote:
>>> Hi,
>>>
>>> > x <- c(a=10, b=20)
>>> > length(x) <- 1
>>> > x
>>> a
>>> 10
>>>
>>> But with gctorture turned on, I get:
>>>
>>> > gctorture(TRUE)
>>> > x <- c(a=10, b=20)
>>> > length(x) <- 1
>>> > x
>>> a
>>> "a" <---- ???
>>>
>>> > x <- c(a=10, b=20)
>>> > length(x) <- 3
>>>
>>> *** caught segfault ***
>>> address (nil), cause 'unknown'
>>>
>>> Possible actions:
>>> 1: abort (with core dump, if enabled)
>>> 2: normal R exit
>>> 3: exit R without saving workspace
>>> 4: exit R saving workspace
>>>
>>> This seems to have been around for a while (I get this with R 2.10,
>>> 2.9 and 2.8). Note that I don't get this with an unnamed vector.
>>>
>>> This problem affects the methods package. I found it while
>>> troubleshooting the "Protection stack overflow" I reported earlier
>>> (see https://stat.ethz.ch/pipermail/r-devel/2009-July/054030.html)
>>> but I can't tell yet whether the 2 issues are related or not.
>> That's clearly a bug (reproducible in today's R-devel build); I've cc'd
>> this reply to r-bugs. I'll take a look and see if I can track it down.
>
> That's got to be the easiest low-level bug I've worked on in a while.
> Just a missing PROTECT. Now fixed, about to be committed to R-devel.
Thanks Duncan! And the "Protection stack overflow" issue that was affecting
the methods package is gone now :)
Cheers,
H.
>
> Duncan Murdoch
>
>>> It would be nice to see some reaction from the R developers
>>> about these issues. Thanks in advance!
>> You should post them as bug reports if they are as clearly bugs as this
>> one; otherwise they can easily get lost in the noise. I'm not going to
>> offer to look into the other one; I don't know the insides of the
>> methods package.
>>
>> Duncan Murdoch
>>
>>> H.
>>>
>>>
>>> hpages at fhcrc.org wrote:
>>>> Hi,
>>>>
>>>> > gctorture(TRUE)
>>>> > setGeneric("foo", function(x, y) standardGeneric("foo"))
>>>> [1] "foo"
>>>> > setMethod("foo", c("ANY", "ANY"),
>>>> + function(x, y) cat("calling foo,ANY,ANY method\n")
>>>> + )
>>>> Error: protect(): protection stack overflow
>>>>
>>>> Sorry this is something I already reported one week ago here
>>>> https://stat.ethz.ch/pipermail/r-devel/2009-July/053973.html
>>>> but I just had a 2nd look at it and realized that the problem
>>>> can in fact be reproduced out of the .onLoad() hook. So I'm
>>>> reporting it again with a different subject.
>>>>
>>>> See my sessionInfo() below. Thanks!
>>>> H.
>>>>
>>>>
>>>>> sessionInfo()
>>>> R version 2.10.0 Under development (unstable) (2009-06-26 r48837)
>>>> x86_64-unknown-linux-gnu
>>>>
>>>> locale:
>>>> [1] LC_CTYPE=en_CA.UTF-8 LC_NUMERIC=C
>>>> [3] LC_TIME=en_CA.UTF-8 LC_COLLATE=en_CA.UTF-8
>>>> [5] LC_MONETARY=C LC_MESSAGES=en_CA.UTF-8
>>>> [7] LC_PAPER=en_CA.UTF-8 LC_NAME=C
>>>> [9] LC_ADDRESS=C LC_TELEPHONE=C
>>>> [11] LC_MEASUREMENT=en_CA.UTF-8 LC_IDENTIFICATION=C
>>>>
>>>> attached base packages:
>>>> [1] stats graphics grDevices utils datasets methods base
>>>>
>>>> ______________________________________________
>>>> R-devel at r-project.org mailing list
>>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--
Hervé Pagès
Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M2-B876
P.O. Box 19024
Seattle, WA 98109-1024
E-mail: hpages at fhcrc.org
Phone: (206) 667-5791
Fax: (206) 667-1319
More information about the R-devel
mailing list