2

All of a sudden, my nginx error log is full of this error message

[ 2013-10-31 22:56:41.2124 19959/7ff254aae700 Pool2/Group.h:964 ]: Cannot disable sole enabled process in group /app/current#default because spawning is not allowed according to the current configuration options

Here /app/current is the folder in which my rails application is located (it is the Rails.root)

This error message is most likely coming from line 962 of this Phusion Passenger source file

One of my production app instance froze. I am suspecting this error is the reason.

I am not sure which configuration option is being referenced here. How do I fix this error?

This application was running fine for months now on the same setup. I just upgraded passenger to 4.0.20 last week.

Update:

I am using OOB. Here are my passenger configuration

 passenger_root /usr/local/rubies/1.9.3-p448/lib/ruby/gems/1.9.1/gems/passenger-4.0.20;
 passenger_ruby /usr/bin/ruby_tuned;
 passenger_max_pool_size 6;
 passenger_spawn_method smart-lv2;
 passenger_buffer_response on;
 passenger_min_instances 5;
 passenger_max_instances_per_app 0;
 passenger_pool_idle_time 180;
 passenger_max_requests 20;
Tippa Raj
  • 584
  • 4
  • 8
Litmus
  • 10,558
  • 6
  • 29
  • 44

1 Answers1

3

You're probably using out-of-band work but with the wrong configuration. From the manual:

"Ensure that passenger_max_pool_size and passenger_min_instances are both larger than 1. Out-of-band work only works if there are at least 2 application processes."

Hongli
  • 18,682
  • 15
  • 79
  • 107
  • The manual says `passenger_max_instances` is available only in the Enterprise Edition. Unfortunately I am on the OSS edition. Does this mean I cannot use OOB? I have updated the question with my passenger configs. – Litmus Nov 01 '13 at 04:47
  • Oops, looks like there is an error in the manual. That should be `min_instances` (which is available in the open source version), not `max_instances`. :) I'll fix this. – Hongli Nov 01 '13 at 08:05
  • I seem to have misunderstood your comment. I am already specifying `min_instances`. What else could be the cause? – Litmus Nov 01 '13 at 08:57
  • If you were already using `min_instances` then this error may be temporary, non-fatal and safe to ignore. Because I see that you're also using `max_requests`. If a lot of your processes happen to be reaching the `max_requests` limit at the same time, then they will be shut down simultaneously. While they are being restarted, there is a small time window during which there is only one process, and during that time window it is not possible to execute out-of-band GC, hence the message. You can check whether `max_requests` is the cause by disabling it. – Hongli Nov 01 '13 at 13:56
  • Will check with max_requests disabled. Thanks for your guidance. – Litmus Nov 01 '13 at 14:07
  • Yes. commenting out `max_requests` stops the error message. I guess the numbers I am using for pool_size are too low for my needs. Have bumped it up a bit and now things look normal again. Thanks. – Litmus Nov 06 '13 at 08:14