Desculpe, mas não tenho certeza se este é o lugar certo para relatar meu problema porque ele envolve a confluência de três sistemas, dos quais apenas um é o Ubuntu. Só estou vindo aqui depois de tentar primeiro em fóruns de ajuda para os outros dois componentes ( GitHub Actions e o pacote Rfuture
) não conseguindo avançar. Por favor, redirecione-me se houver um fórum mais apropriado.
Tenho um fluxo de trabalho R-CMD-CHECK Github Actions para meu pacote em ale/.github/workflows/R-CMD-check.yaml em main · tripartio/ale . A ação verifica meu pacote em relação ao MacOS, Windows e três versões do Ubuntu. Atualmente, tudo passa, excetoubuntu-latest (devel)
, que falha em um problema relacionado à future
estrutura de processamento paralelo. Notavelmente, os servidores ubuntu-latest (release)
e ubuntu-latest (oldrel-1)
passam no teste sem problemas (assim como o MacOS e o Windows); o problema é apenas com ubuntu-latest (devel)
.
Aqui está a seção relevante da execução com falha mais recente: 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.
Tentei algumas coisas do meu relatório de bug no tópico GitHub Actions da Comunidade Posit , mas as poucas dicas que recebi e tentei não ajudaram. Seguindo as dicas do meu relatório de bug em future package GitHub issues , posso confirmar que o problema não é com uma configuração incorreta do future
pacote em si, mas está estritamente isolado para o ubuntu-latest (devel)
servidor invocado pela ação GitHub.
O número de objetos exportados especificados no log acima não é incomum, mas o que acho muito estranho é o tamanho enorme das três primeiras funções listadas:
- "Os três maiores globais são 'abort' (99,45 MiB da classe 'function'), 'action_dots' (99,42 MiB da classe 'function') e 'as_label' (99,41 MiB da classe 'function')"
- "Os três maiores globais são 'abort' (83,31 MiB da classe 'function'), 'abort_context' (83,30 MiB da classe 'function') e 'trace_back' (83,29 MiB da classe 'function')".
Até onde eu sei, essas são todas rlang
funções; não tenho ideia do porquê elas seriam tão grandes. Até onde eu sei pelo log de build acima, parece que o ubuntu-latest (devel)
servidor percebe que o pacote de paralelismo {future} não aloca espaço suficiente para os objetos no meu pacote test. Nenhuma das outras builds (incluindo as outras duas builds do Ubuntu) relatam esse erro.
Parece-me que por algum motivo a instalação {futura} ubuntu-latest (devel)
está superestimando grosseiramente as necessidades de armazenamento para o pacote, o que não é um problema em versões anteriores do Ubuntu. Talvez haja um vazamento de memória em algum lugar? Se ubuntu-latest (devel)
representa um lançamento futuro do Ubuntu, então esse problema provavelmente deve ser investigado e resolvido agora antes que chegue a uma versão de lançamento do Ubuntu.
Sei que esse é um problema muito específico sobre um sistema específico, mas se alguém pudesse pelo menos me direcionar para quem mantém o R-CMD-CHECK GitHub Action , seria uma ótima indicação. Como mencionei no começo, postei no fórum deles antes de tudo , mas não consegui receber a ajuda necessária lá.