Bug #21321
closedR SDK install is flaky - stringi doesn't download completely
Description
It looks like one of our dependencies, stringi
, is unusually large and doesn't always successfully download. I'm not sure what, if anything, we can do about that.
======= install sdk/R Loading required namespace: devtools Loading required namespace: roxygen2 Loading required namespace: markdown Loading required namespace: XML rlang (0.4.10 -> 1.1.2 ) [CRAN] cli (2.3.0 -> 3.6.2 ) [CRAN] vctrs (0.3.6 -> 0.6.5 ) [CRAN] stringi (1.5.3 -> 1.8.3 ) [CRAN] magrittr (2.0.1 -> 2.0.3 ) [CRAN] lifecycle (0.2.0 -> 1.0.4 ) [CRAN] glue (1.4.2 -> 1.6.2 ) [CRAN] ps (1.5.0 -> 1.7.5 ) [CRAN] processx (3.4.5 -> 3.8.3 ) [CRAN] callr (3.5.1 -> 3.7.3 ) [CRAN] R6 (2.5.0 -> 2.5.1 ) [CRAN] withr (2.4.1 -> 2.5.2 ) [CRAN] rprojroot (2.0.2 -> 2.0.4 ) [CRAN] pkgbuild (1.2.0 -> 1.4.3 ) [CRAN] fs (1.5.0 -> 1.6.3 ) [CRAN] desc (1.2.0 -> 1.4.3 ) [CRAN] crayon (1.4.0 -> 1.5.2 ) [CRAN] yaml (2.2.1 -> 2.3.8 ) [CRAN] xfun (0.20 -> 0.41 ) [CRAN] highr (0.8 -> 0.10 ) [CRAN] evaluate (0.14 -> 0.23 ) [CRAN] cpp11 (NA -> 0.4.7 ) [CRAN] xml2 (1.3.2 -> 1.3.6 ) [CRAN] stringr (1.4.0 -> 1.5.1 ) [CRAN] purrr (0.3.4 -> 1.0.2 ) [CRAN] pkgload (1.1.0 -> 1.3.3 ) [CRAN] knitr (1.31 -> 1.45 ) [CRAN] commonmark (1.7 -> 1.9.0 ) [CRAN] brew (1.0-6 -> 1.0-10) [CRAN] roxygen2 (7.1.1 -> 7.2.3 ) [CRAN] Installing 30 packages: rlang, cli, vctrs, stringi, magrittr, lifecycle, glue, ps, processx, callr, R6, withr, rprojroot, pkgbuild, fs, desc, crayon, yaml, xfun, highr, evaluate, cpp11, xml2, stringr, purrr, pkgload, knitr, commonmark, brew, roxygen2 Installing packages into ‘/home/jenkins/tmp/R_LIBS’ (as ‘lib’ is unspecified) trying URL 'http://cran.wustl.edu/src/contrib/rlang_1.1.2.tar.gz' Content type 'application/x-gzip' length 763521 bytes (745 KB) ================================================== downloaded 745 KB trying URL 'http://cran.wustl.edu/src/contrib/cli_3.6.2.tar.gz' Content type 'application/x-gzip' length 569771 bytes (556 KB) ================================================== downloaded 556 KB trying URL 'http://cran.wustl.edu/src/contrib/vctrs_0.6.5.tar.gz' Content type 'application/x-gzip' length 969066 bytes (946 KB) ================================================== downloaded 946 KB trying URL 'http://cran.wustl.edu/src/contrib/stringi_1.8.3.tar.gz' Content type 'application/x-gzip' length 11917752 bytes (11.4 MB) ======================================== downloaded 9.2 MB Error in download.file(url, destfile, method, mode = "wb", ...) : (converted from warning) downloaded length 9617408 != reported length 11917752 Error in download.packages(pkgs, destdir = tmpd, available = available, : (converted from warning) download of package ‘stringi’ failed Calls: <Anonymous> ... with_envvar -> force -> force -> i.p -> download.packages Execution halted ======= sdk/R install -- FAILED
Files
Related issues
Updated by Brett Smith 9 months ago
- Has duplicate Bug #21498: CRAN package download failures causing test failures added
Updated by Brett Smith 9 months ago
- Related to Feature #21494: Get Java and R SDKs out of the critical path of main branch builds added
Updated by Brett Smith 9 months ago
This has been happening more frequently lately, it's getting aggravating.
Updated by Peter Amstutz 9 months ago
Thoughts:
- Are there mirrors we can use?
- Can we use a HTTP proxy to cache packages?
- Are some of these packages available in Debian and can be pre-installed on the worker?
Updated by Brett Smith 9 months ago
Peter Amstutz wrote in #note-4:
- Are there mirrors we can use?
https://cran.r-project.org/mirrors.html - Using https://cloud.r-project.org/ would probably be a good start. Basically all the mirrors are academic, which is kind of heartwarming but also, um, makes this problem make more sense. If I had to pick a single one I would expect to be most reliable, probably OSUOSL.
Updated by Peter Amstutz 9 months ago
- Target version changed from Future to Development 2024-02-28 sprint
Updated by Brett Smith 9 months ago
- Status changed from New to In Progress
21321-cran-mirror @ 30a07d66f784564de0817dd5fae7a82f5a3928b1 - developer-run-tests: #4044
This does every part of the ticket that can be done in the repo. Anything else would be an ops task.
The branch checklist: literally all it does is change one URL string, no change in scale, no compatibility considerations, there is no R style guide, there is no UI, I am trying to abbreviate this and I have already typed more than appears in the diff.
Updated by Brett Smith 9 months ago
Peter Amstutz wrote in #note-4:
- Are some of these packages available in Debian and can be pre-installed on the worker?
sdk/R/install_deps.R
is a little script that checks if it can load each dependency, and installs it if not. Our dependencies are packaged:
$ for pkg in devtools roxygen2 knitr markdown xml; do apt search "r-cran-$pkg"; done r-cran-devtools/stable,now 2.4.5-1 all [installed] Tools to Make Developing R Packages Easier r-cran-roxygen2/stable,now 7.2.3-1 amd64 [installed] in-line documentation for GNU R r-cran-knitr/stable,now 1.42+dfsg-1 all [installed] GNU R package for dynamic report generation using Literate Programming r-cran-markdown/stable,now 1.5+dfsg-1 all [installed] GNU R package providing R bindings to the Sundown Markdown rendering library r-cran-xml/stable,now 3.99-0.13-1 amd64 [installed] GNU R package for XML parsing and generation
So yes, this is an option, at least on bookworm. However, if we do this, it makes our test strategy for the R SDK different from every other SDK, where we resolve and install dependencies as part of the test. It would make the tests a little less valuable. I would want to at least run for a little while with the cloud mirror before we go that route.
Updated by Tom Clegg 9 months ago
Brett Smith wrote in #note-8:
21321-cran-mirror @ 30a07d66f784564de0817dd5fae7a82f5a3928b1 - developer-run-tests: #4044
This LGTM, thanks.
Updated by Brett Smith 9 months ago
- Status changed from In Progress to Resolved
With the work done between this and #21494, I think we can declare victory on this: CRAN failures are no longer a regular hurdle for branch review and merging. We can revisit some of the other ideas in this ticket later if desired but I don't think there's any immediate need for them.