AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 1535119
Accepted
Tripartio
Tripartio
Asked: 2024-12-10 16:45:42 +0800 CST2024-12-10 16:45:42 +0800 CST 2024-12-10 16:45:42 +0800 CST

仅在 ubuntu-latest (devel) 上,R-CMD-CHECK 中的“为未来表达式导出的 x 个全局变量的总大小”

  • 772

抱歉,但我不确定这里是否是报告问题的正确地方,因为它涉及三个系统的融合,其中只有一个是 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,那将是一个很好的提示。正如我在开头提到的,我首先在他们的论坛上发帖,但未能在那里得到必要的帮助。

development
  • 2 2 个回答
  • 100 Views

2 个回答

  • Voted
  1. Best Answer
    eyoung100
    2024-12-18T00:54:39+08:002024-12-18T00:54:39+08:00

    计算机漏洞的消亡之地

    我首先承认,我是在 VB6 转换为 .NET 时开始编程的,在 .NET 中,你可以使用该公司支持的任何语言,无论是喜欢还是讨厌,然后将程序通过中间编译器发送,最终得到相同的机器语言代码。当时的情况大不相同,因为微软处理错误的方法是自上而下的,有点笨拙。正是这种“处理笨拙的自上而下的混乱”让我首先进入了 Linux 生态系统。该生态系统的一部分是错误报告系统。一些例子:

    • Debian 的错误报告页面
    • Ubuntu 的 Bug 跟踪器
    • Arch 的新 GitLab 跟踪器

    Linux 用户可能会争论他们喜欢哪个发行版或哪个最适合他们的需求,但正如上面的链接所示,每个发行版都坚信自下而上的方法来解决项目问题。当Linux 内核从 CVS 移至Github时,这种方法再次得到加强。

    这与 OP 的问题有什么关系?

    自下而上的软件管理方法现已成为主流,因为程序员和非程序员都可以通过整个 GitHub 自由浏览源代码和报告错误(现在称为问题)。虽然我不使用 R,但我打算阅读这本书,在偶然发现这个问题后,actionsOP 遇到了麻烦,他们有自己的Github 存储库,而 OP 正确地找到了它。由于这些操作的开发不再属于一个贡献者,如贡献者页面所示,因此 OP 的问题应在相应的问题页面上报告。将其发布在那里将允许 88 位当前贡献者直接评论和与 OP 交流,其中一些贡献者对操作的构建方式有非常精确的理解。这种直接沟通是必要的,因为:

    1. OP 拥有所有相关日志、构建步骤等,可以发布在问题跟踪器中,而不是将它们全部链接在一起放在单独的论坛上。
    2. 阅读该问题的贡献者可以提供正确的方向,向 OP 指出这是否是一个R Actions问题或者是 的问题Ubuntu (current)。
    3. 如果需要更多信息,评论者就会确切地知道要要求什么。
    • 3
  2. Tripartio
    2025-01-06T22:31:53+08:002025-01-06T22:31:53+08:00

    根据 @eyoung100 关于在何处发布请求的建议,我最终使用来自r-lib/actions 的指针解决了这个问题:我注释掉了R_KEEP_PKG_SOURCE=yesGitHub Actions YAML 文件中的该行,确实解决了这个问题。ubuntu-latest (devel)最终运行正确。

    • 1

相关问题

  • 如何启动我自己的存储库

  • 支持 gedit 中的各种功能

  • 想知道如何让 OEM Config 与我的自定义发行版一起使用 [关闭]

  • 什么是MOTU?

  • 如何在 Ubuntu 上开发 .NET 应用程序?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve