为什么 Puma 在 Ruby 2.5.4 上响应缓慢或以集群模式挂起

Why does Puma respond slow or hang in clustered mode on Ruby 2.5.4

我添加这个问题是因为我花了很长时间才弄清楚它是由升级到 Ruby 2.5.4 引起的。我不确定可以重现此问题的最小情况,但我是 运行 一个 Rails 5 应用程序在 Puma 3.11 上以集群模式在 Kubernetes 集群上的 docker 容器中由 Google Cloud Platform 中的 Cloud66 管理。

当我在 ruby 2.5.4 上以集群模式(多年来一直是我们的默认配置)启动服务器时,服务器需要一分钟或更长时间才能响应,或者更常见的是从不响应全部,甚至是静态文件请求(即 curl localhost:3000/404.html

我发现了这个我认为相关的错误(但可能是巧合,因为没有其他人报告过与此相关的特定行为):https://github.com/puma/puma/issues/1674

这是 ruby 错误吗?其他人是否遇到这种情况?是否有解决方法(除了恢复到 Ruby 2.5.3)?

事实证明这个错误已被报告,但我错过了它,因为它已在 Ruby 2.5.5 中修复! https://github.com/puma/puma/issues/1744

(不幸的是,dockerhub 上的 ruby 存储库中还没有 2.5.5 标签,但是 2.5 标签已经包含修复)