Skip to content

[Bioc-devel] error: 2 arguments passed to .Internal(ls) which requires 3

12 messages · Laurent Gatto, Dan Tenenbaum, Kasper Daniel Hansen +2 more

#
Something's fishy with my R devel/Bioc 3.1 installation and I fail to
see what is wrong.

I want to install Homo.sapiens:
## Bioconductor version 3.1 (BiocInstaller 1.17.1), ?biocLite for help
## BioC_mirror: http://bioconductor.org
## Using Bioconductor version 3.1 (BiocInstaller 1.17.1), R version 3.2.0.
## Installing package(s) 'Homo.sapiens'
## trying URL 'http://bioconductor.org/packages/3.1/data/annotation/src/contrib/Homo.sapiens_1.1.2.tar.gz'
## Content type 'application/x-gzip' length 1511 bytes
## opened URL
## ==================================================
## downloaded 1511 bytes
## 
## * installing *source* package ?Homo.sapiens? ...
## ** R
## ** data
## ** preparing package for lazy loading
## Error : .onLoad failed in loadNamespace() for 'GO.db', details:
##   call: ls(envir, all.names = TRUE)
##   error: 2 arguments passed to .Internal(ls) which requires 3
## Error : package ?GO.db? could not be loaded
## ERROR: lazy loading failed for package ?Homo.sapiens?
## * removing ?/home/lg390/R/x86_64-unknown-linux-gnu-library/3.2/Homo.sapiens?
## * restoring previous ?/home/lg390/R/x86_64-unknown-linux-gnu-library/3.2/Homo.sapiens?
## 
## The downloaded source packages are in
## 	?/tmp/RtmpXYXfis/downloaded_packages?
## Warning message:
## In install.packages(pkgs = pkgs, lib = lib, repos = repos, ...) :
##   installation of package ?Homo.sapiens? had non-zero exit status

GO.db is up-to-date, but let's (successfully) biocLite and load it:
## BioC_mirror: http://bioconductor.org
## Using Bioconductor version 3.1 (BiocInstaller 1.17.1), R version 3.2.0.
## Installing package(s) 'GO.db'
## trying URL 'http://bioconductor.org/packages/3.1/data/annotation/src/contrib/GO.db_3.0.0.tar.gz'
## Content type 'application/x-gzip' length 28747892 bytes (27.4 MB)
## opened URL
## ==================================================
## downloaded 27.4 MB
## 
## * installing *source* package ?GO.db? ...
## ** R
## ** inst
## ** preparing package for lazy loading
## ** help
## *** installing help indices
## ** building package indices
## ** testing if installed package can be loaded
## * DONE (GO.db)
## 
## The downloaded source packages are in
## 	?/tmp/Rtmprr15y4/downloaded_packages?
Repeating unsuccessful attempt to install Homo.sapiens fails again:
## bioc_mirror: http://bioconductor.org
## using bioconductor version 3.1 (biocinstaller 1.17.1), r version 3.2.0.
## installing package(s) 'homo.sapiens'
## trying url 'http://bioconductor.org/packages/3.1/data/annotation/src/contrib/homo.sapiens_1.1.2.tar.gz'
## content type 'application/x-gzip' length 1511 bytes
## opened url
## ==================================================
## downloaded 1511 bytes
## 
## * installing *source* package ?homo.sapiens? ...
## ** r
## ** data
## ** preparing package for lazy loading
## error : .onload failed in loadnamespace() for 'go.db', details:
##   call: ls(envir, all.names = true)
##   error: 2 arguments passed to .internal(ls) which requires 3
## error : package ?go.db? could not be loaded
## error: lazy loading failed for package ?homo.sapiens?
## * removing ?/home/lg390/r/x86_64-unknown-linux-gnu-library/3.2/homo.sapiens?
## * restoring previous ?/home/lg390/r/x86_64-unknown-linux-gnu-library/3.2/homo.sapiens?
## 
## the downloaded source packages are in
## 	?/tmp/rtmprr15y4/downloaded_packages?
## warning message:
## in install.packages(pkgs = pkgs, lib = lib, repos = repos, ...) :
##   installation of package ?homo.sapiens? had non-zero exit status

