[Rd] R crashes for large formulas in lm() (PR#8180)
Prof Brian Ripley
ripley at stats.ox.ac.uk
Wed Oct 5 14:38:12 CEST 2005
This is almost certainly C stack overflow, which will be _very_
OS-specific. I can run this 9-var example in Linux with a stacksize of
30Mb, but not the default 10Mb. I tried it with the default stack under
valgrind, and it works.
Windows versions of R have I believe a stack of 8Mb, and so I suspect are
running close to that with 8-var example.
The problem appears to be recursion in StripTerm.
On Wed, 5 Oct 2005, Barry Rowlingson wrote:
> Prof Brian Ripley wrote:
>
>> OK, let's try to reproduce that:
>>
>>
>>> x1 <- runif(1000)
> ...
>>> y <- rnorm(1000)
>>> fit <- lm(y~(x1*x2*x3*x4*x5*x6*x7*x8)^2)
>>
>>
>> No crash, a quite reasonable fit.
>
> Add one more:
>
> > x9 <- runif(1000)
>
> works with 8:
>
> > fit <- lm(y~(x1*x2*x3*x4*x5*x6*x7*x8)^2)
>
> but go 'one over the eight' and:
>
> > fit <- lm(y~(x1*x2*x3*x4*x5*x6*x7*x8*x9)^2)
> Segmentation fault
>
>
> platform i686-pc-linux-gnu
> arch i686
> os linux-gnu
> system i686, linux-gnu
> status
> major 2
> minor 1.1
> year 2005
> month 06
> day 20
> language R
>
> Baz
>
>
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-devel
mailing list