Ошибка стойки - RuntimeError: не удалось получить urandom в приложении Rails (Rails 5.0.6, Ruby 2.5.5) - PullRequest
4 голосов
/ 24 января 2020

Я делаю много запросов API к приложению Rails 5.0 (.6), работающему локально. Он непоследовательно завершается с ошибкой Rack: RuntimeError: failed to get urandom

Возврат к модулю SecureRandom, а не к приложению (в частности, метод uuid). Оттуда это находится в ActionDispatch :: RequestId. К сожалению, полная обратная трассировка ушла из моей истории терминалов и не отображается в журналах (так как это происходит вне Rails).

Из-за множества работающих запросов и того, что он терпит неудачу в разных местах, Я предполагаю, что это связано с некоторыми локальными системными ограничениями.

1 Ответ

2 голосов
/ 24 января 2020

Попробовав несколько различных исправлений, я обнаружил, что проблема заключалась в ограничении моих открытых файлов. Чтобы проверить это, запустите ulimit -n в терминале. Мой был установлен на 256.

Я следовал инструкциям в этой статье: https://wilsonmar.github.io/maximum-limits/

Специфические инструкции c начинаются с "Sierra и более новых версий" заголовок и go для «Их разрешения должны быть« -rw-r – r– », установленными sudo chmod 644.» под № 5. После добавления файлов и смены владельца и разрешения я перезапустил компьютер, и теперь ограничение на количество открытых файлов составляет 524288.

У меня больше нет проблем с быстрыми вызовами API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...