Skip to content

mzR Rcpp compiler linker issue

Laurent Gatto edited this page Mar 10, 2020 · 2 revisions

Description of the problem

A recurrent issue has been reported by windows users related to a compiler/linker problem. In summary, some Rcpp updates result in mzR loading issues:

Loading required package: Rcpp
Error : .onLoad failed in loadNamespace() for 'mzR', details:
  call: value[[3L]](cond)
  error: failed to load module Ramp from package mzR
could not find function "errorOccured"
Error: package/namespace load failed formzR

This problem results from the fact that the user has an updated Rcpp binary while the installed mzR binary package was originally build against an older Rcpp version. Note that this does not seem to occur on Linux as the packages are build from source.

Current solution

The optimal solution would be to automatically trigger an mzR rebuild as soon as a new Rcpp version is available on the Bioconductor servers. This is however not straightforward to implement. Although packages are rebuild regularly, the are propagated to the web server only when new version are available.

Since version 1.4.4 (stable, Bioc 2.11) and 1.5.7 (devel, Bioc 2.12), we record the Rcpp version used at build time and compare it with the installed Rcpp version when loading the package. If these versions differ, the user is warned and advised to post a message on the Bioconductor mailing list.

mzR has been built against a different Rcpp version
than is installed on your system. This might lead to errors,
when loading mzR. If you encounter such issues, please send,
a report, including the output of sessionInfo() to the Bioc,
mailing list -- http://www.bioconductor.org/help/mailing-list.

The maintainers will bump the mzR version as soon as a new Rcpp is available on the respective Bioconductor servers to trigger a rebuild and propagation to the web server.

What users can

  1. Update mzR
if (!requireNamespace("BiocManager", quietly = TRUE))
    install.packages("BiocManager")
BiocManager::install("mzR")
  1. Upgrade your Bioconductor installation
BiocManager::install()
  1. If despite the above you still have issues, send an email to the Bioconductor mailing list (as advised in the message above). Feel free to put the maintainers in cc.

Some relevant links