On 18/02/2019 4:08 p.m., Matt Dowle wrote:
Dear all,
I'm experiencing an unusual installation error for one package. Could
anyone suggest how I can best investigate this from here please? I'm sorry
this isn't very much to go on. Hopefully someone can point me in the right
direction.
When packages are installed, a hidden environment is created called
".__NAMESPACE__.". It contains a number of objects; it looks as though
one of yours called "S3methods" is corrupted. I can't guess whether it
is one coming from staRdom or one already in your library, but it
appears yours doesn't have the usual number of columns (which I think is 3).
So you could get a list of all packages in your library, and run
sapply(allpackages, function(x)
ncol(asNamespace(x)$.__NAMESPACE__.$S3methods))
to see which of them don't return 3 as the number of columns. (This
will load all of them, so might need to be broken up into batches.)
Duncan Murdoch
The problem seems to be my library. It is large (3,418 packages) and I'd
like to avoid rebuilding it, if possible. All packages are up to date
according to update.packages().
The error is :
** byte-compile and prepare package for lazy loading
Error in rbind(info, getNamespaceInfo(env, "S3methods")) :
number of columns of matrices must match (see arg 2)
ERROR: lazy loading failed for package ‘staRdom’
* removing ‘/home/mdowle/build/revdeplib/staRdom’
This package (staRdom) has had a recent update but CRAN checks page is
showing OK, mostly:
https://cran.r-project.org/web/checks/check_results_staRdom.html. The two
errors there don't seem to be related.
The package installs no problem when I don't include my revdeplib. But
when I do include my revdeplib it fails with the error above.
I can reproduce as follows :
$ export R_LIBS=~/build/revdeplib/
$ R
.libPaths()
[1] "/home/mdowle/build/revdeplib" "/usr/lib/R/library"
install.packages("staRdom")
Installing package into ‘/home/mdowle/build/revdeplib’
(as ‘lib’ is unspecified)
trying URL 'http://cloud.r-project.org/src/contrib/staRdom_1.0.12.tar.gz'
Content type 'application/x-gzip' length 2669832 bytes (2.5 MB)
==================================================
downloaded 2.5 MB
* installing *source* package ‘staRdom’ ...
** package ‘staRdom’ successfully unpacked and MD5 sums checked
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
Error in rbind(info, getNamespaceInfo(env, "S3methods")) :
number of columns of matrices must match (see arg 2)
ERROR: lazy loading failed for package ‘staRdom’
* removing ‘/home/mdowle/build/revdeplib/staRdom’
The downloaded source packages are in
‘/tmp/RtmprvTDCg/downloaded_packages’
Warning message:
In install.packages("staRdom") :
installation of package ‘staRdom’ had non-zero exit status
sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.2 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8
[8] LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.2 tools_3.5.2
If I don't include my revdeplib library, it works fine :
$ R
.libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"
"/usr/lib/R/library"
install.packages("staRdom")
Installing package into ‘/usr/local/lib/R/site-library’
(as ‘lib’ is unspecified)
trying URL 'http://cloud.r-project.org/src/contrib/staRdom_1.0.12.tar.gz'
Content type 'application/x-gzip' length 2669832 bytes (2.5 MB)
==================================================
downloaded 2.5 MB
* installing *source* package ‘staRdom’ ...
** package ‘staRdom’ successfully unpacked and MD5 sums checked
** R
** data
*** moving datasets to lazyload DB
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
** testing if installed package can be loaded
* DONE (staRdom)
The downloaded source packages are in
‘/tmp/RtmpmSiZLa/downloaded_packages’
sessionInfo()
R version 3.5.2 (2018-12-20)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.2 LTS
Matrix products: default
BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8
[8] LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] compiler_3.5.2 tools_3.5.2
I'm not sure how to debug this because both install.packages() and `R CMD
check` start a new instance of R. How do a get debugger() prompt at the
point of the error? All I can think of is inserting a browser() in my own
compile of R-devel. But that seems a big step. I thought I'd post here
first to see if anyone had any suggestions in how to proceed.
Thanks in advance,
Matt
[[alternative HTML version deleted]]
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel