Bioconductor / HDF5Array

HDF5 backend for DelayedArray objects
https://bioconductor.org/packages/HDF5Array
9 stars 13 forks source link

HDF5Array show method recurses infinitely #6

Closed LTLA closed 6 years ago

LTLA commented 6 years ago

Probably via nrow() calling dim() and vice versa, based on the traceback().

library(HDF5Array)
a <- matrix(1, 10, 10)
b <- as(a, "HDF5Matrix")
b
## Error: C stack usage  7969716 is too close to the limit

Session information:

R Under development (unstable) (2018-03-26 r74466)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 16.04.4 LTS

Matrix products: default
BLAS: /home/cri.camres.org/lun01/Software/R/trunk/lib/libRblas.so
LAPACK: /home/cri.camres.org/lun01/Software/R/trunk/lib/libRlapack.so

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=en_GB.UTF-8    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] parallel  stats4    stats     graphics  grDevices utils     datasets 
[8] methods   base     

other attached packages:
[1] HDF5Array_1.7.10     rhdf5_2.23.7         DelayedArray_0.5.30 
[4] BiocParallel_1.13.3  IRanges_2.13.28      S4Vectors_0.17.41   
[7] BiocGenerics_0.25.3  matrixStats_0.53.1   BiocInstaller_1.29.6

loaded via a namespace (and not attached):
[1] compiler_3.6.0 tools_3.6.0    Rhdf5lib_1.1.5
PeteHaitch commented 6 years ago

I also encountered this. The workaround for me was to install DelayedArray and HDF5Array from the GitHub repo (I think the two packages are somehow slightly out-of-sync in the BioC builds?)

LTLA commented 6 years ago

Yes, that looks like it worked. Thanks @PeteHaitch.