Commit 379fb0f
[SPARK-56540][INFRA][4.0] Add libuv1-dev to CI Docker images to fix R package fs build failure
### What changes were proposed in this pull request?
Add `libuv1-dev` to the `apt-get install` list in all five CI Dockerfiles that install R packages:
- `dev/spark-test-image/sparkr/Dockerfile`
- `dev/spark-test-image/lint/Dockerfile`
- `dev/spark-test-image/docs/Dockerfile`
- `dev/infra/Dockerfile`
- `dev/create-release/spark-rm/Dockerfile.base`
### Why are the changes needed?
The R package `fs` now requires system library `libuv` (`uv.h`). `fs` is a transitive dependency of both `rmarkdown` (via `sass` → `bslib`) and `testthat` (via `pkgload`).
When the Docker layer cache is valid, the pre-built R packages are reused and everything works fine. But when the cache is invalidated (e.g. base image digest changes), the R packages are compiled from source. Without `libuv1-dev` installed, `fs` fails to configure:
```
Configuration failed because libuv was not found. Try installing:
* deb: libuv1-dev (Debian, Ubuntu, etc)
...
<stdin>:1:10: fatal error: uv.h: No such file or directory
ERROR: configuration failed for package 'fs'
```
This triggers a cascade:
```
fs (missing libuv) → FAIL
└→ sass → FAIL
└→ bslib → FAIL
└→ rmarkdown → FAIL
└→ pkgload → FAIL
└→ testthat → FAIL
```
The image build itself still "succeeds" because `install.packages()` in R does not return a non-zero exit code when individual packages fail to install -- it logs warnings but continues. So the Docker image gets pushed with `rmarkdown` and `testthat` missing, and the SparkR job fails at test time:
```
Error in library(testthat) : there is no package called 'testthat'
```
```
Error: processing vignette 'sparkr-vignettes.Rmd' failed with diagnostics:
there is no package called 'rmarkdown'
```
Example failure: https://github.com/LuciferYang/spark/actions/runs/24612026450/job/71969572946
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
- Pass Github Actions
### Was this patch authored or co-authored using generative AI tooling?
Generated-by: Claude Code
Closes #55439 from LuciferYang/SPARK-56540-4.0.
Authored-by: YangJie <yangjie01@baidu.com>
Signed-off-by: Cheng Pan <chengpan@apache.org>1 parent 0a631ad commit 379fb0f
5 files changed
Lines changed: 5 additions & 0 deletions
File tree
- dev
- create-release/spark-rm
- infra
- spark-test-image
- docs
- lint
- sparkr
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
| 52 | + | |
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
| 53 | + | |
53 | 54 | | |
54 | 55 | | |
55 | 56 | | |
| |||
0 commit comments