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á.
Onde os insetos do computador vão para morrer
Serei o primeiro a admitir, comecei a programar quando o VB6 foi convertido para .NET, onde você podia pegar qualquer linguagem suportada por aquela empresa que todos amam ou odeiam, e enviar um programa por um compilador intermediário e acabar com o mesmo código de linguagem de máquina, independentemente. As coisas eram muito diferentes naquela época, pois a abordagem da Microsoft para lidar com bugs era de cima para baixo e um pouco desajeitada. Esse "lidar com bagunça desajeitada de cima para baixo" foi o que me levou ao ecossistema Linux em primeiro lugar. Parte desse ecossistema é o sistema de relatórios de bugs. Alguns exemplos:
Usuários Linux podem discutir por eras sobre qual distribuição eles gostam ou o que melhor atende às suas necessidades, mas como os links acima ilustram, cada distribuição acredita firmemente na abordagem de baixo para cima para consertar itens. Essa abordagem foi novamente fortalecida quando o Linux Kernel foi movido do CVS para o Github .
Como isso se aplica à pergunta do OP?
A abordagem de baixo para cima para gerenciamento de software agora se tornou popular, pois programadores e não programadores são livres para navegar pelo código-fonte e relatar bugs, agora chamados de problemas, via GitHub como um todo. Embora eu não use R, embora planeje ler este livro , depois de tropeçar nesta questão, o
actions
OP está tendo problemas para ter seu próprio Repositório Github que o OP encontrou corretamente. Como o desenvolvimento dessas ações não pertence mais a um colaborador, como visto na página do colaborador , o problema do OP deve ser relatado na página do problema correspondente . Postá-lo lá permitirá que os 88 colaboradores atuais, alguns dos quais têm uma compreensão muito precisa da maneira como as ações foram construídas, possam comentar e se comunicar com o OP diretamente. Esta comunicação direta é necessária porque:R Actions
problema ou um problema comUbuntu (current)
.Com base na sugestão de @eyoung100 sobre onde postar uma solicitação, finalmente resolvi esse problema com uma indicação de r-lib/actions : comentei a linha
R_KEEP_PKG_SOURCE=yes
no meu arquivo YAML do GitHub Actions e isso de fato resolveu o problema.ubuntu-latest (devel)
finalmente funciona corretamente.