Rails 4.2:达到最大文件多部分内容的内部服务器错误
Rails 4.2: Internal Server Error with Maximum file multiparts in content reached
刚刚升级到 Rails 4.2,在尝试编辑具有多个 has_many 对象的模型时,我在本地主机和生产环境中遇到内部服务器错误。这是我在 rails 控制台
上看到的消息
!! Unexpected error while processing request: Too many open files - Maximum file multiparts in content reached
请求甚至没有到达控制器,即,我在 rails 的控制台
中没有看到通常的以下行
Started GET "/feeds/3/edit" for 127.0.0.1 at 2015-01-04 20:07:19 -0800
Processing by FeedsController#edit as HTML
......
......
有线索吗??使用 Ruby 2.1.5 升级到 2.2 没有运气。
Rails 4.2 版本的 Rack (https://github.com/rack/rack/commit/b0b5fb9467e6ed777d3eaf35afc81d758e308aab) 中似乎添加了多部分限制。默认值为 128,这对于您的用途来说可能太小了,但它适合我的用途。在初始化程序中将值设置为 0 可移除限制并修复问题:
Rack::Utils.multipart_part_limit = 0
我建议调整该值直到它满足您的需要,这样您的服务器就不会 运行 文件句柄不足。我的应用程序使用了一个巨大的表单,将其设置为 512 似乎对我有用。
您还可以将环境变量传递给应用程序,如您在此处所见(https://github.com/rack/rack/blob/8d21788798b521b97beb10047ebf593ddc0aaed2/lib/rack/utils.rb#L75)。
RACK_MULTIPART_PART_LIMIT=0 rails server
Rack 1.6 中似乎存在错误,其中所有 HTML 输入元素都被计为多部分形式的打开文件。正如其他人指出的那样,您可以将限制更改为 0 以禁用该功能,或者提高限制。
刚刚升级到 Rails 4.2,在尝试编辑具有多个 has_many 对象的模型时,我在本地主机和生产环境中遇到内部服务器错误。这是我在 rails 控制台
上看到的消息!! Unexpected error while processing request: Too many open files - Maximum file multiparts in content reached
请求甚至没有到达控制器,即,我在 rails 的控制台
中没有看到通常的以下行Started GET "/feeds/3/edit" for 127.0.0.1 at 2015-01-04 20:07:19 -0800
Processing by FeedsController#edit as HTML
......
......
有线索吗??使用 Ruby 2.1.5 升级到 2.2 没有运气。
Rails 4.2 版本的 Rack (https://github.com/rack/rack/commit/b0b5fb9467e6ed777d3eaf35afc81d758e308aab) 中似乎添加了多部分限制。默认值为 128,这对于您的用途来说可能太小了,但它适合我的用途。在初始化程序中将值设置为 0 可移除限制并修复问题:
Rack::Utils.multipart_part_limit = 0
我建议调整该值直到它满足您的需要,这样您的服务器就不会 运行 文件句柄不足。我的应用程序使用了一个巨大的表单,将其设置为 512 似乎对我有用。
您还可以将环境变量传递给应用程序,如您在此处所见(https://github.com/rack/rack/blob/8d21788798b521b97beb10047ebf593ddc0aaed2/lib/rack/utils.rb#L75)。
RACK_MULTIPART_PART_LIMIT=0 rails server
Rack 1.6 中似乎存在错误,其中所有 HTML 输入元素都被计为多部分形式的打开文件。正如其他人指出的那样,您可以将限制更改为 0 以禁用该功能,或者提高限制。