biomaRt : No lock file for BiocFileCache
Entering edit mode
ZheFrench ▴ 60
Last seen 19 months ago

> Erreur dans lock(.sql_lock_path(dbfile), exclusive = FALSE) :   
> Cannot lock file:
> '/home/villemin/.cache/biomaRt/BiocFileCache.sqlite.LOCK': Aucun
> verrou disponible Erreur dans h(simpleError(msg, call)) :    erreur
> d'�valuation de l'argument 'conn' lors de la s�lection d'une
> m�thode pour la fonction 'dbDisconnect' : objet 'info' introuvable

Message in french sorry, but it says no lock file...I have no clue.

It should return something like :
biomaRt cache

  • Location: ~/.cache/biomaRt
  • No. of files: 1
  • Total size: 338.4 Kb
> R version 4.1.3 (2022-03-10) Platform: x86_64-conda-linux-gnu (64-bit)
> Running under: Ubuntu 18.04.6 LTS
> Matrix products: default BLAS/LAPACK:
> /data/USERS/villemin/anaconda3/envs/r4.1.3/lib/
> locale:  [1] LC_CTYPE=fr_FR.UTF-8       LC_NUMERIC=C               
> [3] LC_TIME=fr_FR.UTF-8        LC_COLLATE=fr_FR.UTF-8      [5]
> LC_MONETARY=fr_FR.UTF-8    LC_MESSAGES=fr_FR.UTF-8     [7]
> LC_PAPER=fr_FR.UTF-8       LC_NAME=C                   [9]
> LC_ADDRESS=C               LC_TELEPHONE=C             [11]
> attached base packages: [1] stats     graphics  grDevices utils    
> datasets  methods   base     
> other attached packages: [1] biomaRt_2.50.3
> loaded via a namespace (and not attached):  [1] KEGGREST_1.34.0       
> progress_1.2.2         tidyselect_1.1.2        [4] purrr_0.3.4        
> tcltk_4.1.3            vctrs_0.4.0             [7] generics_0.1.2     
> stats4_4.1.3           BiocFileCache_2.2.1    [10] utf8_1.2.2         
> blob_1.2.3             XML_3.99-0.9           [13] rlang_1.0.2        
> pillar_1.7.0           glue_1.6.2             [16] DBI_1.1.2          
> rappdirs_0.3.3         BiocGenerics_0.40.0    [19] bit64_4.0.5        
> dbplyr_2.1.1           GenomeInfoDbData_1.2.7 [22] lifecycle_1.0.1    
> stringr_1.4.0          zlibbioc_1.40.0        [25] Biostrings_2.62.0  
> memoise_2.0.1          Biobase_2.54.0         [28] IRanges_2.28.0     
> fastmap_1.1.0          GenomeInfoDb_1.30.1    [31] curl_4.3.2         
> AnnotationDbi_1.56.2   fansi_1.0.3            [34] Rcpp_1.0.8.3       
> filelock_1.0.2         BiocManager_1.30.16    [37] cachem_1.0.6       
> S4Vectors_0.32.4       XVector_0.34.0         [40] bit_4.0.4          
> hms_1.1.1              png_0.1-7              [43] digest_0.6.29      
> stringi_1.7.6          dplyr_1.0.8            [46] cli_3.2.0          
> tools_4.1.3            bitops_1.0-7           [49] magrittr_2.0.3     
> RCurl_1.98-1.6         RSQLite_2.2.12         [52] tibble_3.1.6       
> crayon_1.5.1           pkgconfig_2.0.3        [55] ellipsis_0.3.2     
> xml2_1.3.3             prettyunits_1.1.1      [58] assertthat_0.2.1   
> httr_1.4.2             R6_2.5.1               [61] compiler_4.1.3
BiocFileCache biomaRt • 2.8k views
Entering edit mode

Error is coming from the call to lock from

  .lock2 <- function(dbfile, exclusive) {
        if ($status)) {
            lock.env$status <- exclusive
            **lock(.sql_lock_path(dbfile), exclusive = exclusive)**
        } else if (lock.env$status || !exclusive) {
            # Exclusive lock held by a caller is compatible
            # with a subsequent request for a shared lock;
            # we're not escalating privileges here.
        } else {
            stop("requested an exclusive lock when caller only holds a shared lock")
Entering edit mode

This has also been reported at but lets try and keep the discussion here for now.

A slightly nicer formatted version of the error message is:

Error in lock(.sql_lock_path(dbfile), exclusive = FALSE) :
  Cannot lock file: '/home/villemin/.cache/biomaRt/BiocFileCache.sqlite.LOCK': Aucun verrou disponible
Appels : findOrthologs ... tryCatch -> tryCatchList -> .sql_connect_RW -> lock
Error in h(simpleError(msg, call)) :
  error in evaluating the argument 'conn' in selecting a method for function 'dbDisconnect': object 'info' not found
Calls: <Anonymous> ... .sql_disconnect -> dbDisconnect -> .handleSimpleError -> h
Execution halted

To me this looks like a BiocFileCache problem, do you agree shepherl ?

Entering edit mode

Also reported -- Please try to only have in one place so there are not multiple tickets open for the same item.
I will have to investigate more but yes it seems like it is BiocFileCache. There is a locking mechanism in place to try to avoid corruptions of the database. Is this a local computer or on a server? are you trying to run things in parallel?

Entering edit mode

Yeah sorry for the many messages everywhere. It's on ubuntu server 18.04. nfs mount version 3 with local_lock=none. That can be related,no ? Working well on same ubuntu version on docker container also or my linux...It's not R version related. There is no parallel stuffs . I'm just calling biomartCacheInfo() after loading biomart in R. I 'm using an R install in a conda environement if that can play a role...I think it's really filesystem related. and related to filelock package. From their doc :

File locking needs support from the file system, and some non-standard file systems do not support it. For example on network file systems like NFS or CIFS, user mode file systems like sshfs or ftpfs, etc., support might vary. Recent Linux versions and recent NFS versions (from version 3) do support file locking, if enabled.

Entering edit mode

Could there be a permissions issue? See Group Access

Entering edit mode

I tried also to change .LOCK with 660 or 700 and not work either. Both files are rw and still get no lock. 20K -rw-rw---- 1 villemin bioinfo 20K sept. 27 2021 BiocFileCache.sqlite 0 -rw-rw---- 1 villemin bioinfo 0 sept. 27 2021 BiocFileCache.sqlite.LOCK

Entering edit mode

This seems challenging. The first thing to do is to make this reproducible. The code biomaRt:: biomartCacheInfo() 'works for me' on both my native (macOS) and docker (as you note) environment under R-4.1.3 and similar package versions, so how does your environment differ (especially from the docker container)?

I see you have a conda environment. Have you installed all packages (in particular, BiocFileCache, biomaRt, filelock) under this conda environment, or are you mixing conda and 'native' installations?

Entering edit mode

biomaRt error: database disk image is malformed

These two helped a lot. It's definitely filesystem related. I moved the cache file under ext4 partition on my cluster.

> Sys.setenv(BIOMART_CACHE="/data2/biomart_cache")
> biomartCacheInfo()

biomaRt cache uninitialized
- Location: /data2/biomart_cache

Login before adding your answer.

Traffic: 272 users visited in the last hour
Help About
Access RSS

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6