Two changes:
1. Move bin/web to bin/web_unicorn(removed PUMA switching logic)
Introduce new shadow script bin/web. Now we have 3 scripts working
together: bin/web, bin/web_puma, bin/web_unicorn
In bin/web, it checks ENV['USE_WEB_SERVER']:
- if value is 'puma' or value is not set, call bin/web_puma
- if value is 'unicorn', call bin/web_unicorn
- report error if other values given
2. Gitlab rails allow ENV setting to override timeout
- ENV['GITLAB_RAILS_RACK_TIMEOUT'] for service_timeout
- ENV['GITLAB_RAILS_WAIT_TIMEOUT'] for wait_timeout
This allows us (and others) to test drive Puma without it affecting all
users. Puma can be enabled by setting the environment variable
"EXPERIMENTAL_PUMA" to a non empty value.
When running Unicorn or Sidekiq in the foreground this change removes
an intermediate /bin/sh process. This makes process supervision in the
GitLab Development Kit more reliable.
This change does not affect Omnibus-GitLab (because there we do not
use these launch scripts). Installations from source do use the launch
scripts but for the standard GitLab init script this change will not
make a difference.
Custom installations using Upstart or Systemd may be affected however,
because under certain configurations these systems count exactly how
many forks happen during process startup, and we are reducing that
number by one here.