Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"R CMD check" failure on Linux ARM64 #163

Closed
martin-g opened this issue Mar 27, 2023 · 7 comments
Closed

"R CMD check" failure on Linux ARM64 #163

martin-g opened this issue Mar 27, 2023 · 7 comments
Labels
bug Something isn't working

Comments

@martin-g
Copy link

Hello,

There is an initiative to support Linux ARM64 for Bioconductor.
While testing the packages we faced this failure:

biocbuild@kunpeng1 ~/git> R CMD check ANCOMBC_2.1.3.tar.gz 
* using log directory ‘/home/biocbuild/git/ANCOMBC.Rcheck’
* using R Under development (unstable) (2023-03-12 r83975)
* using platform: aarch64-unknown-linux-gnu (64-bit)
* R was compiled by
    gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
    GNU Fortran (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0
* running under: Ubuntu 22.04.2 LTS
* using session charset: UTF-8
* checking for file ‘ANCOMBC/DESCRIPTION’ ... OK
* checking extension type ... Package
* this is package ‘ANCOMBC’ version ‘2.1.3’
* package encoding: UTF-8
* checking package namespace information ... OK
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking if there is a namespace ... OK
* checking for hidden files and directories ... OK
* checking for portable file names ... OK
* checking for sufficient/correct file permissions ... OK
* checking whether package ‘ANCOMBC’ can be installed ... OK
* checking installed package size ... OK
* checking package directory ... OK
* checking ‘build’ directory ... OK
* checking DESCRIPTION meta-information ... OK
* checking top-level files ... OK
* checking for left-over files ... OK
* checking index information ... OK
* checking package subdirectories ... OK
* checking R files for non-ASCII characters ... OK
* checking R files for syntax errors ... OK
* checking whether the package can be loaded ... OK
* checking whether the package can be loaded with stated dependencies ... OK
* checking whether the package can be unloaded cleanly ... OK
* checking whether the namespace can be loaded with stated dependencies ... OK
* checking whether the namespace can be unloaded cleanly ... OK
* checking dependencies in R code ... OK
* checking S3 generic/method consistency ... OK
* checking replacement functions ... OK
* checking foreign function calls ... OK
* checking R code for possible problems ... OK
* checking Rd files ... OK
* checking Rd metadata ... OK
* checking Rd cross-references ... OK
* checking for missing documentation entries ... OK
* checking for code/documentation mismatches ... OK
* checking Rd \usage sections ... OK
* checking Rd contents ... OK
* checking for unstated dependencies in examples ... OK
* checking contents of ‘data’ directory ... OK
* checking data for non-ASCII characters ... OK
* checking data for ASCII and uncompressed saves ... OK
* checking installed files from ‘inst/doc’ ... OK
* checking files in ‘vignettes’ ... OK
* checking examples ... OK
* checking for unstated dependencies in ‘tests’ ... OK
* checking tests ...
  Running ‘testthat.R’
 OK
* checking for unstated dependencies in vignettes ... OK
* checking package vignettes in ‘inst/doc’ ... OK
* checking running R code from vignettes ...
  ‘ANCOM.Rmd’ using ‘UTF-8’... OK
  ‘ANCOMBC.Rmd’ using ‘UTF-8’... OK
  ‘ANCOMBC2.Rmd’ using ‘UTF-8’... OK
  ‘SECOM.Rmd’ using ‘UTF-8’... OK
 NONE
* checking re-building of vignette outputs ... ERROR
Error(s) in re-building vignettes:
  ...
--- re-building ‘ANCOM.Rmd’ using rmarkdown
--- finished re-building ‘ANCOM.Rmd’

--- re-building ‘ANCOMBC.Rmd’ using rmarkdown
--- finished re-building ‘ANCOMBC.Rmd’

--- re-building ‘ANCOMBC2.Rmd’ using rmarkdown
Quitting from lines 1093-1103 (ANCOMBC2.Rmd) 
Error: processing vignette 'ANCOMBC2.Rmd' failed with diagnostics:
object 'out' not found
--- failed re-building ‘ANCOMBC2.Rmd’

--- re-building ‘SECOM.Rmd’ using rmarkdown
--- finished re-building ‘SECOM.Rmd’

SUMMARY: processing the following file failed:
  ‘ANCOMBC2.Rmd’

Error: Vignette re-building failed.
Execution halted

* checking PDF version of manual ... OK
* DONE

Status: 1 ERROR
See
  ‘/home/biocbuild/git/ANCOMBC.Rcheck/00check.log’
for details.

Any idea why it fails ?
The check passes fine on x86_64 - https://bioconductor.org/checkResults/3.17/bioc-LATEST/ANCOMBC/palomino3-checksrc.html but it fails consistently on aarch64.

@FrederickHuangLin
Copy link
Owner

Hi @martin-g,

Thanks for bringing this to my attention!

Unfortunately, I do not have a Linux machine, and the package ran successfully without errors on my local machine (I am using a macOS system).

It indicated object 'out' not found for building the ANCOMBC2 vignette. More informative error messages are needed to further dig into this issue. I will send an email to bioc-devel@r-project.org for help.

Thank you,
Huang

@FrederickHuangLin FrederickHuangLin added the bug Something isn't working label Mar 29, 2023
@martin-g
Copy link
Author

Thank you for the quick reply, @FrederickHuangLin !

Yesterday another developer expressed the same at https://community-bioc.slack.com/archives/C02CWTCB1LJ/p1680094441498579.
I guess the easiest is to use a container (like Docker).

@FrederickHuangLin
Copy link
Owner

Hi @martin-g,

Thanks for getting back to me! Unfortunately, I am not able to open the link you provided since I am not a member of this workspace. May you send an invitation for me to join this channel?

My email address is huanglinfrederick@gmail.com

Thank you,
Huang

@martin-g
Copy link
Author

Invitation sent!

Here is a copy of the discussion for other people who might see this issue:

Mike Smith
I don't know about anyone else, but I've had a few mentions from 
[@Martin Grigorov](https://community-bioc.slack.com/team/U04HM385J7L)
 who's leading a project to build Bioconductor packages on ARM64.  However, if he encounters a problem, it's actually pretty hard for a package maintainer to try and debug it unless they also happe to have access to ARM64 hardware. It feels like a some way of emulating a ARM64 environment might be a useful addition to the suite of Github actions.  Does anyone have experience trying this with something like Qemu and the Docker images for alternative architectures?


Martin Grigorov
since I've been mentioned ... :-)


Martin Grigorov
I have few articles explaining how to do this with QEMU or VM (edited) 


Martin Grigorov
QEMU & Docker: https://martin-grigorov.medium.com/building-linux-packages-for-different-cpu-architectures-with-docker-and-qemu-d29e4ebc9fa5


Martin Grigorov
free VM from Oracle Cloud: https://martin-grigorov.medium.com/github-actions-arm64-runner-on-oracle-cloud-a77cdf7a325a
you can ignore the Github Actions part


Martin Grigorov
the "problem" with Oracle Cloud (and any other cloud provider) is that they ask for Credit Card details even if you use just their Free Tiers


Martin Grigorov
if you use Github Actions then https://github.com/uraimo/run-on-arch-action/ is really handy to run your builds and tests on several CPU architectures. But it uses QEMU so it is a bit slow ! (edited) 


Mike Smith
Awesome, thanks for the rundown.  I'll take a look at them.


Martin Grigorov
One more: CircleCI (a competitor of Github Actions) provides Linux ARM64 (and MacOS ARM64) runners for free too. What I like there is that it is possible to connect via SSH to their VMs and debug a failure (edited) 


Henrik Bengtsson
Not CI, but it might be useful to mention the M1 mac-builder service
 https://mac.r-project.org/macbuilder/submit.html

@FrederickHuangLin
Copy link
Owner

Thanks for sending over the invite, @martin-g, I really appreciate it!

I did not use Docker before, so I may need to spend some time familiarizing myself with it.

Regarding the version of the software, I noticed that the current version I pushed (which encountered the error with Linux ARM64) is 2.0.3. Once I have made the necessary fixes, would it be appropriate to increment the version to 2.0.4, or would it be acceptable to keep it as 2.0.3?

Thank you,
Huang

@martin-g
Copy link
Author

I can test any fixes for you on Linux ARM64 without a version bump and without push to the Bioc repo. I will pull the changes from here/Github.
Once you are ready for a proper release you will have to bump the version and push to Bioc too.

@FrederickHuangLin
Copy link
Owner

The problem has been solved! Thanks, @martin-g, for your assistance in resolving the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants