Re: [Rd] unlist crashes 32-bit R on WinXP when use.names=TRUE

From: Duncan Murdoch <murdoch.duncan_at_gmail.com>
Date: Sun, 06 May 2012 06:43:58 -0400

On 12-05-05 10:39 PM, Joshua Ulrich wrote:
> Hi all,
>
> I experienced a crash in R-2.15.0 on 32-bit Windows XP (sessionInfo
> below) when running the piece of code below. I cannot replicate the
> error on 64-bit Linux, 64-bit Windows, or 32-bit R running under
> 64-bit Windows. I do not have, and could not find, a 32-bit version
> of Linux to test this.
>
>> NOW<- Sys.time()
>> FUTURE<- NOW+1:1e7
>> crash<- as.character(FUTURE)
> Error in unlist(unclass(x)[1L:3L]) :
> promise already under evaluation: recursive default argument
> reference or earlier problems?
>> traceback()
> Error: C stack usage is too close to the limit
>> # evaluating an expression at this point would cause R to exit ungracefully
>
> Here's an example that avoids a lot of unnecessary code:
>
> L1<- list(one=1:1e6, two=1:1e6, three=1:1e6)
> # no issue with smaller list elements
> U1<- unlist(L1, recursive=TRUE, use.names=TRUE)
> C1<- c(L1, recursive=TRUE, use.names=TRUE)
>
> L2<- list(one=1:1e7, two=1:1e7, three=1:1e7)
> # crashes after ~2min with error above
> U2<- unlist(L2, recursive=TRUE, use.names=TRUE)
> C2<- c(L2, recursive=TRUE, use.names=TRUE)
> # no issue if use.names=FALSE
> U3<- unlist(L2, recursive=TRUE, use.names=FALSE)
> C3<- c(L2, recursive=TRUE, use.names=FALSE)
>
> I took a look at do_unlist and do_c_dflt in bind.c, but I stopped at
> NewExtractNames because it is a bit beyond my current understanding.
> Any thoughts?

I would guess that some loop in the C code is using alloca to allocate temporary storage on the stack, and it's running out of stack space. I'll take a look...

Duncan Murdoch

>
>> sessionInfo()
> R version 2.15.0 (2012-03-30)
> Platform: i386-pc-mingw32/i386 (32-bit)
>
> locale:
> [1] LC_COLLATE=English_United States.1252
> [2] LC_CTYPE=English_United States.1252
> [3] LC_MONETARY=English_United States.1252
> [4] LC_NUMERIC=C
> [5] LC_TIME=English_United States.1252
>
> attached base packages:
> [1] stats graphics grDevices utils datasets methods base
>
> Please let me know if I forgot anything or if there's anything I can do to help.
>
> Best,
> --
> Joshua Ulrich | FOSS Trading: www.fosstrading.com
>
> R/Finance 2012: Applied Finance with R
> www.RinFinance.com
>
> ______________________________________________
> 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 Received on Sun 06 May 2012 - 10:46:07 GMT

This quarter's messages: by month, or sorted: [ by date ] [ by thread ] [ by subject ] [ by author ]

All messages

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Sun 06 May 2012 - 12:20:54 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.

list of date sections of archive