Commit 74cfab692fd9808c1ea6a6cc6f45c348deb4fd72

Authored by Tobias Pfeiffer
1 parent 0546b9c6

Renamed unicorn.rb.orig to unicorn.rb.example since this seems to be more in lin…

…e with the common used naming in the config directory. Plus seeing *.orig files I think of the leftovers of git merges, which left me puzzled for quite some time.
config/unicorn.rb.example 0 → 100644
... ... @@ -0,0 +1,64 @@
  1 +app_dir = "/home/gitlab/gitlab/"
  2 +worker_processes 2
  3 +working_directory app_dir
  4 +
  5 +# Load app into the master before forking workers for super-fast
  6 +# worker spawn times
  7 +preload_app true
  8 +
  9 +# nuke workers after 60 seconds (the default)
  10 +timeout 30
  11 +
  12 +# listen on a Unix domain socket and/or a TCP port,
  13 +
  14 +#listen 8080 # listen to port 8080 on all TCP interfaces
  15 +#listen "127.0.0.1:8080" # listen to port 8080 on the loopback interface
  16 +listen "#{app_dir}/tmp/sockets/gitlab.socket"
  17 +
  18 +pid "#{app_dir}/tmp/pids/unicorn.pid"
  19 +stderr_path "#{app_dir}/log/unicorn.stderr.log"
  20 +stdout_path "#{app_dir}/log/unicorn.stdout.log"
  21 +
  22 +# http://www.rubyenterpriseedition.com/faq.html#adapt_apps_for_cow
  23 +if GC.respond_to?(:copy_on_write_friendly=)
  24 + GC.copy_on_write_friendly = true
  25 +end
  26 +
  27 +
  28 +before_fork do |server, worker|
  29 + # the following is highly recomended for Rails + "preload_app true"
  30 + # as there's no need for the master process to hold a connection
  31 + defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
  32 +
  33 + ##
  34 + # When sent a USR2, Unicorn will suffix its pidfile with .oldbin and
  35 + # immediately start loading up a new version of itself (loaded with a new
  36 + # version of our app). When this new Unicorn is completely loaded
  37 + # it will begin spawning workers. The first worker spawned will check to
  38 + # see if an .oldbin pidfile exists. If so, this means we've just booted up
  39 + # a new Unicorn and need to tell the old one that it can now die. To do so
  40 + # we send it a QUIT.
  41 + #
  42 + # Using this method we get 0 downtime deploys.
  43 +
  44 + old_pid = "#{server.config[:pid]}.oldbin"
  45 +
  46 + if File.exists?(old_pid) && server.pid != old_pid
  47 + begin
  48 + sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
  49 + Process.kill(sig, File.read(old_pid).to_i)
  50 + rescue Errno::ENOENT, Errno::ESRCH
  51 + # someone else did our job for us
  52 + end
  53 + end
  54 +end
  55 +
  56 +after_fork do |server, worker|
  57 + # Unicorn master loads the app then forks off workers - because of the way
  58 + # Unix forking works, we need to make sure we aren't using any of the parent's
  59 + # sockets, e.g. db connection
  60 +
  61 + defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
  62 + # Redis and Memcached would go here but their connections are established
  63 + # on demand, so the master never opens a socket
  64 +end
... ...
config/unicorn.rb.orig
... ... @@ -1,64 +0,0 @@
1   -app_dir = "/home/gitlab/gitlab/"
2   -worker_processes 2
3   -working_directory app_dir
4   -
5   -# Load app into the master before forking workers for super-fast
6   -# worker spawn times
7   -preload_app true
8   -
9   -# nuke workers after 60 seconds (the default)
10   -timeout 30
11   -
12   -# listen on a Unix domain socket and/or a TCP port,
13   -
14   -#listen 8080 # listen to port 8080 on all TCP interfaces
15   -#listen "127.0.0.1:8080" # listen to port 8080 on the loopback interface
16   -listen "#{app_dir}/tmp/sockets/gitlab.socket"
17   -
18   -pid "#{app_dir}/tmp/pids/unicorn.pid"
19   -stderr_path "#{app_dir}/log/unicorn.stderr.log"
20   -stdout_path "#{app_dir}/log/unicorn.stdout.log"
21   -
22   -# http://www.rubyenterpriseedition.com/faq.html#adapt_apps_for_cow
23   -if GC.respond_to?(:copy_on_write_friendly=)
24   - GC.copy_on_write_friendly = true
25   -end
26   -
27   -
28   -before_fork do |server, worker|
29   - # the following is highly recomended for Rails + "preload_app true"
30   - # as there's no need for the master process to hold a connection
31   - defined?(ActiveRecord::Base) and ActiveRecord::Base.connection.disconnect!
32   -
33   - ##
34   - # When sent a USR2, Unicorn will suffix its pidfile with .oldbin and
35   - # immediately start loading up a new version of itself (loaded with a new
36   - # version of our app). When this new Unicorn is completely loaded
37   - # it will begin spawning workers. The first worker spawned will check to
38   - # see if an .oldbin pidfile exists. If so, this means we've just booted up
39   - # a new Unicorn and need to tell the old one that it can now die. To do so
40   - # we send it a QUIT.
41   - #
42   - # Using this method we get 0 downtime deploys.
43   -
44   - old_pid = "#{server.config[:pid]}.oldbin"
45   -
46   - if File.exists?(old_pid) && server.pid != old_pid
47   - begin
48   - sig = (worker.nr + 1) >= server.worker_processes ? :QUIT : :TTOU
49   - Process.kill(sig, File.read(old_pid).to_i)
50   - rescue Errno::ENOENT, Errno::ESRCH
51   - # someone else did our job for us
52   - end
53   - end
54   -end
55   -
56   -after_fork do |server, worker|
57   - # Unicorn master loads the app then forks off workers - because of the way
58   - # Unix forking works, we need to make sure we aren't using any of the parent's
59   - # sockets, e.g. db connection
60   -
61   - defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection
62   - # Redis and Memcached would go here but their connections are established
63   - # on demand, so the master never opens a socket
64   -end