我不知道如何制作一个可重现的例子,但我很想知道是否有其他人遇到过这个问题。我在运行Ubuntu的EC2实例上通过闪亮的服务器托管了一个R Markdown文件。一切都运行良好几天,现在突然我尝试在浏览器中查看文档时出现以下错误:
pandoc document conversion failed with error 127
我没有转换为pdf,没有推动任何更改,并且几小时前它正在运行。我在网上找不到关于这个错误代码的任何内容,所以我不知道如何调试这个问题。有人曾经发生过这种事吗?
我今天遇到了类似的问题(见下面的.log文件):
Warning in system(command) : system call failed: Cannot allocate memory
Warning: Error in : pandoc document conversion failed with error 127
Stack trace (innermost first):
105: pandoc_convert
104: convert
103: render
102: discover_rmd_resources
101: find_external_resources
100: copy_render_intermediates
99: output_format$intermediates_generator
98: <Anonymous>
97: do.call
96: contextFunc
95: .getReactiveEnvironment()$runWith
94: shiny::maskReactiveContext
93: <reactive>
82: doc
81: shiny::renderUI
80: func
79: origRenderFunc
78: output$__reactivedoc__
3: <Anonymous>
2: do.call
1: rmarkdown::run
我也是通过Ubuntu在EC2实例上运行Shiny Server,特别是t2.micro
。我按照这里最高投票的答案解决了这个问题:How do you add swap to an EC2 instance?
sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
sudo /sbin/mkswap /var/swap.1
sudo chmod 600 /var/swap.1
sudo /sbin/swapon /var/swap.1
添加到/etc/fstab
:
/var/swap.1 swap swap defaults 0 0
简而言之,您可以在EBS上创建交换(内存)空间(因为t2.micro
实例没有临时存储),这可以缓解您的内存问题(无需转移到更大的EC2实例)。
使用安装了Ubuntu 16.04 LTS并运行闪亮应用程序的aws EC2实例时,我遇到了同样的错误。
我的修复:我在app.R文件的ui和服务器功能之外有一些代码。我将所有外部代码移动到服务器功能中,不再出现错误。
令我感到困惑的是,即使某些代码超出了这两个功能,该应用程序仍然可以在大部分时间内工作!
您可以尝试的另一件事:某些来源声明由于内存不足而发生此错误。为了在aws实例上提供有限的内存情况,您应该提供系统可用于释放内存的交换空间。默认情况下,aws EC2实例上的Ubuntu具有零交换空间!你可以使用这些说明,谷歌也显示了很多:http://www.thegeekstuff.com/2010/08/how-to-add-swap-space/
当分配给R会话的RAM完全用完时,会发生这种情况。
您的代码中可能存在内存泄漏。
最简单的解决方法是重新启动会话。
很难知道你在没有例子的情况下要问什么,但是我从RStudio的EC2实例中尝试“编织到html”时遇到了同样的错误。
这对我有用:
library("rmarkdown")
render("filename.Rmd", "html_document")
当我尝试从RMarkdown文件生成带有RStudio的pdf_document时,我遇到了类似的错误。据我所知:错误127表示“找不到文件”。文件不存在或路径不正确。
在我的情况下,我得到了额外的信息,没有找到ghostscript
。我最近用Homebrew安装了新版MacTex。但
Homebrew确实......与MacTex https://github.com/Homebrew/homebrew-core/issues/11368安装的ghostscript冲突
我的解决方案是创建ghostscript
的符号链接,如下所示:Ghostscript not writable
sudo chown -R `whoami` /usr/local/share/ghostscript
brew link --overwrite ghostscript