我构建了一个非常小的 Rails 5.1.4 (Ruby 2.3.1) 应用程序。一旦我将它部署到生产环境中,我就会不时收到这个特定的错误:RuntimeError: can't add a new key into hash during iteration
指点这里:
# rack/request.rb, line 67
def set_header(name, v)
@env[name] = v
end
我知道,当您尝试在迭代哈希时向哈希添加新键时会发生此错误。自
@env
是一个散列,这是有道理的。但:@env
上的迭代相关的内容。 ,这是一个死的简单链 app.call(env)
调用。 完整的堆栈跟踪仅包含 Rack 中间件,可在此处找到:
https://gist.github.com/Nattfodd/e513122400b4115a653ea38d69917a9a
Gemfile.lock:
https://gist.github.com/Nattfodd/a9015e9204544302bf3959cec466b715
服务器与 puma 一起运行,配置非常简单:只需线程和工作线程的数量:
threads 0, 5
workers 5
我目前的想法是:
最佳答案
你能粘贴完整的堆栈跟踪吗?
我的假设是 set_header 是从迭代 env 的方法中调用的。
关于ruby-on-rails - 运行时错误 : can't add a new key into hash during iteration in Rack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47768547/