[R-pkg-devel] dtrti2 error on CRAN checks

Dirk Eddelbuettel edd @end|ng |rom deb|@n@org
Wed Apr 17 20:38:35 CEST 2019

On 17 April 2019 at 11:06, Benjamin Christoffersen wrote:
| Since the start of April, I have gotten some errors on the Debian
| machines on the check on CRAN for my package dynamichazard. The places
| where I get the errors seems to come down to LAPACK's dtrtri routine.
| I have tried to reproduce the error on Debian 18.04.2 with clang 8.0.0
| but I cannot reproduce them.
| The errors came suddenly and the tests passed before. I see similar
| issues (I think) in the following package:
|  - RcppHMM
|  - BNPmix
|  - themetagenomics
|  - tidytext
|  - stm
| Any ideas what the error may be? Here is the relevant code parts for
| one of the failed tests:
| https://github.com/boennecd/dynamichazard/blob/c42105feea5e2d16a8d461b7c606245a743b3e0a/src/for_tests.cpp#L216
| https://github.com/boennecd/dynamichazard/blob/c42105feea5e2d16a8d461b7c606245a743b3e0a/src/BLAS_LAPACK/arma_BLAS_LAPACK.cpp#L26
| https://github.com/boennecd/dynamichazard/blob/c42105feea5e2d16a8d461b7c606245a743b3e0a/src/BLAS_LAPACK/R_BLAS_LAPACK.cpp#L67

There are four or more different sources of LAPACK and BLAS on Debian as we
(since the late 1990s !!)  utilize the nature of the _interface_ allowing
different packages to fill in.

So there could be
  i)   the R internal source with a partial library -- Fedora/CentOS use this
       but the Debian distro builds do not
  ii)  "reference BLAS", external, unoptimized
  iii) OpenBLAS, the successor to Goto, parallel via multithreading
  iv)  Atlas, "tuned" but not mulitthreading
and more as eg Intel MKL via a quick script (see my blog).

As a historical aside, and way-back-when, ii) earned us year's long growling
from the direction of Oxfordshire because some early/old versions of LAPACK
had bugs.  But it cuts both ways: the external versions tend to be complete
whereas what R ships with internally contains a subset -- and at least one
(early) user of RcppArmadillo was bitten when R built from sources using
defaults would not have the complex operations he needed. To R Core's credit
these missing functions got filled in over the years.

In short, you need to look more closely. On the Ubuntu 18.10 machine that I
type this on, sessionInfo()'s second paragraph has

  Matrix products: default
  BLAS: /usr/lib/x86_64-linux-gnu/openblas/libblas.so.3
  LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.3.3.so

which IIRC is also the default (via some Debian/Ubuntu internal 'ordering' of
the available alternatives).

Hth, Dirk

http://dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org

More information about the R-package-devel mailing list