I have the exact same error with ReportingTools/PFAM.db,
Mus.musculus/GO.db and probably others.

Session info with other relevant package versions below. I experienced
the same error with a slightly older R-devel (2014-10-29 r66897).

Any hints?

Best wishes,

Laurent
## R Under development (unstable) (2014-11-01 r66923)
## Platform: x86_64-unknown-linux-gnu (64-bit)
## 
## 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] GO.db_3.0.0          RSQLite_1.0.0        DBI_0.3.1           
##  [4] AnnotationDbi_1.29.1 GenomeInfoDb_1.3.6   IRanges_2.1.4       
##  [7] S4Vectors_0.5.2      Biobase_2.27.0       BiocGenerics_0.13.0 
## [10] BiocInstaller_1.17.1
## 
## loaded via a namespace (and not attached):
## [1] compiler_3.2.0 tools_3.2.0
#
Hi Laurent --
On 11/04/2014 01:33 AM, Laurent Gatto wrote:
Somewhere I think there's a stale serialized R-3.1 reference to ls(), derived 
from a package build with R-3.1 rather than R-devel.

A little detective work shows that packages are loaded in the following order

...
[43] "graph"                             "RBGL"
[45] "GO.db"                             "org.Hs.eg.db"
[47] "TxDb.Hsapiens.UCSC.hg19.knownGene" "Homo.sapiens"

so I wonder if org.Hs.eg.db or TxDb.... is actually the problem, and 
biocLite(org.Hs.eg.db) or TxDb... (maybe with type="source") would help?

It might help to (maybe before biocLite(), to find the source of the problem)

biocLite("Homo.sapiens", INSTALL_opts="--no-test-load")

and then

   library(Homo.sapiens)

followed by traceback() -- this way you'll at least be able to explore the call 
stack.

Martin

  
    
#
Hi Laurent,

----- Original Message -----
Didn't you report this same problem the other day and the solution was to update all your packages?


Note that both installed.packages() and packageDescription() display information about the version of R under which a given package was built.
So that could help narrow things down. It's almost certainly an annotation package, because almost all of the ones in our devel repository are just copied from our release repository and built under R-3.1.x. So we might need to rebuild them under R-devel, at least the ones with stale serialized references.

Dan
#
On 4 November 2014 13:41, Martin Morgan wrote:

            
[...]
I tried to re-install all TxDb*, org* packages (using type="source"),
but without success.

Is type = "source" not the default (and only option) on linux? Does is
matter if I specify it or not?
Unfortunately that fails too. 

Laurent

  
    
#
On 4 November 2014 15:55, Dan Tenenbaum wrote:

            
Yes, and that was Go.db that failed. Updating to AnnotationDbi 1.29.1
fixed it.
Ok, I guess I will go ahead and hunt all annotation packages.

What is the best way to programmatically get a list of all annotation
packages - biocViews? While thinking about a question that came up on
the support site, I realised that I did not even know if the annotation
packages lived in an svn repo.

Laurent

  
    
#
----- Original Message -----
Actually, the fact that an AnnotationDbi update fixed your earlier issue makes me unsure about whether the "bad" package you have is an annotation package.

But if you still want to know....You can look at http://bioconductor.org/packages/devel/data/annotation/src/contrib/PACKAGES or available.packages() which tells you what repository a package comes from.

Dan
#
Laurent,

If you do
  installed.packages()
(note the 'ed') you are told which version of R was used to build the
package.  This has sometimes been useful to me in these kind of situations.

Best,
Kasper

On Tue, Nov 4, 2014 at 2:18 PM, Dan Tenenbaum <dtenenba at fredhutch.org>
wrote:

  
  
#
On 11/04/2014 11:03 AM, Laurent Gatto wrote:
I saw that you said biocLite('homo.sapiens') and that there was a reference to 
'go.db' (lower case!). It seems really weird that these work ??

 > biocLite('homo.sapiens')
