[Bioc-devel] segfault when using RleList in DataFrames

Peter Hickey peter.hickey at gmail.com
Sun Dec 6 23:44:19 CET 2015


Hi Leonard,

I'm seeing what I think is a related problem in the devel branch. I
think it derives from some issue with List-based classes. E.g, a
simplified version of your example errors for me (although without
segfault):

> library(IRanges)
# snip - this produces a possibly related warning on my machine
"Warning message: multiple methods tables found for ‘unlist’"

> x <- RleList(IntegerList(vector("list", 3)))
> x
RleList of length 3
Error in show(as.list(head(object, k))) :
  error in evaluating the argument 'object' in selecting a method for
function 'show': Error: evaluation nested too deeply: infinite
recursion / options(expressions=)?

I first noticed it this morning when working with GRangesList objects, e.g.:

> library(GenomicRanges)
# snip - this now twice produces the  "Warning message: multiple
methods tables found for ‘unlist’" message

> GRangesList(GRanges())
GRangesList object of length 1:
[[1]]
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?

> sessionInfo()
R Under development (unstable) (2015-11-28 r69714)
Platform: x86_64-apple-darwin13.4.0 (64-bit)
Running under: OS X 10.10.5 (Yosemite)

locale:
[1] en_AU.UTF-8/en_AU.UTF-8/en_AU.UTF-8/C/en_AU.UTF-8/en_AU.UTF-8

attached base packages:
[1] stats4    parallel  stats     graphics  grDevices utils     datasets
[8] methods   base

other attached packages:
[1] GenomicRanges_1.23.4 GenomeInfoDb_1.7.3   IRanges_2.5.9
[4] S4Vectors_0.9.11     BiocGenerics_0.17.2

loaded via a namespace (and not attached):
[1] zlibbioc_1.17.0 XVector_0.11.1

Cheers,
Pete

> Hi all,
>
> I ran into problems when using an RleList as column in a DataFrame
> object (see example below).
>
> Many thanks in advance for your help.
>
> Leonard
>
>
>> sessionInfo()
> R version 3.2.2 (2015-08-14)
> Platform: x86_64-pc-linux-gnu (64-bit)
> Running under: Red Hat Enterprise Linux Server release 6.6 (Santiago)
>
> locale:
>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
>  [9] LC_ADDRESS=C               LC_TELEPHONE=C
> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
>
> attached base packages:
> [1] stats4    parallel  stats     graphics  grDevices utils     datasets
> [8] methods   base
>
> other attached packages:
> [1] IRanges_2.4.4       S4Vectors_0.8.3     BiocGenerics_0.16.1
>>
>> df <- DataFrame(ID = 1:3)
>> x <- RleList(IntegerList(vector("list", 3)))
>> df$rle <- x
>> df
> DataFrame with 3 rows and 2 columns
>
>  *** caught segfault ***
> address 0x9b00364, cause 'memory not mapped'
>
> Traceback:
>  1: .Call(.NAME, ..., PACKAGE = PACKAGE)
>  2: .Call2("Rle_getStartEndRunAndOffset", x, start, end, PACKAGE = "S4Vectors")
>  3: S4Vectors:::getStartEndRunAndOffset(x, start(solved_SEW), end(solved_SEW))
>  4: .local(x, ...)
>  5: window(x, start = 1L, width = n)
>  6: window(x, start = 1L, width = n)
>  7: .local(x, ...)
>  8: head(x, 3)
>  9: head(x, 3)
>
> Possible actions:
> 1: abort (with core dump, if enabled)
> 2: normal R exit
> 3: exit R without saving workspace
> 4: exit R saving workspace
> Selection:



More information about the Bioc-devel mailing list