ruby-on-rails - 机架错误 - RuntimeError: failed to get urandom in a Rails app (Rails 5.0.6, Ruby 2.5.5)
问题描述
我正在向本地运行的 Rails 5.0(.6) 应用程序发出大量 API 请求。它与 Rack 错误不一致地失败:
RuntimeError: failed to get urandom
回溯到 SecureRandom 模块,而不是在应用程序中(特别是uuid
方法)。从那里它在 ActionDispatch::RequestId 中。不幸的是,完整的回溯从我的终端历史记录中消失了,并且没有显示在日志中(因为它发生在 Rails 之外)。
从许多有效的请求以及它在不同地方失败的事实来看,我猜这是由于一些本地系统限制。
解决方案
在尝试了几个不同的修复后,我最终发现问题是我的打开文件限制。要检查它,请ulimit -n
在终端中运行。我的设置为256。
我按照本文中的说明进行操作: https ://wilsonmar.github.io/maximum-limits/
具体说明从“Sierra 和较新版本”标题开始,然后转到“他们的权限需要是“-rw-r–r–”,由 sudo chmod 644 设置。” 在#5下。添加文件并更改所有权和权限后,我重新启动,打开文件限制现在为 524288。
我现在对快速 API 调用没有其他问题了。
推荐阅读
- flutter - 使用调试符号时在 Flutter App 中出现 Gradle 错误
- bulk - 将自定义字段添加到高级批量编辑
- c++ - 从数组 C++ 中删除类
- c# - 为什么即使单元测试全部通过,我的代码覆盖率也为零?
- android - 为什么我尝试发送数据时出现“setCommandByIoctl failed”?
- javascript - 在应用程序组件中添加类或钩子
- python - python:从json字符串中获取特定值
- api - 为团队通话创建 Microsoft Graph API 通知
- node.js - Nodejs - 小型 Express 服务器 + trayicon + pkg
- unreal-engine4 - UE4 网格距离场