2

启动服务器时,更新到 Ruby 1.9 后出现这个奇怪的错误:

" [BUG] rb_gc() ruby​​ 1.8.6 (2008-08-11) [i386-mswin32] 上的跨线程冲突

此应用程序已请求运行时以不寻常的方式终止它。请联系应用程序的支持团队以获取更多信息。"

我的 mongrel 版本是 1.1.6,应该兼容 Ruby 1.9。我还安装了 Ruby 1.8.6,所以我假设由于某种原因 mongrel 试图访问它并杀死 ruby​​?我的 rails 版本是 2.3.4,以防万一。

4

2 回答 2

5

我会怀疑您主要来源的评论——最近的大多数评论都是垃圾评论,指向卖鞋或手袋的链接。

在那些确实让它工作并且不是垃圾邮件发送者的人中,请注意,他们建议将您的 gem 源更改为http://gems.rubyinstaller.org或使用 1.2.0 预发行版。

就个人而言,我想不出任何令人信服的理由来使用 Mongrel 后 2008。有很多更好的选择。Thin、Unicorn 和Passenger 都在积极维护,长期兼容1.9,在典型基准测试中速度更快,并且在特性和易于部署方面各有优势。Mongrel在发生的时候是一个巨大的进步,但现在它有点像古董,没有明显的优势。

只是......除了Webrick之外的任何东西。真的。

于 2010-05-15T03:40:16.883 回答
2

应该与 Ruby 1.9 兼容

有什么具体的事情让你这么想吗?几周前,我已经确定 Mongrel不能在 Windows 上使用 Ruby 1.9。我不相信 Mongrel 已经用 Ruby 1.9 需要的 gcc/mingw32 成功编译。

最简单的选择是切换回 WEBRick。

使用Thin也相当简单,它可以与 Mongrel 相媲美 - 并且可能比 Mongrel 更快。我发现我需要构建它,这将涉及安装 mingw。请参阅这个 SO 答案- 准备好之前进行构建gem install thin,这一切都应该发生。然后只需使用thin start而不是ruby script/server.

于 2010-05-04T13:16:01.463 回答