Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails 4.2: Internal Server Error with Maximum file multiparts in content reached

Just upgraded to Rails 4.2 and I get Internal Server Error on localhost and in production when trying to edit a model with multiple has_many objects. This is the message I see on the rails s console

!! Unexpected error while processing request: Too many open files - Maximum file multiparts in content reached

The request does not even get to the controller i.e., I DO NOT see the usual following lines in rails s console

Started GET "/feeds/3/edit" for 127.0.0.1 at 2015-01-04 20:07:19 -0800
Processing by FeedsController#edit as HTML
......
......

Any clues?? Using Ruby 2.1.5 upgraded to 2.2 with no luck.

like image 423
anu Avatar asked Jan 05 '15 04:01

anu


2 Answers

It looks like the multipart limit was added in the Rails 4.2 version of Rack (https://github.com/rack/rack/commit/b0b5fb9467e6ed777d3eaf35afc81d758e308aab). The default is 128, which may be too little for your purposes, it was for mine. Setting the value to 0 in an initializer removes the limit and fixes the problem:

Rack::Utils.multipart_part_limit = 0

I would suggest tailoring the value until it fits your needs so your server doesn't run out of file handles. My app uses a massive form and setting it to 512 seemed to work for me.

like image 61
Craig Knox Avatar answered Oct 17 '22 07:10

Craig Knox


You can also pass a Environment variable to the app, as you can see here(https://github.com/rack/rack/blob/8d21788798b521b97beb10047ebf593ddc0aaed2/lib/rack/utils.rb#L75).

RACK_MULTIPART_PART_LIMIT=0 rails server

like image 24
Scudelletti Avatar answered Oct 17 '22 07:10

Scudelletti