抱歉,但我不确定这里是否是报告问题的正确地方,因为它涉及三个系统的融合,其中只有一个是 Ubuntu。我首先尝试了其他两个组件(GitHub Actions和R 包future
)的帮助论坛,但无法继续前进,所以我才来到这里。如果有更合适的论坛,请重定向我。
我在ale/.github/workflows/R-CMD-check.yaml at main · tripartio/ale 上为我的软件包创建了一个 R-CMD-CHECK Github Actions 工作流。该操作针对 MacOS、Windows 和三个版本的 Ubuntu 验证了我的软件包。目前除了 之外ubuntu-latest (devel)
,其他一切都通过了, 因与并行处理框架相关的问题而失败future
。值得注意的是,和服务器毫无问题地通过了测试(MacOS 和 Windows 也是如此);问题只出在 上。ubuntu-latest (release)
ubuntu-latest (oldrel-1)
ubuntu-latest (devel)
以下是最近一次失败运行的相关部分:R-CMD-CHECK:
── R CMD build ─────────────────────────────────────────────────────────────────
* checking for file ‘.../DESCRIPTION’ ... OK
* preparing ‘ale’:
* checking DESCRIPTION meta-information ... OK
* installing the package to build vignettes
* creating vignettes ... ERROR
Error: --- re-building ‘ale-intro.Rmd’ using rmarkdown
--- finished re-building ‘ale-intro.Rmd’
--- re-building ‘ale-small-datasets.Rmd’ using rmarkdown
Quitting from lines 95-104 [lm_simple] (ale-small-datasets.Rmd)
Error: Error: processing vignette 'ale-small-datasets.Rmd' failed with diagnostics:
The total size of the 56 globals exported for future expression ('function (it.x_cols); {; if (!silent && is.null(bins)) {; progress_iterator(); }; ale_results <- list_transpose(calc_ale(data, model, it.x_cols,; ...; it.rtn; })); }') is 1.85 GiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'abort' (99.45 MiB of class 'function'), 'action_dots' (99.42 MiB of class 'function') and 'as_label' (99.42 MiB of class 'function')
--- failed re-building ‘ale-small-datasets.Rmd’
--- re-building ‘ale-statistics.Rmd’ using rmarkdown
--- finished re-building ‘ale-statistics.Rmd’
--- re-building ‘ale-x-datatypes.Rmd’ using rmarkdown
Quitting from lines 123-134 [cars_full] (ale-x-datatypes.Rmd)
Error: Error: processing vignette 'ale-x-datatypes.Rmd' failed with diagnostics:
The total size of the 129 globals exported for future expression ('function (btit, btit.idxs); {; if (!silent) {; progress_iterator(); }; btit.model <- NULL; ...; else {; NULL; }') is 4.01 GiB.. This exceeds the maximum allowed size of 500.00 MiB (option 'future.globals.maxSize'). The three largest globals are 'abort' (83.31 MiB of class 'function'), 'abort_context' (83.30 MiB of class 'function') and 'trace_back' (83.29 MiB of class 'function')
--- failed re-building ‘ale-x-datatypes.Rmd’
SUMMARY: processing the following files failed:
‘ale-small-datasets.Rmd’ ‘ale-x-datatypes.Rmd’
Error: Error: Vignette re-building failed.
Execution halted
Error: Error in proc$get_built_file() : Build process failed
Calls: <Anonymous> ... build_package -> with_envvar -> force -> <Anonymous>
Execution halted
Error: Process completed with exit code 1.
Run ## --------------------------------------------------------------------
Show testthat output
Run actions/upload-artifact@v4
Warning: No files were found with the provided path: /home/runner/work/ale/ale/check. No artifacts will be uploaded.
Run actions/upload-artifact@v4
No files were found with the provided path: /home/runner/work/ale/ale/check/**/tests*/testthat/_snaps. No artifacts will be uploaded.
我尝试了Posit 社区 GitHub Actions 线程中我提交的 bug 报告中的几个方法,但收到并尝试的几个建议并没有帮助。根据我未来软件包 GitHub 问题中 bug 报告中的提示,我可以确认问题不是软件包本身的配置错误,而是严格与GitHub 操作调用的服务器future
隔离。ubuntu-latest (devel)
上面日志中指定的导出对象的数量并不罕见,但我发现非常奇怪的是列出的前三个函数的大小非常大:
- “三个最大的全局变量是‘abort’(‘function’ 类的 99.45 MiB)、‘action_dots’(‘function’ 类的 99.42 MiB)和‘as_label’(‘function’ 类的 99.41 MiB)”
- “三个最大的全局变量是‘abort’(‘function’ 类的 83.31 MiB)、‘abort_context’(‘function’ 类的 83.30 MiB)和‘trace_back’(‘function’ 类的 83.29 MiB)”。
据我所知,这些都是rlang
函数;我不知道它们为什么会这么大。据我从上面的构建日志中得知,服务器似乎ubuntu-latest (devel)
认为 {future} 并行化包没有为我的包测试中的对象分配足够的空间。其他构建(包括其他两个 Ubuntu 构建)均未报告此错误。
在我看来,出于某种原因,{future} 安装ubuntu-latest (devel)
严重高估了软件包的存储需求,而这在早期版本的 Ubuntu 上不是问题。也许某个地方有内存泄漏?如果ubuntu-latest (devel)
代表即将发布的 Ubuntu,那么在发布 Ubuntu 版本之前,应该先调查并解决此问题。
我知道这是一个关于特定系统的非常具体的问题,但如果有人至少能告诉我谁在维护R-CMD-CHECK GitHub Action,那将是一个很好的提示。正如我在开头提到的,我首先在他们的论坛上发帖,但未能在那里得到必要的帮助。