机架错误 - 运行时错误:无法在 Rails 应用程序中获取 urandom(Rails 5.0.6、Ruby 2.5.5)

Sam*_*son 8 rack runtime-error ruby-on-rails

我正在向本地运行的 Rails 5.0(.6) 应用程序发出大量 API 请求。它不一致地失败并出现机架错误: RuntimeError: failed to get urandom

回溯是针对 SecureRandom 模块的,而不是在应用程序中(特别是uuid方法)。从那里它在 ActionDispatch::RequestId 中。不幸的是,完整的回溯从我的终端历史记录中消失了,也没有出现在日志中(因为它发生在 Rails 之外)。

从许多正在工作的请求以及它在不同地方失败的事实来看,我猜测这是由于某些本地系统限制。

Sam*_*son 8

在尝试了几个不同的修复之后,我最终发现问题是我的打开文件限制。要检查它,请ulimit -n在终端中运行。我的设置为256。

我按照本文中的说明进行操作:https : //wilsonmar.github.io/maximum-limits/

具体说明从“Sierra 和更新版本”标题开始,然后转到“他们的权限需要是“-rw-r–r–”,由 sudo chmod 644 设置。在 #5 下。添加文件并更改所有权和权限后,我重新启动,打开文件限制现在为 524288。

我现在对快速 API 调用没有进一步的问题。