Bioconductor/BiocFileCache

`BiocFileCache()` inducing R abort

Closed this issue · 2 comments

In a clean R session, BiocFileCache seems to be causing a hard crash. I've tested on version 1.9.1 and 1.9.0 and get this behaviour. Not sure here what the underlying cause is. I discovered this in using the HCAData package.

> BiocFileCache::BiocFileCache()

 *** caught illegal operation ***
address 0x7f7ad1803fd3, cause 'illegal operand'

Traceback:
 1: select_impl(.data, vars)
 2: select.data.frame(.data, !!!dots)
 3: select(.data, !!!dots)
 4: select_.data.frame(., ~-id)
 5: select_(., ~-id)
 6: function_list[[k]](value)
 7: withVisible(function_list[[k]](value))
 8: freduce(value, `_function_list`)
 9: `_fseq`(`_lhs`)
10: eval(quote(`_fseq`(`_lhs`)), env, env)
11: eval(quote(`_fseq`(`_lhs`)), env, env)
12: withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
13: tbl %>% select_(~-id)
14: .sql_get_resource_table(bfc)
15: eval(lhs, parent, parent)
16: eval(lhs, parent, parent)
17: .sql_get_resource_table(bfc) %>% select_("rid") %>% .formatID
18: .get_all_rids(x)
19: bfcrid(x)
20: bfcrid(x)
21: bfcinfo(x)
22: bfcinfo(x)
23: bfccount(bfcinfo(x))
24: bfccount(object)
25: bfccount(object)
26: cat("class: ", class(object), "\n", "bfccache: ", bfccache(object),     "\n", "bfccount: ", bfccount(object), "\n", "For more information see: bfcinfo() or bfcquery()\n",     sep = "")
27: (new("standardGeneric", .Data = function (object) standardGeneric("show"), generic = "show", package = "methods",     group = list(), valueClass = character(0), signature = "object",     default = new("derivedDefaultMethod", .Data = function (object)     showDefault(object, FALSE), target = new("signature", .Data = "ANY",         names = "object", package = "methods"), defined = new("signature",         .Data = "ANY", names = "object", package = "methods"),         generic = "show"), skeleton = (new("derivedDefaultMethod",         .Data = function (object)         showDefault(object, FALSE), target = new("signature",             .Data = "ANY", names = "object", package = "methods"),         defined = new("signature", .Data = "ANY", names = "object",             package = "methods"), generic = "show"))(object)))(new("BiocFileCache",     cache = "/home/ramezqui/.cache/BiocFileCache"))
28: (new("standardGeneric", .Data = function (object) standardGeneric("show"), generic = "show", package = "methods",     group = list(), valueClass = character(0), signature = "object",     default = new("derivedDefaultMethod", .Data = function (object)     showDefault(object, FALSE), target = new("signature", .Data = "ANY",         names = "object", package = "methods"), defined = new("signature",         .Data = "ANY", names = "object", package = "methods"),         generic = "show"), skeleton = (new("derivedDefaultMethod",         .Data = function (object)         showDefault(object, FALSE), target = new("signature",             .Data = "ANY", names = "object", package = "methods"),         defined = new("signature", .Data = "ANY", names = "object",             package = "methods"), generic = "show"))(object)))(new("BiocFileCache",     cache = "/home/ramezqui/.cache/BiocFileCache"))

Session Info:


> sessionInfo()
R version 3.6.0 (2019-04-26)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS

Matrix products: default
BLAS/LAPACK: /app/easybuild/software/OpenBLAS/0.2.18-GCC-5.4.0-2.26-LAPACK-3.6.1/lib/libopenblas_prescottp-r0.2.18.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8       
 [4] LC_COLLATE=en_US.UTF-8     LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                  LC_ADDRESS=C              
[10] LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

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

other attached packages:
[1] here_0.1       fs_1.3.1       devtools_2.1.0 usethis_1.5.1 

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.2        ps_1.3.0          prettyunits_1.0.2 rprojroot_1.3-2   withr_2.1.2      
 [6] digest_0.6.20     crayon_1.3.4      assertthat_0.2.1  R6_2.4.0          backports_1.1.4  
[11] magrittr_1.5      rlang_0.4.0       cli_1.1.0         remotes_2.1.0     testthat_2.2.1   
[16] callr_3.3.1       desc_1.2.0        tools_3.6.0       glue_1.3.1        compiler_3.6.0   
[21] pkgload_1.0.2     processx_3.4.1    pkgbuild_1.0.3    sessioninfo_1.1.1 memoise_1.1.0    

Also tried to remove the ~/.cache folder completely and re-create it, but this causes yet another R crash.

# after removing ~/.cache
> BiocFileCache::BiocFileCache()
/home/ramezqui/.cache/BiocFileCache
  does not exist, create directory? (yes/no): yes

 *** caught illegal operation ***
address 0x7f5f431c6fd3, cause 'illegal operand'

Can you confirm that your packages are consistent within the Bioconductor release BiocManager::valid() and that the error occurs in a new R session without any additional packages attached? Also the sessionInfo after loading BiocFileCache (but before the crash!)

Indeed, the BiocManager::valid() returned FALSE - running that to reinstall the packages and fixing the dependencies (possibly alongside clearing the cache?) ended up fixing the issue!