0

我在生产中遇到了一个特殊的一致性问题。我正在使用最新的 datamapper 和 ruby​​-enterprise 运行 rails3 + nginx

每次部署新版本(touch restart.txt)时,我都会在部署发生后收到一堆错误(发生在不同的请求期间)。错误并不总是相同的:

  • DataObjects::SQLError: 查询期间丢失与 MySQL 服务器的连接

  • ArgumentError:字段计数不匹配。预期 1 个字段,但查询产生 10 个

  • ArgumentError:字段计数不匹配。预期 10 个字段,但查询产生 1

  • DataObjects::SQLError: 查询期间丢失与 MySQL 服务器的连接

我正在运行具有活动记录的其他 Rails 应用程序(2.3+apache+ruby-ent),并且我在重新启动期间从未遇到任何问题

有没有人对为什么会发生这种情况以及如何摆脱它有一些建议?

谢谢安德斯

4

1 回答 1

0

当你执行 sudo kill -HUP nginx_pid 时,你会得到同样的错误吗?(执行 sudo ps aux|grep nginx 来获取 pid)。

您遇到的确实是一组非常奇怪的错误。重新启动时,您的数据库是否仍有会话打开,从而导致数据库池出现问题?Rails 数据库访问通常是间歇性的,但我可以想象如果您有一个长时间运行的数据库查询并且您尝试重新启动 Rails 会发生问题。

错误不断变化的事实使我相信这些错误与资源访问有关,而不是您的配置问题。

于 2011-07-26T10:44:33.313 回答