BioC_mirror: http://bioconductor.org
Using Bioconductor version 3.0 (BiocInstaller 1.16.1), R version 3.1.2.
Installing package(s) 'homo.sapiens'
Warning messages:
1: package 'homo.sapiens' is not available (for R version 3.1.2 Patched)
2: Perhaps you meant 'Homo.sapiens' ?

but now I guess this is some of that emacs magic you've got going?
yep, you're right, type="source" wouldn't be relevant on a Linux environment.
Not sure what 'that fails too' means...? I think the package would fail to load 
(next step, library(Homo.sapiens) but not install, and that when it failed to 
load you could do traceback() or options(error=recover); library(Homo.sapiens) 
and gain some insight into what package was actually failing to load.

Martin

  
    
#
On 4 November 2014 20:39, Martin Morgan wrote:

            
Yes, probably an unexpected key combination.
Bioconductor version 3.1 (BiocInstaller 1.17.1), ?biocLite for help
BioC_mirror: http://bioconductor.org
Using Bioconductor version 3.1 (BiocInstaller 1.17.1), R version 3.2.0.
Installing package(s) 'Homo.sapiens'
trying URL 'http://bioconductor.org/packages/3.1/data/annotation/src/contrib/Homo.sapiens_1.1.2.tar.gz'
Content type 'application/x-gzip' length 1511 bytes
opened URL
==================================================
downloaded 1511 bytes

* installing *source* package ?Homo.sapiens? ...
** R
** data
** preparing package for lazy loading
Error : .onLoad failed in loadNamespace() for 'GO.db', details:
  call: ls(envir, all.names = TRUE)
  error: 2 arguments passed to .Internal(ls) which requires 3
Error : package ?GO.db? could not be loaded
ERROR: lazy loading failed for package ?Homo.sapiens?
* removing ?/home/lg390/R/x86_64-unknown-linux-gnu-library/3.2/Homo.sapiens?

I will investigate the R version used to built packages, as suggested by
Dan and Kasper and report back.

Thanks,

Laurent

  
    
#
On 4 November 2014 20:27, Kasper Daniel Hansen wrote:

            
Just to follow up, I got rid of all packages that were built using R <
3.2.0, but no luck:
3.2.0 
  911
Bioconductor version 3.1 (BiocInstaller 1.17.1), ?biocLite for help
BioC_mirror: http://bioconductor.org
Using Bioconductor version 3.1 (BiocInstaller 1.17.1), R version 3.2.0.
Installing package(s) 'Homo.sapiens'
trying URL 'http://bioconductor.org/packages/3.1/data/annotation/src/contrib/Homo.sapiens_1.1.2.tar.gz'
Content type 'application/x-gzip' length 1511 bytes
opened URL
==================================================
downloaded 1511 bytes

* installing *source* package ?Homo.sapiens? ...
** R
** data
** preparing package for lazy loading
Error : .onLoad failed in loadNamespace() for 'GO.db', details:
  call: ls(envir, all.names = TRUE)
  error: 2 arguments passed to .Internal(ls) which requires 3
Error : package ?GO.db? could not be loaded
ERROR: lazy loading failed for package ?Homo.sapiens?
* removing ?/home/lg390/R/x86_64-unknown-linux-gnu-library/3.2/Homo.sapiens?

Same also with ChIPpeakAnno/GO.db now.

Will investigate further tomorrow.

Laurent

  
    
#
Hi Laurent,
I had a similar issue a couple of days ago, but the error would only show
up when building the vignette of a package, rather than during package
loading. I tried to dig around for a while but really could not find the
bottom of this. In the end I decided to update my R-devel version, and
reinstall all packages with
biocLite(rownames(installed.packages()))
This fixed the problem in the end. A bit of a blunt tool, I agree, but in
the end probably faster than hours of debugging the package load chain...
Hope that helps,
Florian
On 05/11/14 01:55, "Laurent Gatto" <lg390 at cam.ac.uk> wrote:

            
#
On 5 November 2014 08:19, Hahne, Florian wrote:

            
Thanks, Florian. I think I will follow you suggestion.

Best wishes,

Laurent